[gelöst] notify und Perl mit KNX

Begonnen von Alveole, 16 Oktober 2015, 21:16:09

Vorheriges Thema - Nächstes Thema

Alveole

Hallo,
ich hab eine Problem.
Ich lese einen Wert (Heizungsdruck per KNX) aus.
Zitat
define Heiz_druck EIB 0003
attr Heiz_druck IODev EIB
attr Heiz_druck alias Druck Heizung
attr Heiz_druck dummy 1
attr Heiz_druck group Heizung
attr Heiz_druck model pressuresensor
attr Heiz_druck room Heizung
attr Heiz_druck sortby 3
Nun möchte ich gern benachrichtigt werden, wenn dieser unter 1 fällt.
Meine Idee sieht so aus.

define alarm_heiz_druck notify Heiz_druck {if (ReadingsVal("Heiz_druck",0,0)<"1") {fhem "set pushmsg msg 'Heizung' 'Druck zu niedrig'"}}


ein Problem gibts da:
sobald der Druck sich ändert, bekomme ich eine Nachricht. Egal ob über oder unter 1. Auch egal, ob er den Granzwert überschreitet. Er irgnoriert also vollkommen den Vergleich.

Wo liegt der Fehler (im PERL - Da bin ich noch totaler Laie!)?

Danke!

rapster

#1
Wenn du eine Zahl vergleichen möchtest solltest du auch eine Zahl angeben und nicht einen String.
Also aus "1" eine 1 machen ;)

Und bei ReadingsVal("Heiz_druck",0,0) fehlt auch noch das Reading welches du lesen möchtest, außer du hast ein Reading welches "0" lautet?
Sonst wird immer 0 zurückgeliefert und das ist auch immer <1

Otto123

Hallo,

du nimmst den Zahlenoperator aber machst dann aus der Zahl eine Zeichenkette:
"2" -> Zeichen 2
2 --> Zahl 2
< 2
lt "2"

lies Dir in der commandref den DOIF Abschnitt durch, da steht es ganz gut erklärt.

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

Alveole

@rapster
Danke für Deinen Tip!!!
die ""-Zeichen waren versehentlich geblieben.
Das Reading, wie das bei knx lautet, hatte ich noch nicht komplett durchschaut. Jetzt aber!
so funktionierts:
define alarm_heiz_druck notify Heiz_druck {if (ReadingsVal("Heiz_druck","state","") < 1) {fhem "set pushmsg msg 'Heizung' 'Druck zu niedrig'"}}

@Otto123
die ""-Zeichen waren versehentlich geblieben aus einem anderen notify. dummes Copy-Past
natürlich hatte ich schon die sagenumwogene commandref gelesen, aber für KNX sagt die manchmal nicht wirklich was aus!

Danke beiden für die schnelle Antwort!