Hallo
ich habe folgendes Problem.
Von meinem Device PoolController soll via notify bei einem ReadingUpdate wiederum im Dummy(Relais_Pool) ein ReadingEintrag gemacht werden. Also, wenn die Lampe im Pool eingeschaltet wird, soll im Dummy ein entsprechender Eintrag gemacht werden. Das klappt eigentlich auch grundsätzlich mit folgendem Notify
PoolController:Palmen_Spot.* setreading Relais_Pool $EVENT
Das Problem ist nur, dass der Eintrag im Dummy hinter dem ReadingName (Palmen_Spot) ein Doppelpunkt : setzt, was im Device PoolController nicht der Fall ist.
Internals:
CFGFN
NAME Relais_Pool
NR 6943
STATE OK
TYPE dummy
Readings:
2016-11-10 19:00:23 Palmen_Spot: 1
2016-11-10 19:33:39 state OK
Attributes:
room Dummies,PoolController
setList state:OK
Wie bring ich nun den Doppelpunkt wieder weg? Und wieso wird da ein Doppelpunkt übermittelt obschon es im Ursprung Device keinen Doppelpunkt hat?
Siehe auch: https://forum.fhem.de/index.php/topic,60475.0.html
im event ist natürlich ein: um den reading namen vom wert zu trennen.
so sollte es gehen:define <name> notify PoolController:(Palmen_Spot|Pool_LED).* setreading Relais_Pool $NAME $EVTPART
aber warum kopierst du die readings überhaupt? die sind doch im original device schon vorhanden.
gruss
andre
Hallo, herzlichen Dank. Geht leider nicht...
Internals:
CFGFN
NAME Relais_Pool
NR 6943
STATE OK
TYPE dummy
Readings:
2016-11-10 20:43:24 PoolController $EVNTPART1
2016-11-10 19:00:23 Palmen_Spot: 1
2016-11-10 19:33:39 state OK
Attributes:
room Dummies,PoolController
setList state:OK
Ich kopiere das Reading aus folgendem Grund. Ich möchte gerne wissen, wann die Lampe aus- resp. eingeschaltet wurde. Da das Original_Device alle 60sekunden die Readings neu bespielt, unabhängig davon ob sich der ReadingWert geändert hat, erhalte ich immer einen neuen Timestamp alle 60sek. Deshalb möchte ich bei einer Änderung des ReadingWertes (also Lampe an oder aus) einen Event generieren, welcher dann im Dummy einen identischen Eintrag macht, jedoch mit dem Timestamp des Eintrages... Verständlich?
da war noch ein tippfehler oben drin. es muss $EVTPART heissen. nicht $EVNTPART1.
aber ich sehe gerade das du je den reading namen und nicht den device namen brauchst. dazu wäre etwas perl code nötig.
aber wenn es dir sowieso nur um den timestamp geht: schau dir das timestamp-in-change-reading attribut an. das macht genau das was du willst. direkt im original device. ohne dummy.
gruss
andre
herzlichen dank.. mann, wieso einfach, wenn es kompliziert geht?? ;) Das hat mich 2 Abende gekostet... dabei geht es so einfach.... genau das habe ich gesucht...
Manchmal hilft es wenn man etwas genauer schreibt wieso man sowas macht.
Bei Deiner RegEx Frage vor paar Tagen hatte ich auch nur auf die Frage geantwortet, wenn man nicht erzählt wieso man das braucht frage ich nicht nach :)
Grüße
da hast du recht.. man will sich ja eigentlich nur auf das wesentliche konzentrieren, damit man nicht Gefahr läuft, dass man den Leser/Helfer im Text verliert.. ;)
Aber in deinem Fall hab ich was dazu gelernt, was mir künftig helfen wird. Danke nochmals.