NEWS
Tasmota Rules?
-
@tasuanetrukiat
Ich hänge mich hier mal dran.
Ja, man kann mit "Teleperiod" die Sendezyklen einstellen.
Ich denke, das ist auch das, was man als "Telemetry period" unter Logging im UI einstellen kann.Mich wurmt aber, dass das immer nur zyklisch ist und nicht ad hoc bei Bedarf (bei manchen Themen wäre das viel besser).
Ich meine, mal gelesen zu haben, dass man so eine "sende sofort, wenn sich Wert geändert hat" Sachen auch irgendwie im Tasmota umgesetzt bekommen kann.
Weiss hier jemand, wie?
-
Google mal nach PowerDelta ( so meine ich , heißt das)
Teleperiod ist10sek das Niedrigste.Bei Tasmota Geräten nimmt man den Sonoff Adapter.
Die sind aufeinander eingespielt und liefern dir fertige Datenpunkte. -
@bertderkleine sagte in Tasmota MQTT Werte erhalten:
"sende sofort, wenn sich Wert geändert hat"
das kann per Rule oder Scripting ausgeführt werden.
Bsp Rule :
ON Trigger xy DO publish xy ENDON -
@ralla66 sagte in Tasmota MQTT Werte erhalten:
@bertderkleine sagte in Tasmota MQTT Werte erhalten:
"sende sofort, wenn sich Wert geändert hat"
das kann per Rule oder Scripting ausgeführt werden.
Bsp Rule :
ON Trigger xy DO publish xy ENDONKlasse, ich glaube das mit den rules geht tatsächlich so, wie ich das gerne hätte. Leider kann ich aber die Doku nicht richtig lesen.
Ich habe in der Konsole mal den Befehl "Status 8" abgesetzt, der erwähnt wird. Raus kommt z.B.:stat/tasmota_CO2/STATUS8 = {"StatusSNS":{"Time":"2024-03-17T14:23:26","MHZ19B":{"Model":"B","CarbonDioxide":732,"Temperature":21.0},"TempUnit":"C"}}
Mir ist nicht klar, wie ich jetzt daraus einen Trigger machen soll, wenn ich auf eine Änderung von "CarbonDioxide" mit einem Senden der Daten reagieren will.
In der Doku liest es sich so simpel:
DS18B20#Temperature whenever the temperature of sensor DS18B20 updates (also unchanged)
Der Sensor ist eigentlich der MHZ19B. Aber diese JSON Darstellung mit all den Klammern verwirrt mich.
Weisst Du, wie es nun richtig lauten würde? So?
MHZ19B#CarbonDioxide
-
@bertderkleine sagte in Tasmota MQTT Werte erhalten:
MHZ19B#CarbonDioxide
keine Ahnung ob der mit Tasmota Rules unterstützt wird,
wenn wäre der Anfang
On MHZ19B#CarbonDioxide>0 do Publish xy Endon
also jedesmal getriggert wenn der Wert größer 0 ist.
Zum testen kann ja bei do erst einmal ein Relay mit Power geschaltet werden.
Sowas halt:
ON MHZ19B#CarbonDioxide>0 DO Power1 1 ENDONwenn das mit Rules nicht geht dann mit scripting schnitzen,
mit =>websend [192.168.2.xxx] /cm?cmnd=status 10 Abfrage an den ESP selbst,
auswerten des JSON nach Wert mit
mit >E
;Executed when a Tasmota MQTT RESULT message is received
Wert=WebQuery#StatusSNS#MHZ19B#CarbonDioxide
danach das publish -
kannst ja mal testen mit Tasmota Scripting, IP ersetzt du mit der ESP IP,
Datenpunkt wird in Mqtt erstellt ( nach reboot )
Debug Infos stehen in der Tasmota Konsole,>D Timer=0 Wert=0 >BS +>subscribe EA, cmnd/Sensor/MHZ19B >S Timer+=1 if Timer>2 then =>websend [192.168.2.xxx] /cm?cmnd=status 10 print ----- Websend Status 10 ----- endif if Timer>2 then +>publish Sensor/MHZ19B %Wert% print ----- publish %Wert% ----- Timer=0 endif >E Wert=WebQuery#StatusSNS#MHZ19B#CarbonDioxide >W MHZ19B_CarbonDioxideist{m} %0Wert% #
-
@ralla66 sagte in Tasmota MQTT Werte erhalten:
kannst ja mal testen mit Tasmota Scripting, IP ersetzt du mit der ESP IP,
Datenpunkt wird in Mqtt erstellt ( nach reboot )
Debug Infos stehen in der Tasmota Konsole,>D Timer=0 Wert=0 >BS +>subscribe EA, cmnd/Sensor/MHZ19B >S Timer+=1 if Timer>2 then =>websend [192.168.2.xxx] /cm?cmnd=status 10 print ----- Websend Status 10 ----- endif if Timer>2 then +>publish Sensor/MHZ19B %Wert% print ----- publish %Wert% ----- Timer=0 endif mit >E Wert=WebQuery#StatusSNS#MHZ19B#CarbonDioxide >W MHZ19B_CarbonDioxideist{m} %0Wert% #
Danke Dir! Praktisch kann ich das leider aktuell nicht umsetzen, da der ESP32 ein tasmota drauf hat nur mit Konsole und Berry Scripting Konsole.
Das mit dem Firmware selbst basteln muss ich mir irgendwann erst mal reinziehen. Das ist für mich noch ein dickes Brett. -
ok
nur mal so, Wemos unter 5 Euro -
@bertderkleine Hast Du Dir schon mal den tasmota device manager angeschaut und versucht rules zu basteln?
Ich habs zwar noch nie gemacht - aber zumindest hast Du da auch eine Oberfläche:
Musst halt mal stöbern zumindest hat der einen Rules Editor: https://github.com/jziolkowski/tdm/wiki/Screenshots#rules-editor
-
So, ich habe jetzt mal
rule1 ON MHZ19B#CarbonDioxide DO publish tele/tasmota_CO2/SENSOR/ %value% ENDON rule1 1
benutzt.
Das geht grundsätzlich in die richtige Richtung. Es sendet jetzt alle paar Sekunden ein Update raus.
Defekte sind noch
a) das Update wird eben alle paar Sekunden gesendet, auch wenn sich der CO2 Wert selbst nicht verändert hat. Noch verstehe ich nicht, was es triggert. Vielleicht findet eine Messung öfters statt, aber ergibt keinen neuen Zahlenwert und wird das triggert dann trotzdem.
b) der CO2-Wert wird über das eigentliche JSON geklatscht, welches ja mehr als nur die eine Zahl beinhaltete. Zwischenzeitlich erscheint das "richtige" JSON immer wieder aufgrund des normalen zyklischen Sendens (habe ich auf 60 Sek gestellt). Hier ist also die Frage, wie ich innerhlab des JSON Pakets nur das eine Feld überschreibe. -
@bertderkleine Normale Status kannst du unter stat abfragen - tele gibt Dir immer periodisch eine Ausgabe - das ist überflüssig. Der tele Ast wird immer von tasmota selbst getriggert. Wie gesagt mach Dir einen entsprechenden DP unter stat. Allerdings habe ich auch die Standardordnung in Tasmota geändert - weil ich prefixes lieber unter den Geräten habe. Sowas geht natürlich nicht mit dem Sonoff Adapter sondern nur mit MQTT.
-
@mickym Ich nutze auch den MQTT Adapter. Der Wert unter "stat" ist aber wertlos für mich, da er aktuell z.B. zwei Stunden alt ist.
Das mit dem tele passt also hier schon. -
Teste mal so mit cmnd:
Der Ordner in Mqtt muß da sein MHZ19B/CarbonDioxidebla bla .....................DO publish cmnd/MHZ19B/CarbonDioxide %value% ENDON
Trigger, Wert in eine Var schreiben, wenn neuer Wert ist >x oder <x der Var dann führe Rule aus.
-
Was hat das denn noch mit dem Threadtitel und der Kategorie Projektvorstellung zu tun?
-
@haselchen Hallo, ich hoffe du hast einen Tipp für mich. Ich habe mittlerweile 6x ESP8266 mit Tasmota über den Sonoff-Adapter eingebunden, in den jeweiligen Konsolen den Befehl Teleperiod 10 eingetragen. Bei einem ESP scheint das aber nicht zu funktionieren, dieser sendet sekündlich seine Werte, siehe auch Bild. Mit Teleperiod 1 habe ich zurückgesetzt, danach Teleperiod 10 neu eingegeben, dennoch werden die Werte sekündlich gesendet.
Ich freue mich auf deine Rückmeldung, vielen Dank!
-
@homoran sagte in Tasmota Rules?:
Was hat das denn noch mit dem Threadtitel und der Kategorie Projektvorstellung zu tun?
Ich hab das jetzt mal abgetrennt und verschoben!
@BertDerKleine bitte den provisorischen Threadtitel anpassen. -
Puh, da stellst Du ja ne Frage
Auf Anhieb keine Idee.
Aber man kann sich ja ranarbeiten.
Welche Tasmota Version?Edit1:
Hier sind noch nützliche Commands mit Erklärungen
https://tasmota.github.io/docs/Commands/Edit2:
Für ESP8266
https://tasmota.github.io/docs/Configuration-Procedure-for-New-Devices/