FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dogexan am 30 Oktober 2014, 22:32:25

Titel: notify funktioniert nicht mit Value und ReadingsVal (gelöst)
Beitrag von: dogexan am 30 Oktober 2014, 22:32:25
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
Titel: Antw:notify funktioniert nicht
Beitrag von: franky08 am 30 Oktober 2014, 22:36:48
So auf die Schnelle, mach mal hinter notify WohnDoor ein .* sonst weis der notify ja kaum auf was er triggern soll

VG
Frank
Titel: Antw:notify funktioniert nicht
Beitrag von: dogexan am 30 Oktober 2014, 22:40:50
Code sieht jetzt so aus: WohnDoor.* { if(Value("WohnDoor") eq "open" && ReadingsVal("TerrasseRoll", "state", "") eq "0%") {fhem ("set TerrasseRoll on")} }

funktioniert leider nicht
Titel: Antw:notify funktioniert nicht
Beitrag von: Puschel74 am 30 Oktober 2014, 22:41:40
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 (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.
Titel: Antw:notify funktioniert nicht
Beitrag von: dogexan am 30 Oktober 2014, 22:45:52
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.
Titel: Antw:notify funktioniert nicht
Beitrag von: franky08 am 30 Oktober 2014, 22:50:02
Nee, der Log Auszug ist nicht hilfreich, dass ist nur die "Reaktion" auf einen Fehler in einem deinem fhem Code.
Titel: Antw:notify funktioniert nicht
Beitrag von: dogexan am 30 Oktober 2014, 22:55:02
Die Frage ist wohl wie ich "state" vom Aktor korrekt abfrage
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal
Beitrag von: marvin78 am 31 Oktober 2014, 07:53:09
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%"?
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal
Beitrag von: igami am 31 Oktober 2014, 09:11:07
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 %"?
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal
Beitrag von: dogexan am 31 Oktober 2014, 09:55:18
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
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal
Beitrag von: Puschel74 am 31 Oktober 2014, 09:57:08
Hallo,

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

Grüße
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal (gelöst)
Beitrag von: dogexan am 31 Oktober 2014, 10:00:25
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
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal
Beitrag von: marvin78 am 31 Oktober 2014, 10:02:53
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")}}
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal (gelöst)
Beitrag von: dogexan am 31 Oktober 2014, 11:58:08
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
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal (gelöst)
Beitrag von: Puschel74 am 31 Oktober 2014, 12:05:28
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
Titel: Antw:notify funktioniert nicht mit Value und ReadingsVal (gelöst)
Beitrag von: dogexan am 01 November 2014, 08:35:17
Alles klar :D

Dann behalte ich die Variante von marvin78 bei.

Gruß Alex