[Gelöst]Notify reagiert ungewohnt

Begonnen von Pythonf, 02 Oktober 2018, 13:05:34

Vorheriges Thema - Nächstes Thema

Pythonf

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

CoolTux

on und off kommen aus dem state. da greift deine Regex nicht
Wohnzimmerradio:.*

Probiere bitte einmal
Wohnzimmerradio:(on|off|volume:.*)
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Pythonf

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.

CoolTux

Wohnzimmerradio.(on|off|volume:.*)  und so?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux


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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ah ich sehe gerade. Volume kann so nicht gehen. Du musst für Volume EVTPART nehmen oder EVENT selber zerlegen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rabehd

#6
Wie wäre ein fhem("Log 3 $EVENT") (ungetestet) am Anfang zu Testzwecken?
Vielleicht nicht die hohe Schule, aber...
Auch funktionierende Lösungen kann man hinterfragen.

Pythonf

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

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Pythonf

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!