NEWS
Tasmota + sonoff: MQTT Offline => Relais aus [gelöst]
-
Ich habe ein sonoff 4CHPRO3 mit Tasmota geflashed, soweit alles OK (4CHPRO3 =4 Relais in einem Gehäuse).
Ist es irgendwie möglich, wenn der sonoff OFFLINE wird bzw. keine MQTT Verbindung zum ioBroker besteht, dass der sonoff alle Relais ausschaltet?
So eine Art "sichere Rückfallposition"? -
ich denke da an 2 Möglichkeiten
- du schaust ob das Tasmoata Relais online ist,
geht per HTTP, wenn er antwortet alles ok, wenn nicht dann, ...
Edit:
ne geht doch nicht.
Wenn er offline ist, dann kannst du dem Relais ja auch keinen Befehl senden.Alternativ kannst du schauen wann zuletzt Daten empfangen wurden.
Ist das länger 2h her, dann Relais aus.Bei mir war es aber nie so, das MQTT nicht mehr sendet, wenn der Tasmota on ist.
Wenn kein MQTT mehr an kommt, dann ist das Tasmota Relais offline, dann kann es auch keinen Aus Befehl empfangen.Alternativ setzt du eine Tasmaota Steckdose davor, die dann die Stromzufuhr des Relais trennt.
- du schaust ob das Tasmoata Relais online ist,
-
-
Hi @ralla66
du meinst, wenn das Tasmota Relais keinen Kontakt zum iobroker hat, das es sich dann "aus" schaltet ?
Ok anderer Ansatz
Hat den Vorteil, das dafür kein anderes Gerät benötigt wird.
Also kein Blocky Script, was ja nix bringt, wenn keine Kommunikation besteht -
@berndsolar13
Du hast schon richtig geschrieben:Wenn kein MQTT mehr an kommt, dann ist das Tasmota Relais offline, dann kann es auch keinen Aus Befehl empfangen.
Ich steuere mit dem Sonoff einen großen Stromfresser.
Sollte jetzt der ioBroker hängen, oder die FritzBox abrauchen, oder oder, dann soll der sonoff wenn er keine Verbindung zur Außenwelt hat, die Relais selbstständig abschalten.@Ralla66
Hast Du ein Beispiel wie ich das realisiere?
Tippt man das in der Konsole ein?
mqttd = true => Relais 1 off
habe gerate gelesen: This feature is not included in precompiled binaries
Kann man da etwas mit RULES machen? -
ja da brauchst du eine "angepasste" Tasmota Firma, mit dem Punkt scripting.
Aber eventuell geht das auch über Rules in der Kommando Zeile, aber davon hab ich keinen Plan
-
aber es gibt ja google
Rule1 ON Mqtt#Disconnected DO Backlog ruletimer1 600 ENDON ON Mqtt#Connected DO ruletimer1 0 ENDON ON rules#timer=1 DO Power1 0 ENDON rule1 1
-
@berndsolar13
klingt gut mit dem Link, ich denke ich habe es einigermaßen verstanden, wie es funktioniert.
Ich möchte 4 Relais ausschalten, gibt es da anstatt "Power1 0" vielleicht einen "Powerall 0" oder etwas ähnliches?
Oder muss ich ein Rule1, Rule2, Rule 3, Rule 4 erzeugen?
Oder kann man beim letzten "Power1 0" mehrer Ereignisse ineinander schachteln?
etwa so: ....ON rules#timer=1 DO Power1 0 ,Power2 0 ,Power3 0 ,Power4 0 ENDON -
@berndsolar13
Habe noch etwas weiter gelesen.
Müsste es vielleicht so heißen bei 4 Relais?Rule1 ON Mqtt#Disconnected DO Backlog ruletimer1 600 ENDON ON Mqtt#Connected DO ruletimer1 0 ENDON ON rules#timer=1 DO Backlog Power1 0; Power2 0; Power3 0; Power4 0 ENDON rule1 1
Wer kennt sich da aus?
-
das sollte mit Backlog gehen,
To accomplish a rule with one trigger but several commands, you need to use Backlog:
ON <trigger> DO Backlog <command1>; <command2>; <command3> ENDON -
@ralla66
@berndsolar13
ich habe es ausprobiert und folgendes eingegeben:Rule2 ON Mqtt#Disconnected DO ruletimer1 60 ENDON ON Mqtt#Connected DO ruletimer1 0 ENDON ON rules#timer=1 DO backlog Power1 0; Power2 0; Power3 0; Power4 0; ENDON rule2 1
ich habe hier 60 Sekunden eingestellt und Relais 1-4 ausgeschaltet
Nur eine Kleinigkeit muss man bedenken. Wenn der MQTT Server nicht erreichbar ist, versucht der sonoff alle 120 Sekunden den MQTT Server zu erreichen. Der Timer von 60 Sek. fängt erst an zu laufen, wenn die Verbindung zum MQTT Server fehlgeschlagen ist. Es kann also 120+60 Sekunden dauern, bis die Relais aus gehen.
Das erste Backlog kann man weglassen, wie auch der Kommentar im Originalbeitrag war.
Danke für Eure Unterstützung
VG -
@martinsu sagte in Tasmota + sonoff: MQTT Offline => Relais aus:
versucht der sonoff alle 120 Sekunden
woher kommt denn das ? Telemetrieperiode ?
-
@ralla66
das scheint so in Tasmota drin zu sein.
Allerdings ist das nicht direkt 120 Sekunden. Wenn der MQTT Server OFFLINE wird, versucht der sonoff erst nach 10 Sek eine Verbindung aufzubauen. Wenn die nicht klappt, nach 20 Sek. usw. immer 10 Sek mehr bis es 120 Sek. -
ok, klar,
müsste hier ON rules#timer=1 nicht der Timer benannt sein.
Also der erste Timer Nummer 1,
ON rules#timer1=1Rule2 ON Mqtt#Disconnected DO ruletimer1 60 ENDON ON Mqtt#Connected DO ruletimer1 0 ENDON ON rules#timer=1 DO backlog Power1 0; Power2 0; Power3 0; Power4 0; ENDON
-
@ralla66
Das habe ich mich auch gefragt, aber in Deinen ersten 2 Zeilen steht "ruletimer1", in der 3. Zeile steht "rules#timer" (ein 's#' in der Mitte, dafür keine Indexzahl) .
Im Originalbeitrag von oben ([https://github.com/arendst/Tasmota/discussions/14946)](Link Adresse) ist dies genau so.
Da habe ich es einfach übernommen und es funktioniert. -
auch nicht so wichtig, teste aber ob das nach einem Neustart des ESP noch geht.
-
@ralla66
ich habe es ausprobiert: Nach einem Neustart ist die RULE weg.
Hat da jemand einen Trick, damit der sonoff die RULE bei einem Neustart behält ?..... halbe Stunde später .......
ich habs gefunden, so ist die RULE auch nach einem Neustart noch aktiv:savedata 1 rule2 ON Mqtt#Disconnected DO ruletimer1 60 ENDON ON Mqtt#Connected DO ruletimer1 0 ENDON ON rules#timer=1 DO backlog Power1 0; Power2 0; Power3 0; Power4 0; ENDON rule2 1 savedata 0
-
ja
savedata 1 . . savedata 0
Mit Savedata 1 aktivierst du das speichern, und am Ende ein savedata 0