FHEM Hauptschleife (MAIN)

Begonnen von jw2013, 16 Januar 2024, 01:48:36

Vorheriges Thema - Nächstes Thema

jw2013

#15
Kleines Update für das 00_EPOLL.pm Modul: Ich habe den Code so angepasst, dass er sich im Falle von verbleibenden Daten in SSL Lese-Puffern so verhält wie das Original.

KölnSolar

ZitatSämtliche eHZ Zähler der umliegenden Stadtwerke senden 1x pro Sekunde ohne Aufforderung,
richtig
Zitatdeswegen steht pollingMode bei allen auf "off", interval und alignTime sollten also keine Anwendung finden.
falsch. Ich hab damals an der Entwicklung mitgewirkt. Mit den Attributen werden die Daten nur zum entsprechenden Zeitpunkt verarbeitet. Die Verarbeitung ist die "Bremse". Ist also nicht wirklich das, was man sonst unter polling versteht. Ich lese mit interval=60 2 "pushende" Zähler problemlos aus.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

jw2013

Ich bekomme da einen seltsamen Effekt:
Das Attribut 'interval' kann ich im laufenden Betrieb setzen, es hat aber keine Auswirkung.
Wenn ich dann zusätzlich noch "alignTime" setzen will, bekomme ich eine Fehlermeldung, dass 'interval' nicht gesetzt wäre?!
Laut Source-Code prüft der auf $init_done. Also beide Parameter in die Config => FHEM bleibt beim Start hängen  :o

KölnSolar

pollingMode=on gesetzt ?

commandref
Zitatinterval
The polling-interval in seconds. (Only useful in Polling-Mode)
alignTime
Aligns the intervals to a given time. Each interval is repeatedly calculated. So if alignTime=00:00 and interval=600 aligns the interval to xx:00:00, xx:10:00, xx:20:00 etc....
pollingMode
Changes from direct-read to polling-mode. Useful with meters, that send a continous datastream. Reduces CPU-load.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

jw2013

Funktioniert, Danke @KölnSolar ;D

Ich hatte pollingMode=off, da ich vermutete, dass das für selbsttätig sendende eHZ vorgesehen ist.
Im Grunde könnte man das interval-Attribut sogar im Modus off analog verwendbar machen. D.h. nach jedem erfolgreichen Parse sperren, also Read ins Leere laufen lassen, bis das Interval das nächste Mal auslöst.