FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Cybers am 17 Februar 2016, 14:05:40

Titel: [Gelöst] Fehler im Notify
Beitrag von: Cybers am 17 Februar 2016, 14:05:40
Hallo,

in der DEF meines notify habe ich folgendes:
EnO_switch_00001009:B0.* {if (Jalousieaktor01:state eq "down" ) {
fhem('set Jalousieaktor01 stop');
}else {
if (Jalousieaktor01:state eq "up") {
fhem('set Jalousieaktor01 stop');
}else {
  fhem('set Jalousieaktor01 0')
}}}


Folgendes soll beim Tastendruck (EnO_switch_00001009:B0.*) passieren:
-wenn die Jalousie bereits runter fährt, also das Reading state auf "down" steht, dann soll die Jalousie stoppen
-wenn die Jalousie bereits rauf fährt, also das Reading state auf "up" steht, dann soll die Jalousie stoppen
-in allen anderen Fällen soll die Jalousie bei Tastendruck auf "0" fahrten

Leider bekomme ich mit dem obigen Code eine Fehlermeldung.

Kann mir da einer helfen?

Gruß, Sascha
Titel: Antw:Fehler im Notify
Beitrag von: Puschel74 am 17 Februar 2016, 14:07:00
Zitat von: Cybers am 17 Februar 2016, 14:05:40
Leider bekomme ich mit dem obigen Code eine Fehlermeldung.

Kann mir da einer helfen?

Gruß, Sascha
Und die Meldung ist als streng geheim eingestuft?
Titel: Antw:Fehler im Notify
Beitrag von: Cybers am 17 Februar 2016, 14:12:35
Sorry, vergessen. Die Fehlermeldung:
Taster2.1_notify return value: syntax error at (eval 8211) line 1, near "Jalousieaktor01:"
syntax error at (eval 8211) line 3, near "}else"
Titel: Antw:Fehler im Notify
Beitrag von: Puschel74 am 17 Februar 2016, 14:15:59
Merke:
Mische nicht IF/DOIF mit notify - das geht ins Auge.

Deine if-Abfrage setzt IF/DOIF voraus und nicht Perl-if da es mit if solche Abfragekonstukte mWn nicht gibt.
Jalousieaktor01:state

Für if wäre wohl
if (Value("Jalousieaktor01") eq "down")
besser geeignet.
Titel: Antw:Fehler im Notify
Beitrag von: Cybers am 17 Februar 2016, 14:31:15
damit würde ich aber "STATE" abfragen und nicht das Reading "state". Da ich das Attribut stateFormat verwende sind "state" und "STATE" nicht gleich.

Oder habe ich einen Denkfehler?

Gruß, Sascha
Titel: Antw:Fehler im Notify
Beitrag von: CoolTux am 17 Februar 2016, 14:35:26
Commandref und da nach ReadingsVal suchen



Grüße
Titel: Antw:Fehler im Notify
Beitrag von: Cybers am 17 Februar 2016, 14:51:16
Danke, so läuft es jetzt:
EnO_switch_00001009:B0.* {if (ReadingsVal('Jalousieaktor01','state','') eq "down" ) {
fhem('set Jalousieaktor01 stop');
}else {
if (ReadingsVal('Jalousieaktor01','state','') eq "up") {
fhem('set Jalousieaktor01 stop');
}else {
  fhem('set Jalousieaktor01 0')
}}}
Titel: Antw:[Gelöst] Fehler im Notify
Beitrag von: Puschel74 am 17 Februar 2016, 14:54:12
Da es keinen Hinweis auf ein verwendetes stateFormat gab gab es von mir auch keinen Hinweis auf ReadingsVal  ;)
Ohne stateFormat klappt es nämlich auch mit Value.
Titel: Antw:[Gelöst] Fehler im Notify
Beitrag von: Cybers am 17 Februar 2016, 15:04:27
wenn ich das jetzt richtig gelesen habe, könnte ich statt "if" auch "IF" benutzen und müßte dann aber "Jalousieaktor01:state" ohne ReadingsVal nutzen?
Also so:
EnO_switch_00001009:B0.* IF ([Jalousieaktor01:state] eq "down" ) (set Jalousieaktor01 stop)