Zeitcounter in DOIF einbauen

Begonnen von Luckbert, 11 August 2021, 11:41:48

Vorheriges Thema - Nächstes Thema

Luckbert

Hallo zusammen.
Ich habe eine Poolsteuerrung, welche meine Poolpume je nach Temperatur steuert.

define Waerme_32 DOIF ([Sonne_T1_T2:temperature] >10 and [Pooltemp_T2:temperature] <32 and [Pooltemp_T1:temperature] >0 and [Pooltemp_T2:temperature] < [Sonne_T1:temperature]) (set Poolpumpe_Sw on) DOELSE (set Poolpumpe_Sw off)

Das klappt auch wunderbar. Mein Problem ist der Tag an dem keine Sonne scheint. Ich möchte das die Pumpe in 24h min. 4h läuft.
Also muss die Differenz von der "temperaturgesteuerte Laufzeit" und "4h Laufzeit" abends nachgeholt werden.

Ich habe mir das Modul HourCounter angesehen, werde aber mangels Kenntnis nicht schlau daraus.
Vielleicht könnt ihr mir weiterhelfen.

Grüße Jürgen
Ich bin Neueinsteiger mit RPi3 mit  HM-MOD-RPI-PCB.

steffen83

Hallo Jürgen

Ich klinke mich hier auch mal rein da ich das für die nähe zukunft auch noch umsetzen möchte. Der Fall bei mir ist aber wohl etwas anders
Vorhanden ist
- Solarabsorber
- uv lampe

Ich möchte das die Pumpe am Tag 3 Stunden läuft. Sofern die Temperatur auf dem Dach jedoch warm ist und das Wasser erwärmt wird darf die Pumpe schon laufen. Wenn es am Tag aber nicht warm war soll die Pumpe die Zeit am Abend nachholen.
Sollte es länger als 3 Stunde warm sein, so darf die Pumpe auch länger laufen.

Die uv lampe soll in Summe nur 3h am Tag laufen und das natürlich nur, wenn die Pumpe läuft.

Daher lese ich mal mit was hier berichtet wird.
LG
Steffen
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

Damian

DOIF kann von sich aus nicht die Laufzeit eines Aktors bestimmen. Natürlich kann man im DOIF (Perlmodus) etwas programmieren und HourCounter nachbilden. Allerdings kann man sich die Arbeit sparen, wenn es dafür schon speziell ein Modul gibt.

Ich würde HourCounter definieren (laut Wiki eine Zeile) und im DOIF abends die bisherige Laufzeit aus HourCounter abfragen und ggf. den Aktor für den Rest des Tages einschalten.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein


Damian

Zitat von: gestein am 11 August 2021, 16:48:16
Hilft das hier vielleicht weiter?
https://forum.fhem.de/index.php/topic,120681.0.html

lg, Gerhard

Ich denke, er will in erster Linie On-Zeit eines Aktors messen. Das ist hier nicht der Fall.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein

Da hast Du recht.

Ich würde einfach ein Notify nehmen und bei on/on-for-timer mir in einem Userreading in der jeweiligen Pumpe die letzte Einschaltzeit merken.
Bei einem off wird die Differenz aus aktueller Zeit und der letzten Einschaltzeit in einem anderen Userreading aufsummiert.
Das klappt auch, wenn man die Pumpe manuell ein-/ausschaltet.

Am Abend hat man dann die bisherige Laufzeit.
Dann kann man zu einer bestimmten Zeit (über DOIF) diese Laufzeit zum Berechnen der weiteren Zeiten nehmen.
Und dann irgendwann natürlich noch die bisherige Laufzeit auf Null setzen.

lg, Gerhard

Damian

Zitat von: gestein am 11 August 2021, 18:42:50
Da hast Du recht.

Ich würde einfach ein Notify nehmen und bei on/on-for-timer mir in einem Userreading in der jeweiligen Pumpe die letzte Einschaltzeit merken.
Bei einem off wird die Differenz aus aktueller Zeit und der letzten Einschaltzeit in einem anderen Userreading aufsummiert.
Das klappt auch, wenn man die Pumpe manuell ein-/ausschaltet.

Das wird aber mehr als eine Definitionszeile.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein

Das stimmt  ;)

Klingt aber schlimmer als es ist ...

Frank_Huber

Ich habe für die Solarheizung eine separate 80W Pumpe.
Damit bin ich von den Zeiten und der Steuerung unabhängig. noch dazu läuft die Filterpumpe nicht unnötig lange oder durch einen unnötigen Widerstand (Heizschleife)