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:
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
18 Kommentare. Hinterlasse eine Antwort
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
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
Firewall freogeben, Gruß
Firewall bzw Port freigeben (8181) Gruß
Im Beispiel oben Fehlt die Portangabe :8181 hinter der IP deiner Zentrale.
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
Hi Timo, deine Frage ist zwar schon etwas her, aber:
Die Tasmota Rule Syntax für den Trigger ist
[SensorName]#[ValueName]
oben also Energy#Power.
Bei Deinem Sensor dann folglich
AM2301#Temperature,
also
Rule1 on AM2301#Temperature do ….
Mehr dazu hier https://tasmota.github.io/docs/Rules/
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
Ja klar – auch in der Konsole. Hier musste ja die Regel mit “Rule1 1” eingeschaltet werden. Ausschalten kannst Du diese mit “Rule1 0”
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
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