***gelöst***Doif, stehe auf dem Schlauch

Begonnen von coolheizer, 17 November 2022, 07:54:23

Vorheriges Thema - Nächstes Thema

coolheizer

Mit dem Doif möchte ich den Amazon Show auf die jeweilige Ip Kamrea schalten, zusätzlich bei Dunkelheit die Hofbeleuchtung schalten:

([KameraAlarm:Switch8] eq "OFF") (set Echo_Show textcommand zeige Haustür;set Wohnzimmer_Show textcommand zeige Haustür;set Schlafzimmer_Show textcommand zeige Haustür) DOELSEIF ([KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] < 45) (set Haustuerbeleuchtung on-for-timer 300)

Soweit funktioniert das Doif, das Problem ist nur das Zeitweise beide Switch (7+8) auf OFF stehen können, dann wird regelmäßig die erste Regel verschluckt und nur das Licht geschaltet.

Ein weiteres DOELSEIF anhängen mit der Regel Switch7+8 OFF ? :

([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "OFF") (set Echo_Show textcommand zeige Haustür;set Wohnzimmer_Show textcommand zeige Haustür;set Schlafzimmer_Show textcommand zeige Haustür)

Aber wie bei der 3 Regel noch mit einbauen das der Show jederzeit, das Licht aber nur bei dunkelheit geschaltet wird?

FHEM 5.8 auf Raspberry Pi 3, HM-MOD-UART und  MapleCUN.
HM-MOD-Re-8 für Velux Rolladensteuerung.
HM-CC-RT-DN.
HM-SEC-SCo.
HM-LC-Bl1PBU-FM.

Otto123

Hi,

im DOIF sind die Trenner leider keine halben Punkte sondern ganze Kommas ;)
(set Echo_Show textcommand zeige Haustür;set Wohnzimmer_Show textcommand zeige Haustür;set Schlafzimmer_Show textcommand zeige Haustür)
Das kann also gar nicht funktionieren!
https://fhem.de/commandref_modular_DE.html#DOIF_Angaben_im_Ausfuehrungsteil

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

Zitat von: Otto123 am 17 November 2022, 09:17:25
Hi,

im DOIF sind die Trenner leider keine halben Punkte sondern ganze Kommas ;)
(set Echo_Show textcommand zeige Haustür;set Wohnzimmer_Show textcommand zeige Haustür;set Schlafzimmer_Show textcommand zeige Haustür)
Das kann also gar nicht funktionieren!
https://fhem.de/commandref_modular_DE.html#DOIF_Angaben_im_Ausfuehrungsteil

Gruß Otto

Ist hier nicht so schlimm. DOIF erkennt hier zwar keine Komma-Trenner, daher wird der ganze Ausdruck an das fhem-Kommando geschickt und das kann wieder mit Semikolon arbeiten, daher wird es hier funktionieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

coolheizer

Habe die Semikolon gegen Komma getauscht, funktionieren tat es dennoch wie Damian richig angemerkt hat.

Habe noch etwas getüftelt:

([KameraAlarm:Switch8] eq "OFF" or ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "OFF"))
(set Echo_Show textcommand zeige Haustür,
set Wohnzimmer_Show textcommand zeige Haustür,
set Schlafzimmer_Show textcommand zeige Haustür)
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] < 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,
set Schlafzimmer_Show textcommand zeige Haustür,
set Haustuerbeleuchtung on-for-timer 300)
DOELSEIF ([KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] < 45)
(set Haustuerbeleuchtung on-for-timer 300)


Sollte das jetzt so funktionieren?
Oder kann es auch hier passieren das eine Regel " verschluckt" wird?
FHEM 5.8 auf Raspberry Pi 3, HM-MOD-UART und  MapleCUN.
HM-MOD-Re-8 für Velux Rolladensteuerung.
HM-CC-RT-DN.
HM-SEC-SCo.
HM-LC-Bl1PBU-FM.

coolheizer

Nachdem ich einiges weiter gebastelt und gegrübelt habe ist nun dieses Konstruckt dabei heraus gekommen:

([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] > 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür)
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] < 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür,set Haustuerbeleuchtung on-for-timer 300)
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "ON" and [Sonnenstand:twilight_weather] < 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür,set Haustuerbeleuchtung on-for-timer 300)
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "ON" and [Sonnenstand:twilight_weather] > 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür)
DOELSEIF ([KameraAlarm:Switch8] eq "ON" and [KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] < 45)
(set Haustuerbeleuchtung on-for-timer 300)


So wie es bisher scheint, läuft es wohl ;D

Einfacher oder kürzer bekomme ICH das leider nicht hin.

Gruß
Karsten
FHEM 5.8 auf Raspberry Pi 3, HM-MOD-UART und  MapleCUN.
HM-MOD-Re-8 für Velux Rolladensteuerung.
HM-CC-RT-DN.
HM-SEC-SCo.
HM-LC-Bl1PBU-FM.

Otto123

Hallo Karsten,

ich denke da immer "Ausführungsteilorientiert"
Die Beiden sollten also zusammenzufassen gehen:

DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] < 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür,set Haustuerbeleuchtung on-for-timer 300)
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "ON" and [Sonnenstand:twilight_weather] < 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür,set Haustuerbeleuchtung on-for-timer 300)

und offenbar ist doch der hier egal? KameraAlarm:Switch7
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [Sonnenstand:twilight_weather] < 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür,set Haustuerbeleuchtung on-for-timer 300)

Oder soll der triggern egal wie er dann steht? Dann eventuell so:
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:"Switch7"] and [Sonnenstand:twilight_weather] < 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür,set Haustuerbeleuchtung on-for-timer 300)


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

coolheizer

Hallo Otto,
danke das Du dir die Zeit nimmst.

Zur Erklärung: Ich benutze IP Kameras bei denen Ich Zonen eingerichtet habe, die Ausgänge vom nvr taste ich mit einen Wemos d1 mini ab und leite es per MQTT an FHEM weiter.

Das Licht (Switch7) soll ab einer gewissen dunkelheit erst eingeschaltet werden.

Wenn die eingerichtete Linie (Switch8) überschritten wird soll der Show die Kamera anzeigen, unabhängig ob Licht an/ aus hel/ dunkel also immer.

Das Problem das ich anfangs wohl hatte war das bei dem Doif:

([KameraAlarm:Switch8] eq "OFF") (set Echo_Show textcommand zeige Haustür;set Wohnzimmer_Show textcommand zeige Haustür;set Schlafzimmer_Show textcommand zeige Haustür) DOELSEIF ([KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] < 45) (set Haustuerbeleuchtung on-for-timer 300)

auch teilweise beide Switch gleichzeitig geschaltet wurden, in dem Fall, da das Doif nur einen Schaltzustand zulässt, hat er lediglich das Licht eingeschaltet aber die Kamera nicht umgeschaltet.

Um das ganze zu umgehen habe ich nun sämmtlich möglichen Kombinationen, auch mit Tag Nacht (twilight_weather), hinterlegt.

Ist etwas verwirrend OFF bedeutet an, und ON bedeutet aus.

Komme gerade nicht darauf warum ich über die Tasmota Konsole das nicht abgeändert habe, hatte etwas damit zu tun damit über die Tasten der wemos nicht resettet werden kann, oder war es damit der Befehl gleich gesendet wird (nicht abwarten ob doppel druck, langer/ kurzer druck und erst nach 4 sec. MQTT abgesendet wird)

Gruß
Karsten
FHEM 5.8 auf Raspberry Pi 3, HM-MOD-UART und  MapleCUN.
HM-MOD-Re-8 für Velux Rolladensteuerung.
HM-CC-RT-DN.
HM-SEC-SCo.
HM-LC-Bl1PBU-FM.

Otto123

Ok, ich verstehe Deine Gedanken so: Du kannst einen DOELSIF Zweig weglassen und es so machen:
([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] > 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür)
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [Sonnenstand:twilight_weather] < 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür,set Haustuerbeleuchtung on-for-timer 300)
DOELSEIF ([KameraAlarm:Switch8] eq "OFF" and [KameraAlarm:Switch7] eq "ON" and [Sonnenstand:twilight_weather] > 45)
(set Echo_Show textcommand zeige Haustür,set Wohnzimmer_Show textcommand zeige Haustür,set Schlafzimmer_Show textcommand zeige Haustür)
DOELSEIF ([KameraAlarm:Switch8] eq "ON" and [KameraAlarm:Switch7] eq "OFF" and [Sonnenstand:twilight_weather] < 45)
(set Haustuerbeleuchtung on-for-timer 300)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

coolheizer

Danke für deine Hilfe, werde ich mal testen.

Gruß Karsten
FHEM 5.8 auf Raspberry Pi 3, HM-MOD-UART und  MapleCUN.
HM-MOD-Re-8 für Velux Rolladensteuerung.
HM-CC-RT-DN.
HM-SEC-SCo.
HM-LC-Bl1PBU-FM.