Hallo zusammen,
ich möchte gerne einen Dummy mit dem jeweiligen größeren Wert von 2 Helligkeitssensoren füllen.
Dummy= Helligkeit_Overall, Reading=brightness
1.Sensor=Wetterstation, Reading=luminosity2
2.Sensor=HM_Lichtsensor, Reading=1.CURRENT_ILLUMINATION
Def des Notify:
(Wetterstation:luminosity2.*) {if ($EVTPART1 > HM_Lichtsensor:1.CURRENT_ILLUMINATION) fhem("setreading Helligkeit_Overall brightness $EVTPART1") else (fhem("setreading Helligkeit_Overall brightness HM_Lichtsensor:1.CURRENT_ILLUMINATION"))}
Leider meckert er immer den Syntax an. "syntax error at (eval 328516) line 1, near "HM_Lichtsensor:""
Ich stehe auf dem Schlauch, kann mir jemand aus der Patsche helfen?
Danke!
VG
Christian
Du solltest auf die Readings ggf. mit ReadingsVal oder ReadingsNum zugreifen ;) .
ReadingsNum("HM_Lichtsensor","1.CURRENT_ILLUMINATION","0")
Kann man auch in der Eingabezeile mit geschweiften Klammern durmrum testen, ob da kommt, was soll...
Und setreading kann zwar set magic (https://commandref.fhem.de/commandref_DE.html#set)aber da müssen dann Klammern drum
setreading Helligkeit_Overall brightness [HM_Lichtsensor:1.CURRENT_ILLUMINATION]
Für den User sicher zunächst sehr verwirrend: im Perl geht nur ReadingsVal & co im FHEM geht "set magic" mit []
Gruß Otto
Hallo,
danke für eure Rückmeldung!
So sieht es jetzt aus:
(Wetterstation:luminosity2.*) {if ($EVTPART1 > ReadingsNum("HM_Lichtsensor","1.CURRENT_ILLUMINATION","0")) fhem("setreading Helligkeit_Overall brightness $EVTPART1") else fhem("setreading Helligkeit_Overall brightness [HM_Lichtsensor:1.CURRENT_ILLUMINATION]")}
Leider wird es immer angemeckert:
syntax error at (eval 424773) line 1, near ") fhem"
Pearl etc macht mich wahnsinnig! :'( :'( :'(
Help please!
Viele Grüße
Christian
https://de.m.wikibooks.org/wiki/Perl-Programmierung:_Kontrollstrukturen
Lesen und lernen.
Hi,
jeder einfache Editor kann "Klammern zählen" auch der DEF Editor von FHEM.
Jede Öffnende braucht auch eine Schließende und der Per Syntax für if ist:
if (Bedingung) {Befehl}
Deswegen fehlt ihm eine Klammer vor fhem :)
Gruß Otto
gelesen und gelernt...
(Wetterstation:luminosity2.*) {if ($EVTPART1 > ReadingsNum("HM_Lichtsensor","1.CURRENT_ILLUMINATION","0")) {fhem("setreading Helligkeit_Overall brightness $EVTPART1")} else {fhem("setreading Helligkeit_Overall brightness [HM_Lichtsensor:1.CURRENT_ILLUMINATION]")}}
für einen Nicht-Programmierer ist das schon harter Tobak.
Danke für euren großen Schubs!
VG
Christian