notify funktioniert nicht mit Value und ReadingsVal (gelöst)

Begonnen von dogexan, 30 Oktober 2014, 22:32:25

Vorheriges Thema - Nächstes Thema

dogexan

Hallo,

hab mal wieder ein Problem mit einem Notify bzw. eher mit Value und ReadingsVal.

Folgender Code für mein Rolladen:
define nRollo notify WohnDoor { if(Value("WohnDoor") eq "open" && ReadingsVal("TerrasseRoll", "state", "") eq "0%") {fhem ("set TerrasseRoll on")} }

Also WohnDoor ist ein Türkontakt an der Terrassentür. Gibt open,closed und tilted aus

TerrasseRoll ist der Aktor für den Rolladen.

Wenn der Türkontakt auf "open" steht und der Rolladen "TerrasseRoll" geschlossen ist (in diesem Fall 0%) dann soll der Rolladen "TerrasseRoll" auf gehen.

Mein Code funktioniert nicht. Ich weiß auch nie wann man Value oder ReadingsVal benutzt.

Gruß Alex

franky08

So auf die Schnelle, mach mal hinter notify WohnDoor ein .* sonst weis der notify ja kaum auf was er triggern soll

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

dogexan

Code sieht jetzt so aus: WohnDoor.* { if(Value("WohnDoor") eq "open" && ReadingsVal("TerrasseRoll", "state", "") eq "0%") {fhem ("set TerrasseRoll on")} }

funktioniert leider nicht

Puschel74

#3
Hallo,

Und ich würd so auf die Schnelle mal fragen welcher Türkontakt ist es?
Ein FHTTK sendet nur alle ~2-3 Minuten.

ZitatMein Code funktioniert nicht.
Warum nicht?
Fehlermeldung siehst du im Logfile - die wären auch für uns interessant.

Zur Not erstmal das hier
http://forum.fhem.de/index.php/topic,16311.0.html
durchlesen und auch verstehen.

Grüße

Edith. Funktioniert nicht heisst was genau?
Egal, bitte erstmal meinen angepinnten Beitrag durchlesen, verstehen, und die bnötigten Abgaben posten.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

dogexan

#4
Türkontakt: HM-Sec-RHS
Aktor: HM-LC-BI1-FM

Das letzte was im Logfile stand war das:

2014.10.30 22:00:19 1: PERL WARNING: Use of uninitialized value $regReq in string eq at ./FHEM/10_CUL_HM.pm line 2875.
2014.10.30 22:00:19 1: PERL WARNING: Use of uninitialized value $regName in hash element at ./FHEM/10_CUL_HM.pm line 5904.
2014.10.30 22:00:19 1: PERL WARNING: Use of uninitialized value $addr in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 5917.
2014.10.30 22:00:53 1: PERL WARNING: Use of uninitialized value $arg in pattern match (m//) at fhem.pl line 2247.
2014.10.30 22:01:38 1: PERL WARNING: Use of uninitialized value $regReq in string eq at ./FHEM/10_CUL_HM.pm line 2875.
2014.10.30 22:01:38 1: PERL WARNING: Use of uninitialized value $regName in hash element at ./FHEM/10_CUL_HM.pm line 5904.
2014.10.30 22:01:38 1: PERL WARNING: Use of uninitialized value $addr in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 5917.2014.10.30 22:00:19 1: PERL WARNING: Use of uninitialized value $regReq in string eq at ./FHEM/10_CUL_HM.pm line 2875.
2014.10.30 22:00:19 1: PERL WARNING: Use of uninitialized value $regName in hash element at ./FHEM/10_CUL_HM.pm line 5904.
2014.10.30 22:00:19 1: PERL WARNING: Use of uninitialized value $addr in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 5917.
2014.10.30 22:00:53 1: PERL WARNING: Use of uninitialized value $arg in pattern match (m//) at fhem.pl line 2247.
2014.10.30 22:01:38 1: PERL WARNING: Use of uninitialized value $regReq in string eq at ./FHEM/10_CUL_HM.pm line 2875.
2014.10.30 22:01:38 1: PERL WARNING: Use of uninitialized value $regName in hash element at ./FHEM/10_CUL_HM.pm line 5904.
2014.10.30 22:01:38 1: PERL WARNING: Use of uninitialized value $addr in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 5917.


Kommt auch nichts neues mehr hinzu. Keine Ahnung was da los ist.

Edit: Mit dem Code geht´s : WohnDoor { if(Value("WohnDoor") eq "open") {fhem ("set TerrasseRoll on")} }
Allerdings wird dann auch immer ein Befehl gesendet auch wenn der Rolladen oben ist.

franky08

Nee, der Log Auszug ist nicht hilfreich, dass ist nur die "Reaktion" auf einen Fehler in einem deinem fhem Code.
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

dogexan

Die Frage ist wohl wie ich "state" vom Aktor korrekt abfrage

marvin78

Dein Rolladenaktor hat doch im state ein on oder off, wenn er ganz auf oder ganz zu ist oder nicht? Wie kommst du auf "0%"?

igami

was sagt dir denn

Value("TerrasseRoll")

wenn du es einfach mal in geschweiften Klammern in der fhem Kommandozeile ausführst? Vielleicht ist es ja "0 %"?
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

dogexan

Ich hab´s jetzt: define nRollo notify WohnDoor { if(Value("WohnDoor") eq "open" && ReadingsVal("TerrasseRoll", "state", "") eq "off") {fhem ("set TerrasseRoll on")} }

Ich habe dämlicher Weise den STATE bei Internals verwendend und mit ReadingsVal abgefragt. ::)

An marvin78:

genau da dran lag´s. 0% war der STATE bei Internals.

Gruß Alex

Puschel74

Hallo,

das
ReadingsVal("TerrasseRoll", "state", "") eq "off")
müsste aber auch so
Value("TerrasseRoll") eq "off")
klappen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

dogexan

Mit Value hatte ich auch ausprobiert. Allerdings auch mit den 0%. :P

Daher kam wohl auch kein Fehler im Log.

Danke an alle.

Gruß Alex

marvin78

In dem Fall halte ich aber auch die Abfrage des Readings für sinnvoller. Das notify für das DEF würde ich jedoch eher so bauen:

WohnDoor:.open {if (ReadingsVal("TerrasseRoll", "state", "on") eq "off") {fhem ("set TerrasseRoll on")}}

dogexan

Hab deine Variante jetzt auch mal ausprobiert. Ich war so frei und hab den Doppelpunkt hinter WohnDoor gelöscht.

WohnDoor.open {if (ReadingsVal("TerrasseRoll", "state", "on") eq "off") {fhem ("set TerrasseRoll on")}}

Funktioniert auch.

Hat die Variante einen Vorteil oder Unterschied?

Gruß Alex

Puschel74

Hallo,

naja, die Prüfungen werden reduziert da das notify nur ausgelöst wird wenn der Sensor ein open sendet und nicht auch bei einer battery-Meldung oder was der Sensor noch so von sich gibt.
EventMonitor öffnen und du siehst was der Sensor an FHEM mitteilt.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.