FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Pythonf am 02 Oktober 2018, 13:05:34

Titel: [Gelöst]Notify reagiert ungewohnt
Beitrag von: Pythonf am 02 Oktober 2018, 13:05:34
Ich habe für meine Anlage zur Steuerung über Alexe folgendes Dummy angelegt:
Internals:
   NAME       Wohnzimmerradio
   NR         148
   STATE      on
   TYPE       dummy
   READINGS:
     2018-10-02 13:01:32   state           on
     2018-10-02 13:02:02   volume          15
Attributes:
   alexaName  Anlage
   alexaRoom  Wohnzimmer
   event-on-change-reading .*
   readingList state volume
   room       alexa
   setList    on off volume:slider,0,1,100

Darauf habe ich folgendes Notify konfiguriert:

Wohnzimmerradio:.* {
#fhem("set Wohnzimmerradio volume AB $EVENT CD"); #Zu Testzwecken
if($EVENT eq "on"){
fhem("set YamahaWohnzimmer power on");
fhem("set YamahaWohnzimmer input line1");
}
if($EVENT eq "off"){
fhem("set YamahaWohnzimmer power standby");
}
if($EVENT =~ "volume.*"){
fhem("set YamahaWohnzimmer volume $EVTPART1");
}
}


Dieses löst allerdings nur bei Änderungen des "volume" readings aus. Auf on/off reagiert es überhaupt nicht.
Habe ich vergessen an dieser Stelle ein Attribut zu setzten?
Kann mir jemand weiter helfen.

Liebe Grüße
Fabian
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: CoolTux am 02 Oktober 2018, 14:08:04
on und off kommen aus dem state. da greift deine Regex nicht
Wohnzimmerradio:.*

Probiere bitte einmal
Wohnzimmerradio:(on|off|volume:.*)
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: Pythonf am 02 Oktober 2018, 14:18:56
Wohnzimmerradio:(on|off|volume:.*)

Löst leider auch nur bei Änderungen von "volume" aus.
Ich könnte das ganze sicherlich mit einem zweiten Notify oder DOIF lösen, aber mich würde an dieser Stelle doch interessieren, woran es liegen kann.

Im Log steht unter anderem:
2018.10.02 14:16:38 1: ERROR evaluating my $EVENT='off';my $NAME='Wohnzimmerradio';my $SELF='Wohnzimmerradio_notify_1';my $TYPE='dummy';my $EVTPART0='off';{
fhem("set Wohnzimmerradio volume AB $EVENT CD");
if($EVENT eq "on"){
fhem("set YamahaWohnzimmer power on");
#fhem("set YamahaWohnzimmer volume 56");
fhem("set YamahaWohnzimmer input line1");
}
if($EVENT eq "off"){
fhem("set YamahaWohnzimmer power standby");
}
if($EVENT =~ "volume.*"){
fhem("set YamahaWohnzimmer volume $EVTPART1");
}
}: Global symbol "$EVTPART1" requires explicit package name (did you forget to declare "my $EVTPART1"?) at (eval 927) line 12.
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: CoolTux am 02 Oktober 2018, 14:26:52
Wohnzimmerradio.(on|off|volume:.*)  und so?
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: CoolTux am 02 Oktober 2018, 14:39:53

Internals:
   CFGFN     
   DEF        testdummy:(on|off|volume:.*) set testdummy2 on
   NAME       notifyTest
   NR         110
   NTFY_ORDER 50-notifyTest
   REGEXP     testdummy:(on|off|volume:.*)
   STATE      2018-10-02 14:38:28
   TRIGGERTIME 1538483908.58246
   TYPE       notify
   READINGS:
     2018-10-02 14:37:43   state           active
Attributes:
   room       Test


Keine Ahnung was Du machst, aber das hier geht bei mir bestens.
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: CoolTux am 02 Oktober 2018, 14:40:42
Ah ich sehe gerade. Volume kann so nicht gehen. Du musst für Volume EVTPART nehmen oder EVENT selber zerlegen.
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: rabehd am 02 Oktober 2018, 14:43:31
Wie wäre ein fhem("Log 3 $EVENT") (ungetestet) am Anfang zu Testzwecken?
Vielleicht nicht die hohe Schule, aber...
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: Pythonf am 02 Oktober 2018, 15:35:24
Ich teste gerade.
Wohnzimmerradio:(on|off|volume).* set Wohnzimmerradio volume AB $EVENT CD
Das funktioniert.
Das Problem tritt scheinbar ab der Verwendung von "EVTPART1" auf? Ist die Verwendung nicht zulässig bzw. gibt es dazu eine Alternative?

Lg
Fabian
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: CoolTux am 02 Oktober 2018, 15:43:26
Wohnzimmerradio:(on|off|volume).*

Hier dürfte on und off nicht triggern.

Du kannst mit EVENT arbeiten und ein split verwenden. Alles auf Perlebene halt.
Titel: Antw:Notify reagiert ungewohnt.
Beitrag von: Pythonf am 02 Oktober 2018, 15:51:07
Wohnzimmerradio:(on|off|volume).* {
my ($E1, $E2) = split(':',$EVENT);

if($EVENT eq "on"){
fhem("set YamahaWohnzimmer power on");
fhem("set YamahaWohnzimmer input line1");
}

if($EVENT eq "off"){
fhem("set YamahaWohnzimmer power standby");
}

if($EVENT =~ "volume.*"){
fhem("set YamahaWohnzimmer volume $E2");
}
}

Damit funktioniert es jetzt.

Danke!