Ich habe einen dummy pb_ventilation definiert, der 3 Werte annehmen kann: on, off und auto
Dann gibt es ein notify mit folgender DEF:
pb_Raumsensor {
if (("pb_ventilation" eq "auto") && (ReadingsVal("pb_Raumsensor","humidity",0) > 65))
{fhem("set pb_ventiswitch1 on"); fhem("set pb_ventiswitch2 on")}
elsif (("pb_ventilation" eq "auto") && (ReadingsVal("pb_Raumsensor","humidity",0) < 60))
{fhem("set pb_ventiswitch1 off"); fhem("set pb_ventiswitch2 off")}
}
Die Abfrage ob der dummy pb_ventilation den Wert auto hat ist aber nie erfüllt. Was habe ich denn da wieder falsch verstanden?
Probier mal aus, wenn Du den Dummy-Wert mit Value ausliest...
pb_Raumsensor {
if (Value("pb_ventilation") eq "auto" && ReadingsVal("pb_Raumsensor","humidity",0) > 65)
{fhem("set pb_ventiswitch1 on"); fhem("set pb_ventiswitch2 on")}
elsif (Value("pb_ventilation") eq "auto" && ReadingsVal("pb_Raumsensor","humidity",0) < 60)
{fhem("set pb_ventiswitch1 off"); fhem("set pb_ventiswitch2 off")}
}
Warum gehst Du anschließend über perl-fhem und nicht Direkt?
Ist hier zwar eine Lösung für einen Taster, aber Drucker ist auch in Dummy
Drucker_Taster.* IF ([Drucker] eq "on") (set Drucker off) ELSE (set Drucker on)
ZitatDie Abfrage ob der dummy pb_ventilation den Wert auto hat ist aber nie erfüllt.
Als kleiner Tipp:
"pb_ventilation" eq "auto"
Das wird NIE erfüllt sein da pb_ventilation nicht gleich auto ist.
pb_ventilation ist nunmal einfach nur gleich pb_ventilation und sonst nichts (Stringvergleich).
ZitatWas habe ich denn da wieder falsch verstanden?
Vermutlich das Einsteiger.pdf
Aber Hollo und Wernieman haben dir ja bereits geholfen und mein Tipp soll dir ja nur für deine zukünftigen "Probleme" als "Nachdenkhilfe" dienen.
Danke an alle 3!
Das mit dem Value steht im Einsteiger-pdf auf Seite 39 und das habe ich gelesen und ausprobiert und es hat (scheinbar!) auch nicht funktioniert - deshalb habe ich das wieder verworfen. In Wirklichkeit habe ich einen anderen Fehler gemacht.
Eine Frage hätte ich aber noch:
[<name>] ist das gleiche wie Value("<name")?
Zitat von: ujaudio am 04 Mai 2015, 21:24:25
Eine Frage hätte ich aber noch:
[<name>] ist das gleiche wie Value("<name")?
Nein.
[<name>] funktioniert nur bei IF und DOIF (da FHEM-Module von Damian --> genaueres dazu siehe commandref - auch auf deutsch).
Value("<name") funktioniert nur bei if (da if = Perl siehe Perlhandbuch, wobei Value("name") nur in FHEM funktioniert da von Rudi implementiert).
Für den korrekten Syntax ist der User verantwortlich.
Innerhalb eines IF, DOIF kann auch Perlcode verwendet werden.
Innerhalb eines notify, at kann KEIN IF oder DOIF verwendet werden.
Letzteres ist aber nur eine Vermutung da ich IF und DOIF nicht verwende.Fragen zu IF und DOIF sollten unter Automatisierung in den jeweiligen Beiträgen dazu gesucht werden resp. dort gestellt werden.
FHEM ist case sensitiv und unterscheidet peinlichst genau zwischen if und IF.
Selbiges sollte auch der User machen.
Zitat von: Puschel74 am 05 Mai 2015, 05:28:08
Innerhalb eines notify, at kann KEIN IF oder DOIF verwendet werden.
Letzteres ist aber nur eine Vermutung da ich IF und DOIF nicht verwende.
Halb falsch vermutet ;)
Innerhalb eines notify, at und sogar DOIF kann IF verwendet werden, ist ja ein reiner FHEM-Befehl.
Viele Grüße,
Andreas