[Gelöst] Zeit und/oder Temperaturabhängiges Polling Intervall

Begonnen von Carsten1981, 11 September 2017, 16:44:21

Vorheriges Thema - Nächstes Thema

Carsten1981

Hallo zusammen,

Bin auf der Suche nach einer Möglichkeit die Temperaturen von einem DS18B20 Zeit und/oder Temperaturabhängig zu loggen und damit die Logfile Größe drastisch zu reduzieren.

Zum Verständnis: Habe einen DS18B20 am Vorlauf meiner Thermischen Solaranlage und steuere damit die Solarpumpe. PollingIntervall 30Sekunden EventOnChangereading 0.1. klappt soweit super sind halt nur viele Logs. Nachts oder würde es ja locker reichen wenn das PollingIntervall auf 3600 reduziert wird. Das gleiche wenn die Vorlauftemperatur niedrig ist könnte auch das die Zeit verlängert werden.

Mir ist leider nur einen wie ich finde sehr aufwendige und komplizierte Lösung eingefallen.

Ich könnte über ein DOIF (Zeit und Temperaturabhängig) die Temperatur in einen Dummy schreiben und nur diesen dann loggen und nicht mehr den Sensor selber.

Aber vielleicht hat ja einer eine viel bessere Idee.

Danke und Gruß Carsten
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

jkriegl

Verändere mit einem z.B.
set EBUS.Timer_s2 modifyTimeSpec 02:00:00
abhängig vom Sonnenauf/untergang das Pollinginterval
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Carsten1981

Das klingt als wäre es für dich total logisch und einfach :'(. Ich verstehe leider nur Bahnhof und Mit goggle komme ich bei EBUS nur zu einer Heizungssteuerung.

Trotzdem schon mal danke für deine Hilfe
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

KölnSolar

Wußte gar nicht, dass man ein attr pollingInterval bei GPIO4 hat  :-[

Daher ist es aber ganz einfach: mit at od. notify od. DOIF.  abends ein attr DS18device pollingInterval 3600 und morgens dann wieder zurück auf 30.
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

Carsten1981

Ah danke perfekt. Wäre nicht auf die idee gekommen mit einem at ein attr eines devices ändern zu können. Werde es testen und berichten.
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

Carsten1981

#5
Funktioniert perfekt, vielen herzlichen dank

([Helligkeit:state] = 6) (attr VL_Solar pollingInterval 30)

DOELSEIF
([Helligkeit:state] < 6) (attr VL_Solar pollingInterval 1800)

DOELSEIF
([VL_Solar:temperature] < 20) (attr VL_Solar pollingInterval 300)

DOELSEIF
([VL_Solar:temperature] > 20) (attr VL_Solar pollingInterval 30)
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

Carsten1981

Es funktioniert immer noch super, aber leider ist jetzt ein fehler aufgekommen, den ich auf meinem Testsystem so auch nachstellen konnte.

([Helligkeit:state] < 6) (attr VL_Solar pollingInterval 1800)

DOELSEIF
([Helligkeit:state] > 6) (attr VL_Solar pollingInterval 1800)

DOELSEIF
([Helligkeit:state] > 5 and [Helligkeit:state] < 7 and [VL_Solar:temperature] < 30 ) (attr VL_Solar pollingInterval 300)

DOELSEIF
([Helligkeit:state] > 5 and [Helligkeit:state] < 7 and [VL_Solar:temperature] > 30 ) (attr VL_Solar pollingInterval 60)


Jezt kam es Nachts einmal zu einem Messfehler des Sensors, daher die Temperatur war 85°C, folge die Solarpumpe lief für 1800 Sekunden bei 6°C Aussentemperatur.

ein weiteres DOELSEIF eingebaut.

DOELSEIF
([VL_Solar:temperature] eq "85")  (attr VL_Solar pollingInterval 10).

klingt super funktioniert aber nicht. Der Zeitpunkt für die erneute Abfrage des Sensors scheint bei der Auslesung gesetzt zu werden. Daher als es zu dem Messfehler kam wurde der nächste Auslesezeitpunkt in 1800 Sekunden gesetzt. Bei der nächsten Messung 1800 Sekunden später wurde dann das aktualierte pollingInterval von 10 Sekunden gesetzt, welches aber ja nicht mehr benötigt wurde da jetzt wieder der richtige Wert gemessen wurde.

hat jemand ein idee wie ich den Sensor kurz nach einer Fehlmessung erneut abfragen kann, egal welcher Abfragezeitpunkt durch das pollingInterval gesettz wurde?

gruß Carsten

fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

jkriegl

Versuch mal den Sensorfehler abzufangen
Also wenn Sensor >= 85 dann liegt ein Fehler vor, mach also nix.
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Carsten1981

Hallo,

Du meinst die Pumpe soll gar nicht anspringen!? Das heißt ich müsste die Pumpensteuerung von dem Thereshold Modul auf die in DoIF umbauen. Meines Wissens gib es bei dem Thereshold Modul keine Möglichkeit zu sag nnmache nichts wenn Temperatur = 85.

Danke für deine Hilfe erstmal.

Gruß Carsten
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

jkriegl

Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Carsten1981

Aber dann geht die Pumpe ja trotzdem an. Es wird ja nur das PollingIntervall nicht verändert.
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung

Carsten1981

@ jkriegl

Deine Idee hat mich dann selber zur Lösung gebracht. Die Pumpe wird durch ein Thereshold gesteuert, darauf kann ich durch das DOIF ja nicht zugreifen.

Lösung:
DOELSEIF
([VL_Solar:temperature] eq "85")  (sleep 5; set Solarpumpe off)


scheint zumindest auf dem Testsystem zu funktionieren. Dann mal den nächsten Messfehler abwarten

Gruß Carsten
fhem 5.8 CUL 433, 8x DS18B20, 8fach 230V Relais
benachrichtigungen über Telegram, Steuerung Solar- und Kaminpumpe, Steuerung Somfy Rollos, Lichtsteuerung über Intertechno, Steuerung Heizungspumpe und Mischer Fußbodenheizung