FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: Carsten1981 am 11 September 2017, 16:44:21

Titel: [Gelöst] Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: Carsten1981 am 11 September 2017, 16:44:21
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
Titel: Antw:Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: jkriegl am 11 September 2017, 17:28:25
Verändere mit einem z.B.
set EBUS.Timer_s2 modifyTimeSpec 02:00:00
abhängig vom Sonnenauf/untergang das Pollinginterval
Titel: Antw:Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: Carsten1981 am 11 September 2017, 17:37:45
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
Titel: Antw:Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: KölnSolar am 11 September 2017, 19:33:57
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.
Titel: Antw:Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: Carsten1981 am 11 September 2017, 19:41:55
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.
Titel: Antw:Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: Carsten1981 am 12 September 2017, 08:28:30
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)
Titel: Antw:[Gelöst] Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: Carsten1981 am 16 November 2017, 18:00:03
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

Titel: Antw:[Gelöst] Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: jkriegl am 16 November 2017, 18:22:37
Versuch mal den Sensorfehler abzufangen
Also wenn Sensor >= 85 dann liegt ein Fehler vor, mach also nix.
Titel: Antw:[Gelöst] Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: Carsten1981 am 16 November 2017, 19:49:36
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
Titel: Antw:[Gelöst] Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: jkriegl am 17 November 2017, 12:40:01
Ich meinte
DOELSEIF ([VL_Solar:temperature] >= 85)  ()
Titel: Antw:[Gelöst] Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: Carsten1981 am 18 November 2017, 11:12:32
Aber dann geht die Pumpe ja trotzdem an. Es wird ja nur das PollingIntervall nicht verändert.
Titel: Antw:[Gelöst] Zeit und/oder Temperaturabhängiges Polling Intervall
Beitrag von: Carsten1981 am 19 November 2017, 09:59:06
@ 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