Hallo.
Ich möchte gerne ein Dummy erstellen, der ein Reading von einem anderen Device anzeigt.
Dazu habe ich ein Dummy erstellt und ein UserReadings erstellt.
Pooltemperatur { ReadingsVal("NordTerrasse_Lampe", "DS18B20_Temperature",0)}
Leider wird dieses Reading im Dummy nicht angezeigt. In dem Device selber wird es aber angezeigt.
Habe ich da noch einen Denkfehler?
Danke für Eure Hilfe.
Gruß
Hermann
Der Denkfehler ist: userreadings!
Das triggert NUR, wenn sich bei dem Device wo es "dranhängt" etwas ändert!!
Das was du machen willst geht z.B. per Notify und setreading...
Gruß, Joachim
Danke.
Aber die Temperatur hat sich in der Zeit schon öfters geändert. Dann müsste das Reading dich erscheinen, oder?
Nein, das userReadings ist nur im Original device (NordTerrasse_Lampe) verwendbar.
Wenn das Ziel nicht nur der dummy ist, es gibt auch so diverse readings.* Devices in FHEM
z.B. readingsProxy einfach mal in die Doku schauen :)
Zitat von: hermann1514 am 13 Mai 2020, 22:44:25
Danke.
Aber die Temperatur hat sich in der Zeit schon öfters geändert. Dann müsste das Reading dich erscheinen, oder?
Das userreadings hängt doch am dummy!?
Hat sich bei dem was geändert!?
Ich behaupte: NEIN ;)
Also wird das userreadings NICHT getriggert und macht auch NICHTS ;)
Die Temperatur hat sich DORT geändert wo du sie HERHOLEN willst (mit userreadings)...
...und DAS geht nicht...
Also immer genau lesen was in commandref steht oder hier geantwortet wird ;)
Gruß, Joachim
Zitat von: Otto123 am 13 Mai 2020, 22:47:48
Nein, das userReadings wird nur im Original device verwendbar
Okay. Das sagt alles. Danke. Dann werde ich mir die anderen mal anschauen.
Danke.
Gruß
Hermann
Hallo Herrmann,
Das was Du machen willst, kannst Du auch lösen, wenn du dein userreading im Dummy in stateformat umwandelst, also attr dummy stateformat {ReadingsVal(...)}
. Um den State dann im dummy zu aktualisieren (passiert nicht automatich bei temperaturwechsel) musst Du nur den state von dem dummy ändern, z.b. Einfach ein ,,set dummy bla" eingeben. Das musst Du dann immer wieder anstossen um eine neue temperatur anzeigen zu lassen.
Readingsproxy geht auch.
Wenn wir schon bei "eigenartigen" Lösungen sind:
es ginge verm. auch ein userreadings (also eher ein "Pseudo-userreadings") beim "Original-device" anzulegen (am besten mit Trigger auf Temperatur) und dann dort ein setreading DummyName Temperatur Wert ;)
Und das "Pseudo-userreadings" beim "Original-Device" einfach "ignorieren"... ;)
Gruß, Joachim
Zitat von: MadMax-FHEM am 13 Mai 2020, 23:12:15
setreading DummyName Temperatur Wert ;)
NEIN! Gefahr!
https://forum.fhem.de/index.php?topic=110361.0
ich weiß der Fall geht sicher, aber ich würde über solche Varianten nicht nachdenken. :)
Drum ja setreading ANDERES-GERÄT ;)
Und ich hab ja geschrieben: weil wir schon bei "eigenartigen" Lösungen sind...
Gruß, Joachim
readingsProxy?
Zitat von: Beta-User am 14 Mai 2020, 08:06:42
readingsProxy?
Wurde auch schon genannt...
...und ist verm. am sinnvollsten...
Wobei die Frage ist, was erreicht werden soll.
Wenn das beim Dummy-Device gelogged werden soll, dann ist readingsproxy keine Variante, weil (habe ich hier im Forum wo mitbekommen) da keine Events erzeugt werden...
Ich denke jetzt muss sich Hermann halt was passendes raussuchen... ;)
Gruß, Joachim
MMn. ist das Duplizieren von Events eher das Ergebnis von Unwissenheit denn wirklich gewollt. Kurz: Diese Umpackerei in Dummy ist praktisch immer Murks (just my2ct).
Man kann ohne weiteres ein separates FileLog-Gerät auf das "ursprüngliche" Reading ansetzen (ggf. getrennt von allen anderen Readings des Ausgangsgeräts), und wenn man unbedingt (warum auch immer) in eine 2. Datenbank loggen wollte, ginge das auch.
stateFormat am Dummy ist jedenfalls wohl auch keine Lösung, denn wann genau nochmal wird der Code in stateFormat aufgerufen...?
@Otto123: Sorry, deinen (für meinen Geschmack zu leisen) Hinweis auf readingsProxy hatte ich tatsächlich überlesen...