Please define $NAME first

Begonnen von hanske, 10 Dezember 2015, 08:58:54

Vorheriges Thema - Nächstes Thema

hanske

Hallo,

seit dem Update von ca. Anfang November funktioniert bei einem meiner Notifys die Namensauflösung "$NAME" nur noch teilweise.

Bei einem set_desiredTemp von FHEM möchte ich bei meinen beiden Raumthermostaten verschiedene Readings setzen und ein burstXmit auslösen.

Dazu dieses Notify:

define n_rt_hm34_set notify rt_hm[3|4]:.*set_desired.* setreading $NAME_climate desired-temp-manu $EVTPART1; setreading $NAME_climate desired-temp-cent $EVTPART1; set $NAME_climate burstXmit;

Die Readings werden richtig gesetzt aber beim burstXmit wird "$NAME" nicht mehr aufgelöst:

2015.12.10 08:48:35 4: n_rt_hm34_set exec setreading $NAME_climate desired-temp-manu $EVTPART1; setreading $NAME_climate desired-temp-cent $EVTPART1; set $NAME_climate burstXmit;
2015.12.10 08:48:35 3: CUL_HM set rt_hm3 desired-temp 19.0
2015.12.10 08:48:35 3: n_rt_hm34_set return value: Please define $NAME_climate first


Wenn ich statt "set $NAME_climate burstXmit" direkt z.B. "set rt_hm3_climate burstXmit" ins notify schreibe geht es.

Funktionierte bis November immer auch so.
Hat sich mit dem 5.7er Release ein Bug eingeschlichen oder mache ich was falsch?
Raspberry Pi (Wheezy), Aeon Labs Z-Wave USB Stick 2, HM-USB Adapter, EBUS 2.0 mit Wemos
diverse HM und Z-Wave Geräte

betateilchen

Da hat sich kein Bug eingeschlichen, sondern das Verhalten von fhem hat sich verändert. Das veränderte Verhalten ist dokumentiert und Du musst Deine Vorgehensweise entsprechend anpassen.

Was Du falsch gemacht hast: Zu wenig gelesen ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hanske

Kannst Du mir ein Stichwort geben, nachdem ich suchen kann?
Bisher habe ich nur %NAME -> $NAME gefunden. Aber das ist ja bei mir richtig.

Danke
Raspberry Pi (Wheezy), Aeon Labs Z-Wave USB Stick 2, HM-USB Adapter, EBUS 2.0 mit Wemos
diverse HM und Z-Wave Geräte

betateilchen

Rudi hat da neulich eine Änderung eingebaut, damit solche speziellen Variablen innerhalb der Zeile immer zur Verfügung stehen. Den zugehörigen Thread müsste ich auch erst raussuchen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hanske

Also wird es in einer der nächsten Versionen wieder gehen, oder muss/ kann ich was ändern?
Raspberry Pi (Wheezy), Aeon Labs Z-Wave USB Stick 2, HM-USB Adapter, EBUS 2.0 mit Wemos
diverse HM und Z-Wave Geräte

rudolfkoenig

@hanske: eigentlich muesste dein Konstrukt funktionieren, und ich kann es in einem vereinfachten Setup nicht nachstellen:
fhem> defmod n notify n setreading $NAME EV1 $EVENT;; setreading $NAME EV1 $EVENT;; set $NAME $EVENT
fhem> trigger n hallo

erzeugt im Log bei verbose 5
Zitat2015.12.10 10:47:26.444 5: Cmd: >trigger n hallo<
2015.12.10 10:47:26.444 5: Triggering n (1 changes)
2015.12.10 10:47:26.444 5: Notify loop for n hallo
2015.12.10 10:47:26.445 5: Triggering n
2015.12.10 10:47:26.445 4: n exec setreading $NAME EV1 $EVENT; setreading $NAME EV1 $EVENT; set $NAME $EVENT
2015.12.10 10:47:26.445 5: Cmd: >setreading $NAME EV1 $EVENT<
2015.12.10 10:47:26.445 5: Triggering n (2 changes)
2015.12.10 10:47:26.445 5: Cmd: >setreading $NAME EV1 $EVENT<
2015.12.10 10:47:26.445 5: Triggering n (3 changes)
2015.12.10 10:47:26.446 5: Cmd: >set $NAME $EVENT<
2015.12.10 10:47:26.446 3: n return value: Unknown argument hallo, choose one of
was meiner Ansicht nach korrekt ist. Koenntest du bitte fuer mich einen vereinfachten Beispiel ohne Hardware konstruiren?

hanske

@rudolfkoenig

da es kein bekannter Bug ist, habe ich noch mal weiter rumprobiert und meinen Fehler gefunden.

Letztendlich lag es an dem Befehl vor dem burstXmit: "setreading $NAME_climate desired-temp-cent $EVTPART1;"
Das setzen des Readings hat noch ein DOIF getriggert, welches wieder dieses Notify getriggert hätte.
Da hat euer "Deadlockpreventer" die unabsichtliche Schleife aber wohl unterbrochen.
Die Fehlermeldung "Please define $NAME first" hatte mich nur nicht darauf gebracht nach so etwas zu suchen.

Jetzt geht es.
Danke
Raspberry Pi (Wheezy), Aeon Labs Z-Wave USB Stick 2, HM-USB Adapter, EBUS 2.0 mit Wemos
diverse HM und Z-Wave Geräte