FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Chris8888 am 30 Juli 2018, 12:18:30

Titel: [gelöst]Hilfe bei Notify mit If-Abfrage
Beitrag von: Chris8888 am 30 Juli 2018, 12:18:30
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
Titel: Antw:Hilfe bei Notify mit If-Abfrage
Beitrag von: Beta-User am 30 Juli 2018, 12:49:50
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...
Titel: Antw:Hilfe bei Notify mit If-Abfrage
Beitrag von: Otto123 am 30 Juli 2018, 13:03:13
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
Titel: Antw:Hilfe bei Notify mit If-Abfrage
Beitrag von: Chris8888 am 30 Juli 2018, 18:27:46
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

Titel: Antw:Hilfe bei Notify mit If-Abfrage
Beitrag von: CoolTux am 30 Juli 2018, 19:42:56
https://de.m.wikibooks.org/wiki/Perl-Programmierung:_Kontrollstrukturen

Lesen und lernen.
Titel: Antw:Hilfe bei Notify mit If-Abfrage
Beitrag von: Otto123 am 30 Juli 2018, 22:04:46
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
Titel: Antw:Hilfe bei Notify mit If-Abfrage
Beitrag von: Chris8888 am 30 Juli 2018, 23:01:29
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