Hallo zusammen,
ich versuche Gerade mehrere Bedingungen in notify zu verknüpfen. Vielleicht kann mir ja jemand helfen:
Ich würde gerne, dass wenn Bed1 & Bed2 erfüllt sind den befehl ausführen. Geht dies nur mit einer if Bedingung oder gibt es dafür einen Syntax wie bei oder den |
Danke im voraus
Klar kannst du das in einer If durchführen....
If (Bed1 && Bed2) {
}
ist eine UND Verknüpfung
If (Bed1 || Bed2) {
}
ist eine ODER Verknüpfung
Siehe auch:
http://www.fhemwiki.de/wiki/If-condition
genau zB.:
define FS_Festnetz_An_WE8 at *08:01 { if (($we && Value("HomeStatus") eq "1") ) {fhem ("set REV01 on") } }
=> REV01 schaltet nur on wenn Wochenende und wenn HomeStatus 1 ist
Also sollte das so gehen?
#Abwesenheit
define HESOffSetTempLow notify Dummy1:off|Dummy2:off {\
if( Value("Dummy1") eq "off" && Value("Dummy2") eq "off") {\
fhem "set Hinten_Clima desired-temp 16.5;;set Konfi_Links_Clima desired-temp 17.0;;"} {\
fhem "set L_Vorne_Links off;;"}\
}}
Edit: Klappt leider nicht. Es geht ja darum, dass der notify beide dummies checkt. und BEIDE auf off sind.
Warum hast du einmal value geschrieben und einmal nicht?
War ein Fehler. Habs aber gerade ergänzt, ändert sich leider nichts :-(
Und die Klammern?
Habs gerade mal ergänzt wie mein aktueller Stand ist. So denke ich sollte es gehen, tut es aber leider nicht.
Statt notify könntest du auch DOIF verwenden.
... z.B.
define HESOffSetTempLow DOIF ([Dummy1] eq "off" and [Dummy2] eq "off") \
(set Hinten_Clima desired-temp 16.5) \
(set Konfi_Links_Clima desired-temp 17.0) \
(set L_Vorne_Links off) \
DOELSE()
Damit erschlägst Du gleichzeitig auch die Abfrage, ob beide Dummys off sind.
Wenn man die einzelnen set-Befehle nicht bewusst mit wait verzögern will, würde ich die Set-Befehle hintereinander angeben, damit werden nicht unnötig Zwischenzustände des Moduls erzeugt. Wenn man das Attribut do always nicht angibt, wird automatisch der DOELSE-Fall erzeugt, die Definition sieht dann einfach so aus:
define HESOffSetTempLow DOIF ([Dummy1] eq "off" and [Dummy2] eq "off")
(set Hinten_Clima desired-temp 16.5, set Konfi_Links_Clima desired-temp 17.0, set L_Vorne_Links off)
Gruß
Damian
Zitat von: Damian am 19 November 2015, 08:38:40
Wenn man die einzelnen set-Befehle nicht bewusst mit wait verzögern will, würde ich die Set-Befehle hintereinander angeben, damit werden nicht unnötig Zwischenzustände des Moduls erzeugt. Wenn man das Attribut do always nicht angibt, wird automatisch der DOELSE-Fall erzeugt, die Definition sieht dann einfach so aus:
define HESOffSetTempLow DOIF ([Dummy1] eq "off" and [Dummy2] eq "off")
(set Hinten_Clima desired-temp 16.5, set Konfi_Links_Clima desired-temp 17.0, set L_Vorne_Links off)
Gruß
Damian
Sehr cool! Es funktioniert. Besten Dank!
Kann ich diese Vereinfachung, dass alle fhem Befehle direkt ausgeführt werden auch bei notify verwenden? Und gibt es für DOIF auch den AND Parameter? Habe im commandref leider nichts dazu gefunden.