Tasmota Verbrauchswerte an Homematic übergeben

In einem meiner letzten Videos habe ich ja zum einen erklärt, wie ihr die günstigen Zwischenstecker flashen könnt (LINK) und ebenso, wie ihr diese dann in die Homematic einbinden könnt (LINK).

Oft kam nun aber die Frage, wie man die Verbrauchswerte mit in die Homematic übertragen kann. Und genau dies schauen wir uns nun gemeinsam an!

Vorbereitungen

Zunächst einmal erstelle ich mir eine neue Systemvariable auf der CCU. Ich möchte diese mit dem aktuellen Wert meiner Solaranlage beschreiben, so das ich hier als info immer den aktuellen Wert habe. Das reicht mir persönlich. Hierfür erstelle ich mir eine Systemvariable:

Neue Systemvariable, die ich mit dem Zwischenstecker beschreiben werde

Diese Systemvariable werde ich über Tasmota dann beschreiben. Um dies kurz zu testen kannst Du dies allerdings auch über die ganz normale Adresszeile im Browser erledigen. Gebe doch hierfür einmal testweise das folgende ein:

192.168.178.200/cuxd.exe?ret=dom.GetObject('solar').State(22)

An dieser Stelle muss natürlich die IP Adresse mit Deiner Adresse angepasst werden. Ebenso ist darauf zu achten, dass die erstellte Systemvariable (in meinem Fall “solar”) auch mit angepasst wird.

Nachdem Du die Adresse eingetragen hast und Enter gedrück hast, wird der Wert (im Beispiel 22) in die Systemvariable geschrieben.

Erstellen der Regel unter Tasmota

Weiter geht es nun im Webinterface vom Zwischenstecker selbst. Hier müssen wir nochmals mit den Regeln arbeiten. Ich habe hier zwei verschiedene Möglichkeiten, die ich Dir zeigen möchte. Empfehlen würde ich aber eher die zweite.

Im nun folgenden Beispiel werden die Werte sofort zur CCU übertragen und in die Systemvariable geschrieben. Dies ist nur bedingt zu empfehlen, da doch recht viele Werte übertragen werden. Ich benötige in meinem Anwendungsfall nicht alle Werte sofort – mir reicht es wenn diese minütlich übertragen werden weshalb ich auch die zweite Variante nutze.

Rule1 on Energy#Power!=%var1% do backlog var1 %value%; WebSend [192.168.178.200:8181] /cuxd.exe?Status=dom.GetObject('solar').State(%var1%) endon

Wichtig in beiden Varianten ist natürlich, dass Du hier die IP Adresse Deiner CCU sowie den Namen der Systemvariable anpasst. Sonst klappt dies nämlich nicht.

Hier nun meine Version, in der die gemessenen Werte jede Minute an die CCU übertragen werden:

Rule1 on Energy#Power do var1 %value% endon on Time#Minute do WebSend [192.168.178.200:8181] /cuxd.exe?Status=dom.GetObject('solar').State(%var1%) endon

Video

Links:

Dokumentation über die Erstellung von Tasmota Regeln: https://tasmota.github.io/docs/Commands/#rules

Der von mir genutze Zwischenstecker: https://youtu.be/hIxMXXMVIZw

Vielleicht auch interessant?

Beitrag teilen:

18 Kommentare. Hinterlasse eine Antwort

  • Thomas Turowski
    14. Mai 2020 20:20

    Hallo Stefan,
    wie immer coole und sehr hilfreiche Anleitung 🙂
    Die Watt-Zahl wird jetzt in die Variable geschrieben. Wie bekomme ich denn die Verbrauchswerte ausgelesen?

    schöne Grüße

    Thomas

  • Hallo Thomas,
    du musst die Rule erweitern oder eine neue anlegen. Dabei folgendes anpassen: “Energy#Power”
    Verbrauch Total = “Energy#Total”
    Verbrauch gestern = “Energy#Yesterday”
    Verbrauch heute = “Energy#Today”
    Spannung = “Energy#Voltage”
    Strom = “Energy#Current”

    Beispiel:

    Rule1
    on Energy#Power do var1 %value% endon on Time#Minute do WebSend [192.168.178.200:8181] /cuxd.exe?Status=dom.GetObject(‘solar’).State(%var1%) endon
    on Energy#Voltage do var2 %value% endon on Time#Minute do WebSend [192.168.178.200:8181] /cuxd.exe?Status=dom.GetObject(‘Spannung’).State(%var2%) endon

    Gruß
    Ralf

  • Variable vom Counter
    17. August 2020 16:38

    Klasse gemacht ,wie immer sehr gut erklärt,weiter so.Kurze Frage ,wie kann ich einen Counter auslesen als Variable?Im Tasmota steht sonoff.0.DVES_20AC67.COUNTER_C1 . Danke aus Sachsen Reini

  • Hi,

    die Sp111 ist geflasht. Ein/Aus funktioniert in beide Richtungen. Durch die Eingabe: 192.168.178.200/cuxd.exe?ret=dom.GetObject(‘solar’).State(22) die ip der CCu3 angepasst. Passiert leider nichts außer –> 403 Forbidden (Meldung).

    was könnte falsch sein??

    Danke euch

  • Hallo
    Bei mir das selbe wie bei Manuel, funktioniert auch mit einen Raspberry nicht. Gibt es hierzu denn keine Lösung?

    Viele Grüße
    Dirk

  • Hallo Stefan,
    Tolle Anleitung. Funktioniert wie beschrieben. Mit deinem zuletzt beschriebenen Befehl erzeugst du aber die VAR1 permanent, sobald sich der Wert ändert und schreibst dann nach Zeit den Wert in die Homematic. Soweit so gut.
    Jetzt habe ich noch Iobroker am Start und erhalt die Wert ebenfalls. Hier wird natürlich VAR1 auch übergeben und jetzt kommt genau das Problem – nach du VAR1 permanent festlegst, wird dieser Wert auch permanent an den Iobroker übergeben.
    Ich wäre dir dankbar, wenn du eine Tasmota Regel bauen kannst, dass die Variable VAR1 nur einmal pro Minute erzeugt wird und dann entsprechend auch in die Homematic geschrieben wird.
    Danke dir für deine Unterstützung. Viele Grüße Thomas

  • Weiß jemand, wie der websend mit einem Sonoff TH Module funktioniert? habe statt Energy#Power Temperatur geschrieben. Funktioniert aber so leider nicht. Es ist ein AM2301 Sensor verbaut und ich möchte die Temperatur senden. Hätte gedacht, dass es so wie oben beschrieben funktionieren müsste.

    mein Befehl:

    Rule1 on Temperature!=%var1% do backlog var1 %value%; WebSend [192.168.178.XXX:8181] /cuxd.exe?Status=dom.GetObject(‘Sonoff TH10 001: Temperature’).State(%var1%) endon
    Danke und viele Grüße
    Timo

  • Martin Biedenbach
    13. Mai 2021 14:23

    Hallo Stefan, kann ich die Regel auch wieder ausschalten? Ich werde die Übertragung jetzt doch über den ioBroker machen. Ich hatte den Intervall auf eine Sekunde eingestellt. In der Systemvariablen ist nichts angekommen. Wenn ich den Wert manuell übertragen wollte, dann ist immer die Fehlermeldung 403 Forbidden angezeigt worden. Viele Grüße Martin

  • Hallo Stefan, ich habe mal versucht Dein Projekt etwas abgewandelt zu nutzen. Auf einem Wemos D1 Mini habe ich Tasmota installiert und einen DS18B20 Temperatursensor installiert. Genau wie Dirk und Manuel habe ich bei dem Web basierten Befehl zunächst die Fehlermeldung “403 Forbidden” bekommen.
    Das lag bei mir am fehlenden User/Passwort. Ich habe also beides integriert und dann funktionierte es. Sieht bei mir so aus. http://User:Passwort@192.168.178.62:8181/cuxd.exe?ret=dom.GetObject('Temp1‘).State(150)

    Leider funktioniert aber meine Regel in Tasmota nicht.
    Rule1 on DS18B20#Temperature do var1 %value% endon on Time#Minute do WebSend [User:Passwort@192.168.178.62:8181] /cuxd.exe?Status=dom.GetObject(‘Temp1’).State(%var1%) endon

    Die Tasmota Konsole zeigt zwar Temperaturwerte an aber irgendwo klemmt es.

    RSL: SENSOR = {“Time”:”2021-11-29T00:57:33″,”DS18B20″:{“Id”:”04175033C9FF”,”Temperature”:20.4},”TempUnit”:”C”}

    Hast Du irgendeine Idee?
    Ciao Jens

    • Hallo Jens

      Der Fehler sollte bei Übergabe des Namens/Passwort liegen, bei mir Funktioniert das einwandfrei (Benutze sowas ja nicht).
      (versuch es mal ohne) Und Rule 1 on (Rule1 Einschalten) nicht vergessen.

      Rule1 on DS18B20#TEMPERATURE do var1 %value% endon on Time#Minute do WebSend [192.168.0.37:8181]
      /cuxd.exe?Status=dom.GetObject(‘VariablenName’).State(%var1%) endon

      Gruß Jürgen

  • Super Beschreibung,
    ist nur mal so eine Idee, kann man die Rule auch einmal am Tag nur schreiben?
    habe das mal selber probiert, leider tut es nicht was ich vorhabe

    Rule2 on Time#Minute do Energy#Total var1 %value%; WebSend [192.168.0.3:8181] /cuxd.exe?Status=dom.GetObject(‘Tasmota210.Total’).State(%var1%) endon

    Gruß
    Michael

  • Jürn Gosselaar
    10. Januar 2023 11:55

    Hallo,
    den Link für die Übertragung zur CCU habe ich angepasst, Die IP muss ja die vom Tasmota-Stecker sein, richtig ? (hier die drei XXX)
    Die erstellte Systemvariable heißt bei mir “Balkonkraftwerk”
    http://192.168.178.XXX/cuxd.exe?ret=dom.GetObject(%27Balkonkraftwerk%27).State(200)

    Da kommt nur:
    “Datei nicht gefunden

    URI: /cuxd.exe
    Method: GET
    Arguments: 1
    ret: dom.GetObject(‘Balkonkraftwerk’).State(200)”

    Der Port 8181 ist in der Firewall der CCU freigegeben.

    Wo könnte mein Fehler liegen ?

  • Deine Anleitung ist zwar schon älter, aber mir hat sie heute wirklich geholfen.
    Nach vielen Recherchen war Deine Lösung die einfachste und effizienteste.
    Vielen Dank dafür.
    Verbunden habe ich einen Sonoff TH16 mit DS18B20 Temperatur-Sensor.
    Für die, die genauso hilflos umhersuchen wie ich:
    Rule2 on DS18B20#Temperature do var1 %value% endon on Time#Minute|1 do WebSend [192.168.xx.xxx:8181] /cuxd.exe?Status=dom.GetObject(‘HA-Soo-TH16-2Temp’).State(%var1%) endon

Du musst angemeldet sein, um einen Kommentar abzugeben.

Weitere ähnliche Beiträge auf verdrahtet.info: