NEWS
Shelly 1PM mit Tasmota Firmware einen Wert senden
-
Hallo,
ich hab auf ein Shelly 1PM die Tasmota Firmware geflasht. Funktioniert auch alles so weit gut.
Was ich mir gern per Script auf den Shelly noch berechnen lassen würde, wären die Kosten in € HEUTE, GESTERN, GESAMT.
Dazu wird mir in Node Red ein Preis errechnet (einfach gesagt, das Verhältnis produzierte KWh der Pv Anlage zu bezogen kWh vom Versorger) diesen würde ich gern an den Shelly senden um mit diesen Wert ( € pro kWh) dort die Kosten berechnen zu können.
Zwischen zwei Tasmota Geräten geht das ja recht einfach mit der globalen Variable.
Leider finde ich keine Möglichkeit wie ich ein Wert an das Tasmota Gerät senden kann (am besten wäre ja wenn das Tasmota Gerät eine bestimmte Mqtt Nachricht als Variable übernimmt)
Wäre super wenn mir vielleicht einer ein Tipp geben kann wie oder ob das überhaupt geht.
Danke schon mal im Voraus
-
So ich hab das getestet ist eigentlich ganz easy.
Ich hab das jetzt zusammen mit dem Tasmota Device Manager getestet - dort wo Du auch Skripte bzw. Rules erstellen kannst.
Anscheinend gibt es da Variablen Var1-Var16:
Diese Variable kann man direkt über die Konsole oder MQTT setzen.
Im cmnd Ast kannst nun einfach ein Datenpunkt Var1 erstellen und entsprechend beschreiben.
In der Console siehst dass das publishen über mqtt angekommen ist:
Auf diese Variable solltest Du dann zugreifen können:
Im Prinzip also Variablem im mqtt cmnd Ast anlegen. Das Konsolenergebnis bekommt man dann auch in den stats bestätigt:
Somit kannst Du also über NodeRed über die mqtt Node direkt da reinschreiben oder über den mqtt-Adapter im iobroker.
Wie Du globale Variable definierst, weiß ich nicht und ob man das nur über Skripte macht. Jedenfalls kannst Du ja jedes Konsolenkommando über einen backlog Datenpunkt im cmnd Ast senden.
-
hey vielen lieben dank das ist genau das was ich gesucht habe.
Ich bekomme nur leider eine Fehlermedlung wenn ich das in der Konsole eingebe.
14:55:56.063 CMD: Var1:123456 14:55:56.070 MQT: stat/Garagenzähler/RESULT = {"Command":"Unknown"}
Ich geh davon aus das an der Tasmota Firmware sicher noch etwas aktiviert werden muss das der die Variablen annimmt ähnlich wie bei dem "Scripting"
Weist du evtl. was das sein könnte oder wo der Fehler liegt?
-
@milanissimo Hmm ich hatte das auch mal kurz und dann war es wieder weg.
Probiers mal mit Leerzeichen oder nur mal var um den Inhalt aller Variablen zu sehen:
Var Var1 12345
Ansonsten leg doch einfach mal die Variable Var1 im cmnd Ast im mqtt an - vielleicht initialisiert sich da irgendwas. Ich kann leider das nicht mehr nachstellen, dass das mit dem Kommando nicht mehr erkannt wird.
-
ne nix leider...
19:49:55.408 MQT: stat/Garagenzähler/RESULT = {"Command":"Unknown"} 19:49:59.688 MQT: tele/Garagenzähler/STATE = {"Time":"2022-01-25T19:49:59","Uptime":"0T04:55:31","UptimeSec":17731,"Heap":20,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"POWER":"ON","Wifi":{"AP":1,"SSId":"Netgear","BSSId":"7C:FF:4D:2D:CE:77","Channel":6,"Mode":"11n","RSSI":98,"Signal":-51,"LinkCount":1,"Downtime":"0T00:00:04"}} 19:49:59.703 MQT: tele/Garagenzähler/SENSOR = {"Time":"2022-01-25T19:49:59","Switch1":"OFF","ANALOG":{"Temperature":22.3},"ENERGY":{"TotalStartTime":"2022-01-24T10:39:56","Total":0.056,"Yesterday":0.000,"Today":0.056,"Period": 0,"Power": 4},"Kosten heute":"0.41","Verbrauchpromin":"0.00" ,"TempUnit":"C"} 19:49:59.885 CMD: var 123545 19:49:59.893 MQT: stat/Garagenzähler/RESULT = {"Command":"Unknown"} 19:50:05.344 CMD: var1 12356 19:50:05.352 MQT: stat/Garagenzähler/RESULT = {"Command":"Unknown"}
hab es auch an deren esp probiert über all der gleiche Fehler
Das ist meine user_config_override_h
#ifndef _USER_CONFIG_OVERRIDE_H_ #define _USER_CONFIG_OVERRIDE_H_ #ifndef USE_SCRIPT #define USE_SCRIPT #define USE_SCRIPT_JSON_EXPORT #endif #ifndef USE_SML_M #define USE_SML_M #endif #ifndef USE_SML_SCRIPT_CMD #define USE_SML_SCRIPT_CMD #endif #ifdef USE_RULES #undef USE_RULES #endif
-
@milanissimo Ich habe gar nichts kompiliert - hab noch eine alte Version 8.0.1 drauf. Vielleicht kann @Jan1 helfen. Ich schau auch noch mal. Hast Du einfach mal per mqtt die Variable setzen können?
Also die Syntax auf Kommandoebene ist jedenfalls ohne Doppelpunkt:
also
var1 1234
-
okay.
Also MQTT Out als Topic:
cmnd/Garagenzähler/Var1
und als Inject eine zahl 123456, richtig?
-
@milanissimo Ja - Inject kann irgendwas sein - geht ja nur mal darum einen Wert zu setzen.
Wenn Du im NR das losschiesst - schau gleichzeitig ob in der Konsole was ankommt.
Wie Deine mqtt-Struktur ausschaut - weiß ich nicht, aber Du wirst ja schon über den CMND Ast andere Werte geschaltet haben. Ich hab den Standard etwas umgestellt - damit bei mir das Gerät als erstes kommt.
-
-
@milanissimo Ist bei Dir eine Rule enabled?
Aber zumindest kommt was an. - Die mqtt Kommunikation funktioniert schon mal.
-
Nein, damit habe ich noch nie gearbeitet
-
@milanissimo Hast Du den Tasmota Device Manager installiert - oder kannst das mal machen. Damit habe ich das halt mit den Variablen irgendwie enabled. Ausserdem hilft der Dir Timer oder andere Parameter zu stellen und er erstellt Dir alle Datenpunkte im cmnd Ast per mqtt.
-
ne das muss ich mal probieren. Gibt es den für windows?
-
@milanissimo sagte in Shelly 1PM mit Tasmota Firmware einen Wert senden:
ne das muss ich mal probieren. Gibt es den für windows?
Ja ich hab den nur unter Windows laufen:
https://github.com/jziolkowski/tdm/releases/tag/v0.2.11
Ich habe die erste exe installiert:
-
okay danke. Ich werde mal mein Glück versuchen und berichten. Danke erstmal :))))
-
Also ich hab erstmal den Fehler gefunden. Da ich das Script in Tasmota nutze kann ich nicht die Rules nutzen.
"Select either USE_RULES or USE_SCRIPT. They can't both be used at the same time" #error "Select either USE_RULES or USE_SCRIPT. They can't both be used at the same time"
Und soweit ich mir das angeschaut habe kann man mit den rules keine Werte rechnen lassen oder hab ich da was übersehen?
-
@milanissimo said in Shelly 1PM mit Tasmota Firmware einen Wert senden:
Also ich hab erstmal den Fehler gefunden. Da ich das Script in Tasmota nutze kann ich nicht die Rules nutzen.
"Select either USE_RULES or USE_SCRIPT. They can't both be used at the same time" #error "Select either USE_RULES or USE_SCRIPT. They can't both be used at the same time"
Und soweit ich mir das angeschaut habe kann man mit den rules keine Werte rechnen lassen oder hab ich da was übersehen?
Was ich gefunden habe ist folgendes:
>D Preis=0 >B =>Subscribe Preis, solaranzeige/anzeige/1/preis >J ,"Verbrauch Tag":"%PreisGarage%"
Nachricht auf den MQTT Server:
Topic: solaranzeige/anzeige/1/preis
Wert: 24Leider funktioniert das auch nicht, vielleicht kann mir ja mal noch einer helfen.
10:44:56.687 Script: performs "Subscribe Preis, solaranzeige/anzeige/1/preis" 10:44:56.694 MQT: stat/Garagenzähler/RESULT = {"Command":"Unknown"}