Wunsch - Dummy State setzen auch mit readingList

Begonnen von Tom_S, 26 November 2016, 10:41:57

Vorheriges Thema - Nächstes Thema

Tom_S

entweder habe ich es nicht verstanden, oder es geht nicht richtig.

ich habe einen Dummy

define myDummy dummy
attr myDummy setList w1:slider,0,1,255 w2:slider,0,1,255
attr myDummy webCmd w1:w2


wenn ich die Slider bewege, erhalte ich ein "state w1 0-255". das gleiche bei w2. die Slider springen aber wieder zurück. Soweit klar. Wenn ich jetzt ein

attr myDummy readingList w1, w2


erstelle, erhalte ich die Readings w1 und w2. Diese matchen jetzt auf w1 und w2 und die Slider halten.
Der state ändert sich aber nicht mehr, wodurch mein Notify nicht mehr reagiert.
Wenn ich allerdings nach dem die Readings erstellt wurden das Attribut readingList wieder lösche, funktioniert es.

was mache ich falsch?

LG Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

dev0

Zitat von: Tom_S am 26 November 2016, 10:41:57
Der state ändert sich aber nicht mehr, wodurch mein Notify nicht mehr reagiert.
Das notify so umbauen, dass die Readings w1 und w2 triggern und nicht state.

Tom_S

Ok das geht. Ist aber umständlicher. Im State ist genau das was ich brauche. Und so kann ich das einfach mit einem Notify

define mynotify notify myDummy set myDevice $EVENT

machen.

wenn ich auf die Readings trigger brache ich für jedes Reading ein Notify das dann

set myDevice w1 $EVTPART1

setzt

wollte auch nur wissen, ob das so gewollt ist, das mit readingList der state nicht mehr gesetzt wird?

LG Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Tom_S

Ich habe den Titel mal geändert, da ich mitlerweile weis, das das Verhalten vom Dummy so ist, das sich beim ändern von Readings aus der "readingList" der state nicht mehr gesetzt wird. Welchen Vorteil soll das haben. Ich habe jetzt bei mir mal ein "readingsSingleUpdate" für state eingebaut. Kann man das vielleicht ändern, wenn nichts dagegen spricht.

LG Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

dev0

Zitat von: Tom_S am 26 November 2016, 14:33:05
Ok das geht. Ist aber umständlicher.
Ist es nicht, wenn Du eine regexp statt eines Readingnamen als Trigger verwendest.

Zitat von: Tom_S am 26 November 2016, 19:50:04
Ich habe jetzt bei mir mal ein "readingsSingleUpdate" für state eingebaut. Kann man das vielleicht ändern, wenn nichts dagegen spricht.
Das Verhalten ist so gewollt. Es gibt in FHEM keinen voreingestellten Automatismus, der state auf "irgendeinen" Wert setzt. state hat zwar unter den Readings eine Sonderstellung, aber es ist und bleibt nur ein Reading.

Tom_S

habe ich schon probiert, aber irgendwie stört der Doppelpunkt hinter zB. w1
w1: <wert>

kannst du vielleicht mal ein Beispiel machen?
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

dev0

Die beiden Beispiele sind aus der commandref:

    define wzMessLg notify wz:measured.* "/usr/local/bin/logfht $NAME "$EVENT""
    define LogUndef notify global:UNDEFINED.* "send-me-mail.sh "$EVENT""


Wie die Events bei dir genau aussehen findest mit inform oder dem Event Monitor heraus.
Eine Einführung zu Regexps findest Du hier

Tom_S

die Comandref kenne ich, und auch den Eventmonitor.
Aber konkret bekomme ich es nicht hin. Mein Notify triggert auf zb.
myDummy:.*
als Event erhalte ich <reading>: <wert>
Um jetzt das Device zu steuern brauche ich

set myDevice <reading> <wert>

Ich müsste den Doppelpunkt im Event loswerden. Dann würde es gehen.

LG
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

dev0

Ich hatte nicht aufmerksam genug gelesen, dass Du $EVENT weiterverarbeiten möchtest.
Der Doppelpunkt läßt sich aber leicht entfernen:

define n_mydummy notify myDummy:w[12].* { $EVENT =~ s/://;; fhem "set myDevice $EVENT" }

Tom_S

RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus