event per notify auslösen - geht das ?

Begonnen von nullptr, 14 Juli 2023, 09:39:04

Vorheriges Thema - Nächstes Thema

nullptr

Event-on-update-reading löst ein event  aus. Das ist toll. Wie kann ich aber ein Event per notify auslösen?
Die Änderung einer überwachten Variablen per setreading wirkt da ja nicht.

frank

grundsätzlich erzeugt der fhem cmd "trigger" beliebige events.

deine infos sind ziehmlich spärlich, oder?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

CoolTux

#2
Zitat von: nullptr am 14 Juli 2023, 09:39:04Event-on-update-reading löst ein event  aus. Das ist toll. Wie kann ich aber ein Event per notify auslösen?
Die Änderung einer überwachten Variablen per setreading wirkt da ja nicht.


event-on-update-reading löst kein Event aus. Das setzen von Seading Werten kann ein Event auslösen.
event-on-update-reading lässt ein Event durch wenn der gesetzte Reading Wert ein anderer ist wie der vorhandene neu geschrieben wurde.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

Zitat von: CoolTux am 14 Juli 2023, 10:15:47event-on-update-reading lässt ein Event durch wenn der gesetzte Reading Wert ein anderer ist wie der vorhandene.

äh... nein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Um auf die ursprüngliche Frage zurückzukommen:

Zitat von: nullptr am 14 Juli 2023, 09:39:04Wie kann ich aber ein Event per notify auslösen?

  • Für die grundsätzliche Erzeugung von events stehen die FHEM Befehle "trigger" und "setreading" zur Verfügung.
  • Wo sich diese events aber letztlich tatsächlich auswirken (aka: wo sie "ankommen") bestimmt der Anwender durch die Verwendung der für mich nach wie vor völlig entbehrlichen Filterattribute event-on-irgendwas.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nullptr

Mehr Infos? Ich habe ein Außenthermometer mit Readings  u.a. für die Temperaturdifferenz zum Innenraum. Diese wird dort von einem Innenthermometer erfaßt und per ReadingsVal im Attribut userReadings des Außenthermometers berechnet. Die Aktualisierung erfolgt dort per event-on-update-reading. Das zum Außenthermometer gehörige StatIcon zeigt an wenn es draußen kälter ist als drinnen: Dann kann bei Hitze gelüftet werden. Die Differenztemperatur wird aber nur aktualisiert, wenn das Außenthermometer eine Änderung der Außentemperatur vermerkt. Ich möchte aber auch eine Aktualisierung, wenn der Innentemperatursenor eine geänderte Temperatur meldet.


nullptr

Danke auch für das Feedback. Ich bin bisher mit trigger und setreading nicht weitergekommen. Das Ziel ist ja für mich die userReadings erneut berechnen zu lassen. Vielen Dank für eure Hilfe !!

MadMax-FHEM

#7
Zitat von: nullptr am 14 Juli 2023, 11:12:02per ReadingsVal im Attribut userReadings des Außenthermometers berechnet
Naja ein userReadings wird nur "bearbeitet", wenn am Device (-> Außenthermometer) an dem es "hängt" ein Event kommt (der zu einem möglichen Trigger des userReadings passt).

EDIT:
Zitat von: nullptr am 14 Juli 2023, 11:17:18Das Ziel ist ja für mich die userReadings erneut berechnen zu lassen.
-> siehe Erläuterung zu userReadings...

Hier evtl. (besser) ein notify auf Änderung der Temperatur bei Innen- und Außenthermometer und dann die Berechnung und das Ergebnis dann per setreading in das gewünschte reading beim gewünschten Device schreiben...
EDIT: dann wird das "Differenz-Reading" immer befüllt, wenn sich entweder Innen- oder Außentemperatur ändert (das ist ja was du willst?)...

Warum nicht einfach lists der betroffenen Devices?
Wie hier zu lesen: https://forum.fhem.de/index.php?topic=71806.0

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

nullptr

Sehr guter Tipp ! Herzlichen Dank, das werde ich so machen.

betateilchen

Zitat von: nullptr am 14 Juli 2023, 11:12:02Die Aktualisierung erfolgt dort per event-on-update-reading.

Diese Aussage wird nicht dadurch richtig, dass Du sie noch öfters wiederholst.
Diese Behauptung ist und bleibt schlichtweg falsch.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nullptr

Zitat von: betateilchen am 14 Juli 2023, 13:53:49
Zitat von: nullptr am 14 Juli 2023, 11:12:02Die Aktualisierung erfolgt dort per event-on-update-reading.

Diese Aussage wird nicht dadurch richtig, dass Du sie noch öfters wiederholst.
Diese Behauptung ist und bleibt schlichtweg falsch.

Ich will hier keinen ärgern, und lernunwillig bin ich sicher auch nicht. Wahrscheinlich habe ich mich da in der Terminologie verheddert.

In der FHEM Referenz steht zu userReadings :
Zitatthe user-defined readings are set by evaluating the perl code

Ich verstehe das so, daß das userReading durch den code modifiziert wird. Das habe ich gemeint und wohl nicht klar genug ausgedrückt.