Aus Raspberry Pi Geek 03/2023

Den Energiebedarf von Haushaltsgeräten im Auge behalten

© destinacigdem | 123RF.com

Stromfresser aufspüren

Redaktion

In Kombination mit einem Rechner verwandeln sich konventionelle Energiezähler in Datenlogger, die die aufgenommene Leistung in Sekundenintervallen protokollieren. @A:Dr. Roland Pleger

Verbrauchsmesser informieren über den Energiebedarf von Haushaltsgeräten. Wie eine kurze Verlängerungsschnur sitzen sie zwischen Verbraucher und Steckdose. Manche Ausführungen verfügen über eine Anzeige, um die aktuelle Leistungsaufnahme und den Gesamtverbrauch anzuzeigen. In diesem Artikel beschränken wir uns auf zwei Versionen, die ihre Daten über Funk ausgeben. Der Voltcraft SEM6000 sendet über Bluetooth LE, der Delock 11827 nutzt WLAN (Abbildung 1). Da wir eine konstante Spannung von 230 Volt annehmen, sind Wirkstrom und Wirkleistung proportional zueinander. Es genügt dementsprechend, die Wirkleistung und den Zeitpunkt der Messung aufzuzeichnen.

Abbildung 1: Die zwei im Test verwendeten Steckermessgeräte Voltcraft SEM6000 (links) und Delock 11827 (rechts).

Abbildung 1: Die zwei im Test verwendeten Steckermessgeräte Voltcraft SEM6000 (links) und Delock 11827 (rechts).

Störstrahlung durch die Netzströme und die Mini-Antenne beschränken die Funkreichweite der Geräte aus Abbildung 1 auf wenige Meter. Der Messstecker von Voltcraft erwartet deshalb einen Rechner in der Nähe, mit dem er sich koppeln kann. Die Version von Delock versucht, sich in ein bestehendes WLAN einzuwählen. Ist das Signal am Messort zu schwach, hilft ein mobiler Router, in dessen WLAN sich Rechner und Messgerät anmelden.

Das Protokoll des SEM6000 legt Voltcraft zwar nicht offen, aber auf Github findet sich die vermutlich via Reverse Engineering entwickelte Bibliothek sem6000 [1]. Listing 1 fasst die wesentlichen Aufrufe zusammen. Es nutzt die Bibliotheken bluepy für die Bluetooth-LE-Kommunikation und sem6000 für die Kopplung. Die Variable MYMAC in Zeile 6 verweist auf die gerätespezifische Bluetooth-MAC-Adresse.

Erkennen und verbinden sich Rechner und Gerät, dann gibt die Dauerschleife ab Zeile 8 die Messwerte auf der Konsole aus. Die Zeitpunkte der Messungen fehlen allerdings, das Skript muss sie selbst mit Python-Bordmitteln generieren. Gelingt darüber hinaus die Anmeldung mit dem Password PW – standardmäßig lautet es 0000 –, dann lässt sich bei Bedarf mit dem Befehl socket.setStatus(1) die Steckdose ein- und mit socket.setStatus(0) wieder ausschalten.

Listing 1

SEM6000 auslesen

#!/usr/bin/env python3
import time
from sem6000 import SEMSocket
import bluepy
PW = "0000"
MYMAC = 'B0:B1:B2:B3:B4:B5'
socket = None
while True:
  time.sleep(1)
  try:
    if socket == None:
      print("Connecting... ", end="")
      socket = SEMSocket(MYMAC)
      print("Success!")
      print("You're now connected to: {} (Icon: {})".format(socket.name, socket.icons[0]))
      if socket.login(PW) and socket.authenticated:
        print("Login successful!")
        socket.getSynConfig()
    socket.getStatus()
    print("=== {} ({}) ===".format(socket.mac_address, "on" if socket.powered else "off"))
    print("\t{}V {}A ? {}W@{}Hz (PF: {})".format(socket.voltage, socket.current, socket.power, socket.frequency, socket.power_factor))
  except (SEMSocket.NotConnectedException, bluepy.btle.BTLEDisconnectError, BrokenPipeError):
    print("Restarting...")
    if socket != None:
      socket.disconnect()
      socket = None

Den Stecker von Delock steuern Sie über eine einfache Web-API. Bei Erstbetrieb oder nach vierfachem Drücken des Schalters startet unter dem Namen Delock ein Hotspot. Die Webseite unter der Adresse http://192.168.4.1 nimmt die Konfigurationsdaten für das Netz entgegen, in das sich die Messsteckdose später einwählen soll. Dort eingebucht, teilt ihr der Router eine IP-Adresse zu. Danach erreichen Sie den Webserver des Delock-Steckers unter http://<I>IP-Adresse<I>. Die grafische Oberfläche erleichtert das Testen deutlich. API-Befehle setzen Sie unmittelbar im Adressaufruf nach folgendem Muster ab:

http://IP-Adresse/cm?cmnd=Befehl

Mit dem Befehl Power%20toggle wechseln Sie den Schaltzustand, Power%20on und Power%20off schalten die Steckdose ein und aus. Zur Statusabfrage und zum Auslesen der Messwerte verwenden Sie status%208. Mit EnergyReset3%200 setzen Sie den internen Zähler zurück, TelePeriod%2030 stellt die Messperiode auf 30 Sekunden ein.

Ein minimales Python-Programm für den Delock könnte so aussehen wie in Listing 2. Aus base_url und ivp_data baut der Befehl requests.get die Abfrage an die Messsteckdose (Zeile 6). Die antwortet mit einem JSON-String, dessen Aufbau Listing 3 beschreibt. Die restlichen Zeilen von Listing 3 zerlegen den JSON-String in die Variablen power für die gesuchte Leistung und rtime für den Zeitpunkt der Messung. Anders als das Bluetooth-Gerät SEM6000 liefert der Delock selbst die Messzeitpunkte.

Listing 2

Delock auslesen

import matplotlib.pyplot as plt
import requests
import json
base_url = "http://IP-Adresse/cm?"
ivp_data = {"cmnd": "status 8"}
result = requests.get(base_url, params = ivp_data)
x = json.loads(result.text)
factor = x["StatusSNS"]['ENERGY']['Factor']
current = x["StatusSNS"]['ENERGY']['Current']
voltage = x["StatusSNS"]['ENERGY']['Voltage']
power = x["StatusSNS"]['ENERGY']['Power']
rtime = x["StatusSNS"]['Time']
energy= x["StatusSNS"]['ENERGY']['Total']

Listing 3

JSON-String

{"StatusSNS":{"Time":"2022-10-01T20:03:20",
   "ENERGY":{"TotalStartTime":"2022-10-01T18:47:41",
             "Total":0.000,"Yesterday":0.000,"Today":0.000,
             "Power":0,"ApparentPower":0,
             "ReactivePower":0,"Factor":0.22,
             "Voltage":229,"Current":0.002}}}

Falls der Delock-Stecker falsch misst, könnte das an einer fehlenden Eichung liegen. Sie lässt sich korrigieren, wenn das Gerät einen Verbraucher bekannter Leistung misst. Im Beispiel aus der Tabelle “Delock eichen” kommt eine Glühbirne mit 40 Watt Nennleistung zum Einsatz, deren tatsächliche Leistung 37 Watt beträgt. Die Spannung in Deutschland weicht nur unwesentlich von 230 Volt ab. Der Quotient aus Leistung und Spannung bestimmt den Strom, hier 160 mA. Die Befehle aus der Tabelle stellen die Anzeige auf die neuen Werte um. Anschließend sollte der Leistungsmesser nicht nur die Glühbirne korrekt messen, sondern auch alle anderen Verbraucher.

Befehl

Bedeutung

PowerSet%2037

Leistung 37 Watt

VoltageSet%20230

Spannung 230 Volt

CurrentSet%20161

Strom 161 mA

Zur Analyse des Energiebedarfs von Haushaltsgeräten genügen als Messgrößen der Zeitpunkt der Messung und die Wirkleistung. Für ein praktisches Beispiel untersuchen wir einen Kühlschrank, eine Waschmaschine und ein Wasserbett. Darüber hinaus bestimmen wir den Wirkungsgrad einer Mikrowelle und beantworten die Frage, wer wirtschaftlicher Wasser erhitzt: ein Wasserkocher oder eine Mikrowelle.

Kühlschrank

Laut Typenschild weist der in Abbildung 2 untersuchte Kühlschrank eine Leistungsaufnahme von 90 Watt auf. Laut Messung begnügt sich der Kompressor mit 70 Watt (blaue Kurve). Ein- und Ausschaltphasen wechseln sich mit einem Intervall von ungefähr 30 Minuten ab. Die Lastreserve stellt sicher, dass ein Kühlschrank auch bei warmer Umgebung genügend Kühlleistung aufbringt, indem er die Pausen verkürzt. Ein Blick auf das vorletzte Zeitfenster in Abbildung 2 zeigt das Öffnen der Kühlschranktür. Zum einen sehen Sie hier den Leistungsabruf von wenigen Watt für die Innenbeleuchtung, zum anderen bewirkt der Kälteverlust ein vorzeitiges Anspringen des Kühlaggregats.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben