DOIF mit Überwachung auf Erfolg

Begonnen von Manley, 14 Februar 2019, 19:32:19

Vorheriges Thema - Nächstes Thema

Manley

Hi.

Ich habe einen Sonoff Basic der ziemlich weit weg sitzt. Nun kommt es leider ab und an vor, daß er nicht zuverlässig schaltet.
Damit wird nur eine kleine Lampe im Vorflur eingeschaltet. Meine Frau möchte das da eine Lampe abends leuchtet.
Jetzt suche ich eine Möglichkeit, auch für andere Anwendungen, um zuverlässig zu schalten.

Hatte gedacht das man mit repeatcmd das DOIF so lange den Befehl wiederholen lässt bis der Sonoff tatsächlich geschaltet hat.

Ist es möglich bei repeatsame keine Anzahl sondern ein Event einzutragen?

Ansonsten hätte ich mir gedacht ob das DOIF nicht einen Watchdog definieren kann der das ganze übernimmt und wenn der Sonoff dann geschaltet hat den Watchdog wieder löscht.

Oder ihr habt einen ganz anderen Lösungsansatz.

Über Hilfe würde ich mich freuen.

Der Vollständigkeit halber:
DEF  ([[LichtWetter:ss_weather]]) (set Sonoff_3er ON) DOELSEIF ([21:00]) (set Sonoff_3er OFF)

MfG Manley
Wir essen jetzt Opa!
Satzzeichen können Leben retten.

Ellert

Zwei Zweige, der Erste triggert auf Schalter ein mit repeatcmd, der Zweite triggert auf die Rückmeldung von Sonoff und schaltet damit die Wiederholung ab.

Manley

Zweige?

Du meinst ein DOIF
DEF  ([[LichtWetter:ss_weather]]) (set Sonoff_3er ON) DOELSEIF ([Sonoff_3er] eq "on")

Und ein zweites
DEF ([21:00]) (set Sonoff_3er OFF) DOELSEIF ([Sonoff_3er] eq "off")

In etwa so?
Wir essen jetzt Opa!
Satzzeichen können Leben retten.

amenomade

Ne, er meinte, glaube ich, ein DOIF mit 2 Zweigen. Wenn Ausschalten auch wiederholt werden muss, dann 3:

DOIF (Schalter)(on) DOELSEIF (Zeit)(off) DOELSEIF (Rückmeldung vom Sonoff)()
repeatcmd 1:1:0

Etwas in der Art
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ellert

#4
ZitatNe, er meinte, glaube ich, ein DOIF mit 2 Zweigen.
Ja, meinte er. Mir gefällt der knappe DOIF-Pseudocode.

Manley

So.

Habe das jetzt mal so realisiert.
([Fensterbeleuchtung:"^ON$"]) (set Sonoff_3er ON) DOELSEIF ([Fensterbeleuchtung] eq "OFF") (set Sonoff_3er OFF) DOELSEIF ([Sonoff_3er:POWER] eq "ON") DOELSEIF ([Sonoff_3er:POWER] eq "OFF")

Das ganze hat jetzt nur einen kleinen Haken. Ich wohne auf dem tiefsten Dorf. Und da kommt es vor, dass wir doch ab und zu mal Stromausfall haben.
Deswegen hängen auch Rasp, Router etc. an einer kleinen USV.
Sollten die Sonoffs ausfallen und sich wieder zurückmelden wenn die Spannung wieder da ist, dann wechselt das DOIF in cmd_3 bzw. cmd_4 und er schaltet doch nicht sicher.
Aber es ist auf jeden Fall schon mal eine Verbesserung.
Dafür danke.

Mir ist klar, dass das alles bei so einer kleinen Lampe nicht so wild ist, aber ich möchte evtl auch brisantere Sachen damit Schalten. Und teste das halt alles an der kleinen Lampe.

Wäre es jetzt noch möglich einen Watchdog laufen zu lassen, der pauschal auf alle Wiederholungen von DOIFs wacht und bei einer Anzahl X von Wiederholungen einen Befehl ausführt? (Telegramm etc.)

MfG
Manley
Wir essen jetzt Opa!
Satzzeichen können Leben retten.

amenomade


DOELSEIF ([Fensterbeleuchtung] eq "OFF")
Somit ist es Zustandgesteuert


([Fensterbeleuchtung:"^ON$"])
Somit ist es Ereignisgesteuert. Wäre es auch Zustandgesteuert, würde das DOIF beim Neustart zuerst gucken, ob Fensterbeleuchtung auf ON steht, und in cmd_1 schalten.

Vermutlich besser in deinem Fall. Aber wenn Strom ausgeht... weiss man nicht sicher, was er dann für ein Zustand wiederfindet.


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus