Sonoff POW in Homematic System einbinden

Sonoff POW in Homematic System einbinden

In dem vorherigen Artikel habe ich erklärt, wie Sonoff S20 Steckdosen in das Homematic-System eingebunden werden können. In diesem Artikel erkläre ich, wie ein Sonoff Pow in das Homematic-System mit Rückmeldung der Energieverbrauchdaten eingebunden werden kann. Sonoff Pow ist ein kabelloser Smart-Power-Switch mit Stromverbrauchsmonitor. Der Fernschalter Sonoff Pow funktioniert wie ein Stromverbrauchsrechner (kWh-Rechner). Er ermöglicht die Berechnung des Stromverbrauchs und die Fernsteuerung der angeschlossenen Elektrogeräte WLAN. Der Sonoff Pow Energieverbrauchsrechner hat die erstaunliche Fähigkeit, den Stromverbrauch der Elektrogeräte sofort anzuzeigen. Darüber hinaus besteht die Möglichkeit, den Energieverbrauch in kWh über einen bestimmten Zeitraum zu erfassen und monatliche Energieverbrauchsberichte zu erstellen. Sonoff Pow ermöglicht es den Benutzern daher, die Stromrechnung zu berechnen, herauszufinden, welche Geräte die meiste Energie verbrauchen, damit sie die Stromrechnung leicht senken können. Zwar funktioniert die Einbindung des Sonoff Pow Geräts ziemlich ähnlich wie die Einbindung der Sonoff S20 Zwischensteckdose, wollte ich es trotzdem in einem separaten Beitrag zusammenfassen, weil es da einige Unterschiede gibt.


Voraussetzungen

Benötigte Hardware

  • Sonoff Pow (z.B hier erhältlich)/Sonoff Pow R2
  • Ein guter USB TTL Konverter, der 3,3 V für die Stromversorgung des Geräts (oder ein separates 3,3 V-Netzteil) liefern kann (z.B hier erhältlich).
    Bitte beachten, dass es einige USB TTL Konvertern gibt, die zwischen 3,3 V und 5 V umgeschaltet werden können, trotzdem 5 V liefern, obwohl 3 V eingeschaltet sind. Dadurch kannihr Gerät beschädigt werden. Ihr SOLLTET überprüfen, dass sowohl die Daten- als auch die Power-Pins 3,3 V liefern.
  • Lötkolben und 2,54 mm-Stiftleiste

Benötigte Software

Sie können eines der folgenden Programme verwenden:

Software vorbereiten

PlatformIO

  1. Den neuesten Sonoff-Tasmota-Quellcode (zip) herunterladen und extrahieren
  2. Den Sonoff-Tasmota-Quellcodeordner in PlatformIO laden
  3. Die Firmwarevariante auswählen, die auf ihr Modul eingespielt werden soll, indem ihr eine der env_default-Zeilen in der platformio.ini auskommentiert. Möglicherweise solltet ihr auch den Werd beim upload_port ändern, um ihn an den Kommunikationsport der seriellen USB-Schnittstelle anzupassen. Es stehen folgende Firmwarevariante zum Auswahl:
    • sonoff-minimal.bin =  minimale Version erlaubt OTA-Uploads zur Unterstützung größerer Versionen und ändert KEINE persistenten Parameter. Diese Version sollte NICHT für die Erstinstallation verwendet werden.
    • sonoff-classic.bin = Die Classic-Version mit WifiManager, WPS oder SmartConfig, kann für Erstinstallation verwendet werden. Für Erstinstallation von mir empfohlen!
    • sonoff.bin = Die Sonoff-Version ohne WPS und SmartConfig, fügt jedoch mehr Sensoren hinzu.
    • sonoff-BG.bin bis sonoff-TW.bin = Die Sonoff-Version ohne WPS und SmartConfig in verschiedenen Sprachen.
  4. my_user_config.h öffnen und die WLAN-Einstellungen (und optional die Einstellungen für MQTT, Syslog, WebServer, NTP usw.) anpassen
    • #define STA_SSID1              "Dein_WiFi_SSID"      // [Ssid1] Wifi SSID 
      #define STA_PASS1              "Dein_WiFi_Passwort"  // [Password1] Wifi password

      Dieser Vorgang vereinfacht das Vorgehen beim erstmaligen Einspielen der neuen Firmware, da Sonoff ihr WLAN automatisch erkennt. Dabei beachten, dass WiFi SSID sowie WiFi Passwort keine Sonderzeichen und Lehrstellen enthalten sollen.

Arduino IDE

  1. ESP8266-Board in Arduino IDE einrichten (wenn ihr ESP8266-Board in Arduino IDE schon vorher eingerichtet habt, kann dieser Schritt weggelassen werden)
    • Arduino IDE öffnen, im Hauptmenü File > Preferences klicken und dann den folgenden Text in Feld Additional Boards Manager URLs eingeben:
      http://arduino.esp8266.com/stable/package_esp8266com_index.json
      Anschließend OK klicken.
    • Im Hauptmenü Tools > Boards > Boards Manager klicken, ganz nach unten scrollen und anschließend auf esp8266 by ESP8266 Community klicken. Letzte Version auswählen und  auf Install klicken. Die letzte Version der Software für ESP8266-Platte wird somit installiert. Nach erfolgreicher Installation der Software kann das Fenster geschlossen werden.
    • Falls ihr nicht das neuste ESP8266-Software haben, empfehle ich es zu updaten.
  2. Den neuesten Sonoff-Tasmota-Quellcode (zip) herunterladen und extrahieren (bei mir ...\Documents\Arduino\)
  3. Alle Dateien von ...\Documents\Arduino\Tasmota-Quellcode-Ordner\lib in ...\Documents\Arduino\Libraries kopieren
  4. Arduino IDE im Hauptmenü Tools so konfigurieren:
    • Board: „Generic ESP8266 Module“
    • Flash Mode: „DOUT“
    • Flash Size: „1M (no SPIFFS)“
    • Debug port: „Disabled“
    • Debug Level: „None“
    • IwIP Variant: „v2 Higher Bandwidth“
    • Reset Method: „nodemcu“
    • Crystal Frequency: „26 MHz“
    • VTables: „Flash“
    • Flash Frequency: „40 MHz“
    • Upload Using: OTA_upload
    • CPU Frequency: „80 MHz“
    • Builin LED: „2“
    • Uploud Speed: „57600“
    • Erace Flash: „Only Sketch“
    • Port: hier später den Port auswählen, wo USB-Seriell-Konverter angeschlossen wird
  5. WLAN-Einstellungen (und optional die Einstellungen für MQTT, Syslog, WebServer, NTP usw.) anpassen und Tasmota-Firmware kompilieren:
    • In Arduino IDE die Datei sonoff.ino aus dem Tasmota-Verzeichnis öffnen.
    • my_user_config.h öffnen und folgende Zeilen anpassen:
      • #define STA_SSID1              "Dein_WiFi_SSID"      // [Ssid1] Wifi SSID 
        #define STA_PASS1              "Dein_WiFi_Passwort"  // [Password1] Wifi password

        Dieser Vorgang vereinfacht das Vorgehen beim erstmaligen Einspielen der neuen Firmware, da Sonoff ihr WLAN automatisch erkennt. Dabei beachten, dass WiFi SSID sowie WiFi Passwort keine Sonderzeichen und Lehrstellen enthalten sollen.

    • Tasmota-Firmware kompilieren, dafür im Hauptmenü auf SketchVerify/Compile klicken.

USB-TTL Serial Adapter anschließen

Es sind auf der Leiterplatte des Sonoff Pow Geräts die Anschlüsse für einen USB-TTL Serial Adapter verfügbar, die Stifte müssen aber gelötet oder auf andere Weise angebracht werden, um eine Verbindung herzustellen. Es wird einen USB TTL 3,3V-Adapter benötigt (z. B. CP2102, CH340G, FT232, PL2303 o. ä.), der an die Anschlüsse der  seriellen Schnittstelle des Sonoff-Moduls angeschlossen wird. Vorsicht: einige sogenannte 3,3V-FTDI-Adapter liefern 5 V an der VCC-Leitung, dadurch kann das Sonoff-Gerät beschädigt werden. Bevor ihr den USB-TTL Adapter mit Ihrem Sonoff-Gerät verbinden, messt die Spannung an dem Daten- und an dem Power-Pin, es soll 3,3 V sein.

Achtung! Nicht gleichzeitig die Wechselstromversorgung und die serielle Verbindung anschließen! Beim Kurzschließen der seriellen Schnittstelle mit AC wird das Sonoff-Gerät oder Programmiergerät beschädigt. Zudem kann ihr PC beschädigt werden. Alle Hochspannungskabel sollen vom Sonoff-Modul getrennt werden, während der Sonoff-Gerät über Seriell/USB angeschlossen ist.

Schritt 1: Sonoff-Gerät öffnen und Leiterplatine abschrauben

Das Gerät muss zu Anfang geöffnet werden, wodurch dann die Garantie verloren geht. Da die Geräte allerdings deutlich günstiger als bei der Konkurrenz sind, ist das Fehlen der Garantie kein großes Problem. Das Gehäuse von Sonoff POW wird geöffnet, indem die Schraube am Klemmendeckel entfernt wird.  Anschließend mit einem Schraubendreher oder ähnlichen rund um den Deckel gegangen werden soll, damit sich der Deckel von den Clips löst.

Sonoff-Pow-dissembling

Schritt 2: Stiftleiste anlöten und USB-TTL Serial Adapter anschließen

Nachdem das Gerät nun geöffnet ist, müssen nun noch wegen der nachfolgenden Programmierung die 2,54 mm-Stiftleiste angelötet werden. Diese ermöglicht eine stabile Verbindung während der Programmierung, sodass der Programmiervorgang erfolgreich durchlaufen kann. Verbunden wird der Sonoff dann mit Jumper-Kabeln  an den Programmieradapter.

Der Anschluss an den Sonoff erfolgt wie in dem Bild unten dargestellt. Wichtig ist: NIEMALS Netzspannung an den Sonoff während der Programmierung anschließen! Lebensgefahr!!!

Beim Anschließen des USB-TTL Serial Adapters auf gekreuzte RX- und TX-Leitungen achten! Der Anschluss an den Adapter kann variieren, je nachdem welcher vorhanden ist.

Flash-Modus beim Modul aktivieren

Das „Kernstück“ des Sonoff-Moduls – ESP8266 soll in den Flash-Modus versetzt werden, bevor die Sonoff-Tasmota-Firmware übertragen werden kann. Diese geschieht durch das Schließen des GPIO0-Pins an GND, während das Modul bootet. Beim Sonoff Pow ist die Steuertaste verfügbar, die GPIO0 mit GND verbindet, wodurch die Versetzung des Moduls in den Flash-Modus sehr einfach ist.

Die Vorgehensweise ist folgende:

  1. WICHTIG! Das Modul soll zuerst von der Stromversorgung getrennt werden
  2. GPIO0 und GND durch Drücken der roten On-Board-Taste verbinden
  3. USB TTL 3.3V-Konverter mit dem PC verbinden (den Taster gedrückt halten), somit wird das Sonoff-Modul mit Strom versorgt
  4. Den Taster nach zwei bis drei Sekunden loslassen, somit wird GPIO0 von GND getrennt

Ein weiterer wichtiger Punkt: Treiber vom TTL 3.3V-Konverter soll installiert werden! Auch wenn der Adapter verbunden scheint, die meisten Probleme treten schon hier auf. Daher an dieser Stelle einmal in den Gerätemanager schauen, ob der Adapter von Windows korrekt erkannt wurde:

Wenn alles gut gelaufen ist, befindet sich das Sonoff-Gerät im Flash-Modus, die Sonoff-Tasmota-Firmware kann eingespielt werden. Wenn der Upload nicht gestartet werden kann, trennt das Modul ab und beginnt von vorne.

Einspielen der Sonoff-Tasmota-Firmware

PlatformIO

  1. Das Sonoff-Modul soll sich im Flash-Modus befinden und und an den Rechner angeschlossen sein
  2. Upload aus dem Menü wählen, um die Firmware einzuspielen
  3. Nach erfolgreicher Übertragung der Firmware trennen Sie das Modul
  4. Für eine korrekte Initialisierung des Geräts nach dem ersten Firmware-Upload das Gerät aus und wieder einschalten.

Arduino IDE

Arduino IDE verwendet die serielle Schnittstelle, um die Firmware auf Ihr Gerät einzuspielen. Unter Windows heißen diese Schnittstellen COM1, COM2 usw. Unter Linux heißen die Schnittstellen /dev/ttyUSB0, /dev/ttyUSB1 usw. Im Folgenden verwende ich COM5 nur als Beispiel. Ihr müsst den Namen der seriellen Schnittstelle wissen, mit der Ihr Gerät verbunden ist.

Beim Durchführen des Firmware-Uploads das Gerät nicht an die Wechselstromquelle anschließen, sondern die von euren seriellen Schnittstelle (Typ FTDI) bereitgestellte Stromquelle (3,3 V) verwenden.

Die Vorgehensweise ist dabei wie folgt :

  1. Das Sonoff-Modul soll sich im Flash-Modus befinden und und an den Rechner angeschlossen sein
  2. Korrekte Schnittstelle auswählen (in meinem Fall COM5), das könnt ihr im Hauptmenü ToolsPort anpassen.
  3. Die kompilierte Firmware mit SketchUpload auf Sonoff-Gerät hochladen.
  4. Für eine korrekte Initialisierung des Geräts nach dem ersten Firmware-Upload das Gerät aus und wieder einschalten.

Wenn die Konfiguration wird nach dem Flashen nicht angewandt wird

Wenn Ihre neue Konfiguration nach dem Firmware-Update nicht angewendet wird, könnt ihr Folgendes tun, um das Problem zu beheben:

  • Den Wert von CFG_HOLDER in my_user_config.h um +1 oder -1 ändern, dabei alten Wert merken
  • Firmware-Update durchführen
  • Den Wert von CFG_HOLDER in my_user_config.h auf den alten Wert ändern
  • Firmware-Update nochmal durchführen

Anfangskonfiguration des Geräts nach dem Firmware-Update

Ist die Sonoff-Tasmota-Firmware erfolgreich auf ihr Sonoff-Modul hochgeladen worden? Der Sonoff sollte sich nun mit dem eigenen WLAN verbinden. Die IP-Adresse, die meist per DHCP vergeben wird, wird nun wie gewohnt im Router ermittelt. Danach folgt nach dem Aufruf der IP im Browser die WEB-Oberfläche des Sonoff’s samt der Tasmota Firmware. Alle weiteren Einstellungen sind direkt auf dieser Oberfläche einzustellen. Dazu die Gerät-Webseite http://[sonoff-ip]/ öffnen. Dabei sollt ihr  [sonoff-ip] durch die tatsächliche IP-Adresse Ihres Sonoff-Geräts ersetzen. Hier kann die Konfiguration des Geräts angepasst werden. Ebenso ist ab sofort auch ein Firmware Update der Tasmota Firmware OTA möglich (mehr dazu unter dem Punkt Update).

Als “wichtige” Grundeinstellungen sollte unter “Einstellungen -> Gerät konfigurieren” das korrekte Modell ausgewählt werden.

Ebenfalls bei “Einstellungen -> Sonstige Konfiguration” ist es möglich ein Passwort für die Oberfläche festzulegen. Falls MQTT nicht verwendet werden soll, empfiehlt es sich den Haken zu entfernen, da ich dadurch eine verlangsamte Reaktion feststellen konnte – allerdings nur wenn MQTT aktiviert, aber nicht verwendet wird.

Sonoff POW kalibrieren

Es wird empfohlen, Sonoff Pow zu kalibrieren, um korrekte Messungen zu erzielen, da diese von Hardware- und Timing-Unterschieden beeinflusst werden können. Es gibt 2 Methoden, den Gerät zu kalibrieren. Bei der ersten Methode wird ein Multimeter und eine Glühbirne mit einer definierten Leistung gebraucht. Falls ihr kein Multimeter zur Hand habt, führt die Kalibrierung nach der alternativen Kalibrierungsmethode 2 durch.

Methode 1

Benötigte Hardware

  • Glühbirne mit der definierter Leistung (hier 60 W) mit Halterung
  • Multimeter

Vorgehen

Schließt die Glühbirne an den Ausgang von Sonoff Pow an und öffnen Sie die WebUI des Sonoff Pow-Geräts. Wartet einige Sekunden bis die Messwerte stabil werden.

Kalibrierung der Leistung

Die Leistung in Watt auf dem Multimeter anschauen. Auf die Sonoff Pow-Webseite gehen und den folgenden Befehl über die Konsole eingeben:

PowerSet 60

Dabei ist 60 die Leistung, die auf dem Multimeter angezeigt wird.

Kalibrierung des Stromes

Click on Console on one browser tab and watch out Power data on other page. Check out the Current in Amperes on multimeter and compare it with reading on Sonoff Pow web page. If there is a difference observed then change offset value by issuing the following command over the Console.

CurrentSet 261

Kalibrierung der Spannung

Click on Console on one browser tab and watch out Power data on other page. Check out the Voltage on multimeter and compare it with reading on Sonoff Pow web page. If there is a difference observed then change offset value by issuing the following command over the Console.

VoltageSet 231

Dabei ist 231 V die Spannung, die auf dem Multimeter angezeigt wird.


Method 2 – Alternative Calibration

Benötigte Hardware

  • Glühbirne mit der definierter Leistung (hier 60 W)

Vorgehen

Sonoff Pow kann auch ohne Multimeter kalibriert werden, wenn eine bekannte Last, z. B. hier eine 60-Watt-Glühlampe angeschlossen wird. Wir gehen davon aus, dass die Glühbirne an die 230 V Spanungsquelle angeschlossen ist, somit kann der Strom ausgerechnet werden, in diesem Fall beträgt der Strom 261 mA. Gibt die folgenden Befehle ein, um jeweils Leistung, Strom und Spannung automatisch zu kalibrieren:

PowerSet 60
VoltageSet 230
CurrentSet 261

Tasmota-Firmware updaten

Manuelles Update von Tasmota Firmware

Da die Firmware natürlich stetig weiter entwickelt wird, ist früher oder später ein Update notwendig. Falls bei euch das Updaten der Software nicht direkt das Update über den Web-Server funktioniert hat, hier ein kurzer Work-around.

  1. Aus den Releases die aktuelle sonoff-minimal.bin herunterladen.
  2. Im Sonoff Webinterface unter dem Punkt Firmware Update diese Version hochladen.
  3. Nach dem Neustart des Sonoff die sonoff-DE.bin hochladen.
  4. Damit ist das Sonoff Gerät wieder mit der aktuellen Tasmota Firmware auf dem aktuellen Stand. Die Konfiguration geht hierbei im Normalfall nicht verloren.

Integration der Sonoff Pow Steckdose an das Homematic System

Konfiguration der CCU

Skript für Sonoff-Steuerung an der CCU anlegen

Die Einbindung der Sonoff-Geräte erfolgt mithilfe eines Skripts. Das Skript kann hier herunterladen werden:

Herunterladen

Um das Skript auf die CCU einspielen, soll die SSH Schnittstelle auf der CCU eingeschaltet werden. Dazu öffnen wir zuerst die WebUI der Homematic und gehen in die Systemsteuerung in den Punkt Sicherheit

Dort aktivieren wir temporär die SSH Schnittstelle und vergeben ein Passwort.

Danach muss die Skript-Datei mit einem FTP Programm (bpsw. FileZilla) auf die CCU geladen werden. Dazu öffnen wir ein FTP Programm und verbinden uns mit der CCU.

Dazu auf „Neuer Server“ Knopf drücken, es wird ein Servermanager aufgerufen. In dem Servermanager-Dialog auf „Neuer Server“ klicken und einen Servernamen eingeben. Im Textfeld Server soll die IP-Adresse der CCU eingetragen werden. Als Protokoll soll SFTP gewählt werden. Als verbindungsart „Normal“ auswählen. Im Textfeld „Benutzer“ soll „root“ eingetragen werden, im Textfeld „Passwort“ soll das Passwort für die SSH Schnittstelle eingetragen werden, das ich in WebUI gesetzt haben. Abschließend auf „Verbinden“ klicken, um die Verbindung zur CCU2 zu starten. Falls die Verbindung geklappt ist, gehen wir weiter.

Im FileZilla links in den Verzeichnis auf PC/Mac gehen, wo das Skript heruntergeladen wurde. Rechts in das Verzeichniss „/usr/local/addons/cuxd/user/“ gehen. Im FileZilla gehst du eine Verzeichnissebene höher, indem du auf „..“ doppelklickst.

Anschliessend überträgst du die Datei sonoff.sh aus dem lokalen Verzeichnis von deinem PC/Mac in das Verzeichnis /usr/local/addons/cuxd/user/sonoff.sh auf der CCU. Dass kann per Drag & Drop gemacht werden.

Das hochgeladene Skript soll ausführbar gemacht werden, in dem der Datei noch die korrekten Berechtigungen eingeräumt werden. Dies kann auch direkt im FileZilla gemacht werden. Dazu die Datei Eigenschaften anzeigen lassen und die Berechtigung 755 für alle Dateien vergeben.

Die korrekten Berechtigungen können auch in der Console mit folgendem Befehl vergeben werden: chmod +x /usr/local/addons/cuxd/user/sonoff.sh

Wenn alles erfolgreich ist kann man den SSH Zugang in der HM WebUI wieder deaktivieren.

Virtuelles CUxD Device anlegen und konfigurieren

Das Sonoff-Gerät wird im Homatic System mit einem virtuellen CUxD-Gerät dargestellt. Mit diesem virtuellen Gerät wird der jeweilige Sonoff-Gerät gesteuert. Dazu ist ein neues CUxD Device anzulegen. Dazu die CuXD-Console öffnen, die ist unter Startseite > Einstellungen > Systemsteuerung zu finden.

cuxd02

Danach auf die Geräte-Seite wechseln. Dort das Gerät (28) System auswählen. Als Funktion Exec auswählen und als Control Schalter auswählen. Optional kann der Namen eingetragen und der Geräte-Icon ausgewählt werden.  Bei der Seriennummer kann die Vorgabe verwendet werden. Abschließend „Gerät auf der CCU erzeugen!“ drücken und auf die CCU2 Web Oberfläche wechseln.

Auf der CCU Oberfläche fügen wir nun ein neues Gerät hinzu, im Posteingang sollte das soeben erstelle neue Gerät bereits angezeigt werden. Es wird anschließend in der WebUI ein virtuelles Gerät mit 16 Kanälen erzeugt. Mit einem einzelnen CUxD Gerät mit 16 Kanälen sind somit 16 verschiedene Sonoff-Geräte steuerbar.

Nun soll der zuvor erstellte CUxD-Gerät konfiguriert werden, dazu im WebUI in die Einstellungen->Geräte gehen, den zuvor erstellten CUxD-Gerät aussuchen und auf das „Einstellen“ drücken:

Hier kann die Steuerung der Sonoff-Geräte eingerichtet werden:

Folgende Geräteparameter sollen eingetragen werden:

  • PARAM1 /usr/local/addons/cuxd/user/sonoff.sh

Folgende Kanalparameter sollen eingetragen werden:

Kanalparameter (tasmota mit Passwort im WebUI)

  • Unter „SWITCH|CMD_SHORT“ wird der Ausschaltbefehl eingetragen:
    $_P1$ -f power -c $CHANNEL$ -i $_C1$ -u $_C2$ -p $_C3$ -o 0
  • Unter  „SWITCH|CMD_LONG“ wird der Einschaltbefehl eingetragen:
    $_P1$ -f power -c $CHANNEL$ -i $_C1$ -u $_C2$ -p $_C3$ -o 1
  • Unter  „SWITCH|CH_PARAM1“ wird die IP-Adresse des Sonoff-Geräts eingetragen:
    192.168.XXX.XX
  • Unter  „SWITCH|CH_PARAM2“ kann der User-Name eingetragen werden:
    username
  • Unter  „SWITCH|CH_PARAM3“ kann der Passwort eingetragen werden:
    password

Kanalparameter (tasmota ohne Passwort im WebUI):

  • SWITCH|CMD_SHORT: $_P1$ -f power -c $CHANNEL$ -i $_C1$ -o 0
  • SWITCH|CMD_LONG: $_P1$ -f power -c $CHANNEL$ -i $_C1$ -o 1
  • SWITCH|CH_PARAM1: 192.168.XXX.XX

Variablen anlegen

Für die Darstellung und spätere Auswertung der Energiedaten werden drei Variablen vom Typ Zahl angelegt:

  • Sonoff Pow 001: Current
  • Sonoff Pow 001: Voltage
  • Sonoff Pow 001: Power

Die Namen der Variablen kann beliebig gewählt werden, ihr solltet nur aufpassen, dass im weiteren Verlauf die gleichen Namen verwendet werden. Die Variablen können per Kanalzuordnung dem Gerät zugeordnet werden. Dafür auf den Kanalauswahl klicken und den Sonoff Pow Gerät auswählen. Die Kanalzuordnung dient nur für die besseren Darstellung der Energiedaten, solche Variablen werden direkt unter dem Gerät angezeigt und sind in der Variablenliste der CCU nicht sichtbar.

Soweit der jeweilige Parameter am Sonoff Pow sich ändert, wird der per WebSend-Kommado in diesen Variablen auf der CCU gespeichert. Wie das eingerichtet wird, wird im nächsten Abschnitt beschrieben.

Konfiguration des Sonoff-Pow Geräts

Hier wird der Sonoff-Gerät konfiguriert, damit der Geräte-Status an die Homematic CCU geliefert wird, sobald der Gerät manuell (durch Hardware-Button) ein- bzw. ausgeschaltet wird. Des Weiteren soll ermöglicht werden, dass bei einer Änderung des jeweiligen Energieparameters (Stromstärke, Leistung oder Spannung) diese an die CCU weitergeleitet und in den in die entsprechenden Variablen gespeichert wird.

Diese wird mit den Regeln (Rules) realisiert. Ihr solltet beachten, dass die Sonoff-Tasmota-Firmware mindestens die Version 6.4.0 (oder höher) haben soll. Falls es nicht der Fall sein sollte, die Firmware zuerst updaten. Wie das Update der Firmaware durgeführt werden kann, wirde oben im Kapitel „Tasmota-Firmware updaten“ beschrieben. Die Konfiguration eines Sonoff-Geräts erfolgt in WebUI des Geräts. Zum Öffnen vom WebUI des Geräts im Browser die IP-Adresse von dem Sonoff-Gerät eingeben.

Dort auf die „Console“ clicken, die Console zur Konfiguration des Geräts wird geöffnet. Hier werden die Regeln konfiguriert.

Die folgenden Befehle (mit eigenen Daten ergänzt) solltet ihr eingeben:

var4 [192.168.XXX.XXX:8181] /Test.exe?
var5 Status=dom.GetObject
rule1
on power1#state=1 do WebSend %var4%%var5%('CUxD.CUXxxxxxxx:x.STATE').State(true) endon
on power1#state=0 do WebSend %var4%%var5%('CUxD.CUXxxxxxxx:x.STATE').State(false) endon
on System#Boot do backlog var1 0; var2 0; var3 0; var4 [192.168.XXX.XXX:8181] /Test.exe?; var5 Status=dom.GetObject endon
on Energy#Power>%var1% do backlog var1 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Power').State(%var1%) endon

Anstatt 192.168.XXX.XXX soll die IP-Adresse des CCU eingegeben werden. Anstatt CUXxxxxxxx:x soll die Bezeichnung des virtuellen Kanals eingegeben werden, der den Sonoff-Gerät steuern soll, z. B. CUX2801002:1. Falls ihr die eigenen Namen der CCU-Variablen verwendet haben, solltet ihr diese auch eintragen. Mit Enter-Taste wird der eingegebene Befehl an den Gerät versendet.

rule1 ON
rule2
on Energy#Power<%var1% do backlog var1 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Power').State(%var1%) endon
on Energy#Current>%var2% do backlog var2 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Current').State(%var2%) endon
on Energy#Current<%var2% do backlog var2 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Current').State(%var2%) endon
on Energy#Voltage>%var3% do backlog var3 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Voltage').State(%var3%) endon
rule2 ON
rule3
on Energy#Voltage<%var3% do backlog var3 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Voltage').State(%var3%) endon
rule3 ON

Somit sind wir fertig! Sobald der Sonoff-Gerät ein- bzw. ausgeschaltet wird oder ein der Energieparameter sich ändert, wird ein WEBSEND-Befehl ausgeführt, der ein HTTP-Request an die CCU sendet und dem virtuellen CUxD-Gerät sein aktuellen Status mitteilt.

Für Anmerkungen, Vorschläge, Hinweise, Anregungen und konstruktive Kritik zu diesem Artikel bin ich euch dankbar! Falls dieser Artikel euch geholfen hat oder ihr den nützlich findet, würde ich mich über eine Tasse Kaffee freuen, die ihr oben rechts für mich bestellen können. Vielen Dank.

Dieser Beitrag hat 9 Kommentare

  1. Hallo an den Verfasser und großes Lob für die hervorragende doku.
    bei mir hat alles bis auf das anzeigen der Messwerte funktioniert. da bekomme ich immer nur in der console websend error with wrong parrameters angezeigt.

    woran könnte das liegen . habe die firmware 6.5.0 de drauf und benutze eine ccu2 passwort im web interface des POW ist deaktiviert.

    1. Schreibe mal, wie deine Rules aussehen, bzw. alle Befehle, welche du in der Konsole eingegeben hast.

  2. Habe nochmal alles kontrolliert.
    Jetzt funktioniert es grundsätzlich, aber die Zuordnung der Variablen für Voltage,Current und Power ist vertauscht. Nachdem ich die korrigiert habe, läuft es prima.

    Vielen Dank nochmal.

    1. Stimmt, mein Fehler! Vielen Dank für die Anmerkung 🙂

  3. Hallo, danke erstmal für deine tolle Arbeit.
    Ich habe das Problem das bei mir immer der vorherige Wert in die Systemvariable auf der CCU geschrieben. Dadurch steht wenn man ausschaltet z.B. noch 230V drin anstelle der eigentlichen 0V.

    Hier ein Auszug aus der Konsole:
    22:10:49 RUL: ENERGY#VOLTAGE%VAR3% performs „backlog var3 232; WebSend [192.168.0.12:8181] /Test.exe?Status=dom.GetObject(‚Sonoff Pow 001: Voltage‘).State(231)“
    22:10:57 RSL: stat/sonoff/RESULT = {„Var3″:“232“}
    22:10:57 RSL: stat/sonoff/RESULT = {„WebSend“:“Done“}
    22:11:03 RSL: stat/sonoff/RESULT = {„POWER“:“OFF“}
    22:11:03 RSL: stat/sonoff/POWER = OFF
    22:11:03 RUL: POWER1#STATE=0 performs „WebSend [192.168.0.12:8181] /Test.exe?Status=dom.GetObject(‚CUxD.CUX2801004:1.STATE‘).State(false)“
    22:11:03 RSL: stat/sonoff/RESULT = {„WebSend“:“Done“}
    22:11:03 RSL: stat/sonoff/RESULT = {„POWER“:“OFF“}
    22:11:03 RSL: stat/sonoff/POWER = OFF
    22:11:05 RUL: ENERGY#VOLTAGE<%VAR3% performs "backlog var3 0; WebSend [192.168.0.12:8181] /Test.exe?Status=dom.GetObject('Sonoff Pow 001: Voltage').State(232)"
    22:11:05 RSL: stat/sonoff/RESULT = {"Var3":"0"}
    22:11:05 RSL: stat/sonoff/RESULT = {"WebSend":"Done"}

    1. Versuch mal so was:
      Rule 1:

      on Energy#Power>%var1% do backlog var1 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Power').State(%value%) endon

      Rule 2:
      on Energy#Power< %var1% do backlog var1 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Power').State(%value%) endon on Energy#Current>%var2% do backlog var2 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Current').State(%value%) endon
      on Energy#Current< %var2% do backlog var2 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Current').State(%value%) endon on Energy#Voltage>%var3% do backlog var3 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Voltage').State(%value%) endon

      rule 3:
      on Energy#Voltage< %var3% do backlog var3 %value%; WebSend %var4%%var5%('Sonoff Pow 001: Voltage').State(%value%) endon

      Es wird Sensorwert (%value%) anstatt des Variablenwertes per websend an CCU gemeldet.

      1. Vielen Dank, mit (%value%) funktioniert es. Ich hatte zwischenzeitlich noch Problem mit %var4%%var5% ich habe sie jetzt direkt durch [192.168.XXX:XXX:8181] /Test.exe?Status=dom.GetObject ersetzt.

        Bei mir sieht das ganze jetzt so aus:
        rule1
        on power1#state=1 do WebSend [192.168.0.XXX:8181] /Test.exe?Status=dom.GetObject(‚CUxD.CUX2801004:1.STATE‘).State(true) endon
        on power1#state=0 do WebSend [192.168.0.XXX:8181] /Test.exe?Status=dom.GetObject(‚CUxD.CUX2801004:1.STATE‘).State(false) endon
        on System#Boot do backlog var1 0; var2 0; var3 0 endon
        on Energy#Power>%var1% do backlog var1 %value%; WebSend [192.168.0.XXX:8181] /Test.exe?Status=dom.GetObject(‚Sonoff Pow 001: Power‘).State(%value%) endon

        rule2
        on Energy#Power%var2% do backlog var2 %value%; WebSend [192.168.0.XXX:8181] /Test.exe?Status=dom.GetObject(‚Sonoff Pow 001: Current‘).State(%value%) endon
        on Energy#Voltage>%var3% do backlog var3 %value%; WebSend [192.168.0.XXX:8181] /Test.exe?Status=dom.GetObject(‚Sonoff Pow 001: Voltage‘).State(%value%) endon

        rule3
        on Energy#Current<%var2% do backlog var2 %value%; WebSend [192.168.0.XXX:8181] /Test.exe?Status=dom.GetObject('Sonoff Pow 001: Current').State(%value%) endon
        on Energy#Voltage<%var3% do backlog var3 %value%; WebSend [192.168.0.XXX:8181] /Test.exe?Status=dom.GetObject('Sonoff Pow 001: Voltage').State(%value%) endon

        1. Welches Problem war mit Variablen „%var4%%var5%“? Bei mir funktioniert es. Mit diesen Variablen habe ich es deswegen gemacht, weil eine Regel maximal 512 Zeichen enthalten darf. Die Zeile „[192.168.XXX:XXX:8181] /Test.exe?Status=dom.GetObject“ wird mehrmals verwendet, deswegen packte ich die in die beiden Variablen. Wenn es aber ohne von der Zeichenanzahl passt, kann es natürlich weggelassen werden.

          1. Die Variablen wurden sporadisch bei einem Neustart nicht gesetzt und dann konnte natürlich nichts verschickt werden. Ich weiß nicht warum das nicht klappt. Da ich aber nicht mehr als drei werte an die CCU übertragen möchte, habe ich es halt so gemacht.

Schreibe einen Kommentar

Menü schließen