Was muss ich tun, um durch DOIFs im Perlmodus beim Aktualisieren von Readings auch ein Event auszulösen?
Beispiel: hier integriere ich die Leistung in einem Wärmemengenzähler
{set_Exec ("refresh",60,'set_Reading("Leistung",57.96 * get_Reading("tempDiff"));set_Reading("Energie",get_Reading("Energie")+(get_Reading("Leistung")/1000))','ReadingsVal("Switch_Heizkeller","Kollektorpumpe","ON") eq "ON"');}
Die Werte werden korrekt minütlich gerechnet und weggeschrieben, da es aber kein Event gibt, habe ich sie weder in der Datenbank noch kann ich sie als Trigger verwenden.
Auch DOIF_Readings erzeugen keine Events:
tempDiff:([T_VL_Kollektor:temperature]-[T_RL_Kollektor:temperature])
Hier werden die Werde korrekt aktualisiert bei Änderung einer der beiden Temperaturen...
Bin um einen Anstoß verlegen, mit event-on-(update|change)-reading habe ich mich schon vergeblich bemüht
Christian
ganz einfach, den dritten Parameter bei set_Reading verwenden ;)
siehe: https://fhem.de/commandref_DE.html#DOIF_Spezifische_Perl-Funktionen_im_Perl-Modus
Zitat von: Damian am 25 Januar 2021, 12:13:28
ganz einfach, den dritten Parameter bei set_Reading verwenden ;)
siehe: https://fhem.de/commandref_DE.html#DOIF_Spezifische_Perl-Funktionen_im_Perl-Modus
Am liebsten würde ich meine Frage löschen? Aber vielleicht hilft Deine Antwort (danke!) noch jemanden anderen irgendwann
und das Äquivalent zu DOIF_Readings (= ohne Events) heißt event_Readings (= mit Events) ;)