Liebe FHEM-isten
ich war sicher, dass alles richtig ist. Aber offenbar stimmt das nicht, sonst würde es ja klappen:
Der Befehl setreading keypad state 5 setzt korrekt den Wert 5 auf das Reading state des Dummy keypad
mit define n_codecheck notify keypad:state:.* setreading keypad code 12345
möchte ich auf jegliche Änderung von state reagieren und daraufhin z.B. den Wert 12345 in die Variable code schreiben.
Aber es klappt nicht. Heute ist nicht mein Tag... :(
Zitat commandref
Zitatsetreading
setreading <devspec> <reading> <value>
Der Befehl setzt das Reading <reading> auf den Wert <value> ohne Signale an das betroffene Gerät zu senden, generiert aber Ereignisse und die übliche eventMap und stateFormat Umwandlung wird auch durchgeführt.
Siehe den Abschnitt über Geräte-Spezifikation für Details der <devspec> und die Beschreibung des set Befehls für Ersetzung.
Beispiel:
setreading lampe state on
Achtung: setreading generiert kein Event für ein Gerät X, falls es aus einem notify für Gerät X aufgerufen wurde. In so einem Fall könnte man auf "sleep 0.1; setreading X Y Z" ausweichen.
Wird denn ein event erzeugt? Eventmonitor ....
Zitat von: Otto123 am 12 Juni 2016, 19:40:25
Zitat commandref
Wird denn ein event erzeugt? Eventmonitor ....
Nein, eben nicht. Deshalb löst das notify ja auch nicht aus.
Die Frage ist, warum nicht, denn in der commandref steht: "... generiert aber Ereignisse..."
... da beißt sich die Katze in den Schwanz! Sieh dir den notify mal genau an, was fällt dir da auf?
VG
Frank
Naja...
Ich habe heute mehrere Stunden mit diesem Thema verbracht.
Wenn mir etwas aufgefallen wäre, würde ich hier nicht um Hilfe nachsuchen.
Vermutlich sehe ich den Wald vor lauter Bäumen nicht.
Zitat von: DocCyber am 12 Juni 2016, 20:24:37
Naja...
Ich habe heute mehrere Stunden mit diesem Thema verbracht.
Wenn mir etwas aufgefallen wäre, würde ich hier nicht um Hilfe nachsuchen.
Vermutlich sehe ich den Wald vor lauter Bäumen nicht.
schau Dir mal die Doppelpunkte in Deiner RegEx an
wird dein setreading aus einem notify ausgeführt?
Zitat von: Wuppi68 am 12 Juni 2016, 20:26:16
schau Dir mal die Doppelpunkte in Deiner RegEx an
Ja... und?
Was ist daran falsch? :-[ :-[
daran ist das hier falsch:
ZitatNote: setreading won't generate an event for device X, if it is called from a notify for device X. Use "sleep 0.1; setreading X Y Z" in this case.
siehe commandref.
unabhängig davon ist es besser den : nach state durch einen . zu ersetzen. der : wird als trenner zwischen device und reading verwendet.
und wenn du in deinem notify addStateEvent nicht gesetzt hast wirst du auch kein event mit dem reading namen state bekommen. aus historischen gründen wurde bei den events für das reading state der name der readings weg gelassen.
gruss
andre
Zitat von: Otto123 am 12 Juni 2016, 20:30:14
wird dein setreading aus einem notify ausgeführt?
es gibt 2x setreading in meiner Fragestellung.
Das erste wird durch ein push widget (Tablet UI) ausgelöst.
Hierauf soll das notify reagieren.
Das zweite setreading wird tatsächlich durch das notify gestartet, aber darum geht es zunächst nicht.
Zitat von: justme1968 am 12 Juni 2016, 20:38:20
----wenn du in deinem notify addStateEvent nicht gesetzt hast wirst du auch kein event mit dem reading namen state bekommen. aus historischen gründen wurde bei den events für das reading state der name der readings weg gelassen.
Ich denke, dass es
daran liegt. Danke. ;)
Außerdem war mir due Doppelpunktproblematik nicht bekannt.
Im übrugen gibt es zweimal setreading in meinem Problem...
Vgl vorige Antwort...
Ich werde es jedenfalls morgen ausprobieren. Jetzt erst Fußball. :D
Zitat von: DocCyber am 12 Juni 2016, 20:40:23
es gibt 2x setreading in meiner Fragestellung.
Das erste wird durch ein push widget (Tablet UI) ausgelöst.
Hierauf soll das notify reagieren.
Das zweite setreading wird tatsächlich durch das notify gestartet, aber darum geht es zunächst nicht.
War mir klar, deshalb meinte ich das erste 8)