Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

#gelöst# Wärmepumpe über Vorlauf/Rücklauf steuern

Begonnen von Helmi55, 10 Juni 2020, 18:16:13

Vorheriges Thema - Nächstes Thema

Helmi55

Guten Abend
ich habe für meinen Pool zusätzlich zur Solaranlage auch eine WP.
Nun möchte ich aber, wenn der Rücklauf zum Vorlauf nicht mindestens +1 Grad hat die Anlage ausschalten.
Problem: die WP braucht mindestens 1/2 Stunde bis sie auf Touren kommt. Das Ganze soll zwischen 8 Uhr und 22 Uhr geprüft werden.
Als erstes habe ich mal ein DOIF di_WPDiff angelegt:
defmod di_WPDiff DOIF ##
attr di_WPDiff state {([WP_Ruecklauf:temperature]-[WP_Vorlauf:temperature])}
attr di_WPDiff stateFormat {sprintf("%.1f",ReadingsVal("di_WPDiff","state",0))}

setstate di_WPDiff 1.2
setstate di_WPDiff 2020-06-10 13:02:49 cmd 0
setstate di_WPDiff 2020-06-10 13:03:02 mode enabled
setstate di_WPDiff 2020-06-10 18:04:28 state 1.1875


und danach dieses DOIF - aber da ist der Hund drinnen, denn erstens bekomm ich ein Warning das "on" plus Zeit nicht funktioniert
und dann wird mMn NUR nach dem on geprüft. Ich möchte aber während der gesamten Laufzeit 8-22 Uhr ausschalten, wenn die Diff unter 1 Grad fällt aber 30 Minuten nach dem Einschalten

defmod di_WPDiff_aus DOIF ([08:00-22:00] and [WPPool] eq "on" + [00:30] and [WPDiff:state] <1) (set Poolheizung "AUS")

setstate di_WPDiff_aus cmd_2
setstate di_WPDiff_aus 2020-06-10 18:14:04 cmd 2
setstate di_WPDiff_aus 2020-06-10 18:14:04 cmd_event di_WPDiff_aus
setstate di_WPDiff_aus 2020-06-10 18:14:04 cmd_nr 2
setstate di_WPDiff_aus 2020-06-10 17:15:55 mode enabled
setstate di_WPDiff_aus 2020-06-10 18:14:04 state cmd_2
setstate di_WPDiff_aus 2020-06-10 17:15:55 timer_01_c01 11.06.2020 08:00:00
setstate di_WPDiff_aus 2020-06-10 17:15:55 timer_02_c01 10.06.2020 22:00:00
setstate di_WPDiff_aus 2020-06-10 17:15:55 timer_03_c01 11.06.2020 00:30:00
setstate di_WPDiff_aus 2020-06-10 18:14:04 warning condition c01: Argument "on" isn't numeric in addition (+)\




Wer ist so nett und kann mir hier weiterhelfen - Danke
LG
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Helmi55

Hallo
wer gibt mir bitte einen Tip, wie ich das umsetzen kann.
Erst 30 Minuten nach dem Einschalten der WP soll die Diff <1 geprüft werden aber im Zeitraum von 8-22 Uhr
Mit einer fixen Zeitvorgabe würde es ja funktionieren, nur wie bring ich das mit dem "on" hin?
Geht das überhaupt mit DOIF ? oder brauch ich da ein anderes Modul ?

Danke
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Damian

Zitat von: Helmi55 am 11 Juni 2020, 10:57:54
Hallo
wer gibt mir bitte einen Tip, wie ich das umsetzen kann.
Erst 30 Minuten nach dem Einschalten der WP soll die Diff <1 geprüft werden aber im Zeitraum von 8-22 Uhr
Mit einer fixen Zeitvorgabe würde es ja funktionieren, nur wie bring ich das mit dem "on" hin?
Geht das überhaupt mit DOIF ? oder brauch ich da ein anderes Modul ?

Danke
Helmut

Du setzt ein wait auf 30 Minuten und prüfst erst in der Ausführung per IF auf die Differenz.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Helmi55

Danke
also so:
defmod di_WPDiff_aus DOIF ([08:00-22:00] and [WPPool] eq "on") (IF [WPDiff:state] <1) (set du_Poolheizung "AUS")
attr di_WPDiff_aus wait 600:0

setstate di_WPDiff_aus cmd_2
setstate di_WPDiff_aus 2020-06-11 17:11:47 Device WPPool
setstate di_WPDiff_aus 2020-06-11 17:11:23 cmd 2
setstate di_WPDiff_aus 2020-06-11 17:11:23 cmd_event WPPool
setstate di_WPDiff_aus 2020-06-11 17:11:23 cmd_nr 2
setstate di_WPDiff_aus 2020-06-11 17:11:47 e_WPPool_STATE off
setstate di_WPDiff_aus 2020-06-11 17:06:03 mode enabled
setstate di_WPDiff_aus 2020-06-11 17:11:23 state cmd_2
setstate di_WPDiff_aus 2020-06-11 13:50:18 timer_01_c01 12.06.2020 08:00:00
setstate di_WPDiff_aus 2020-06-11 13:50:18 timer_02_c01 11.06.2020 22:00:00
setstate di_WPDiff_aus 2020-06-11 17:11:22 wait_timer no timer
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Helmi55

Hallo
das ist mein letzter Stand, aber ich glaube da stimmt was mit den Klammern nicht?
defmod di_WPDiff_aus DOIF ([08:00-22:00] and [WPPool] eq "on") (IF [WPDiff:state] <1) (set du_Poolheizung "Solar")
attr di_WPDiff_aus wait 1800:0

setstate di_WPDiff_aus disabled
setstate di_WPDiff_aus 2020-06-12 07:08:20 cmd 2
setstate di_WPDiff_aus 2020-06-12 07:08:20 cmd_event di_WPDiff_aus
setstate di_WPDiff_aus 2020-06-12 07:08:20 cmd_nr 2
setstate di_WPDiff_aus 2020-06-12 07:20:32 last_cmd cmd_2
setstate di_WPDiff_aus 2020-06-12 07:20:32 mode disabled
setstate di_WPDiff_aus 2020-06-12 07:20:32 state disabled
setstate di_WPDiff_aus 2020-06-12 07:08:18 timer_01_c01 12.06.2020 08:00:00
setstate di_WPDiff_aus 2020-06-12 07:08:18 timer_02_c01 12.06.2020 22:00:00



Kannst du mir bitte helfen
Danke
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Damian

#5
Zitat von: Helmi55 am 12 Juni 2020, 07:23:18
Hallo
das ist mein letzter Stand, aber ich glaube da stimmt was mit den Klammern nicht?
defmod di_WPDiff_aus DOIF ([08:00-22:00] and [WPPool] eq "on") (IF [WPDiff:state] <1) (set du_Poolheizung "Solar")
attr di_WPDiff_aus wait 1800:0

setstate di_WPDiff_aus disabled
setstate di_WPDiff_aus 2020-06-12 07:08:20 cmd 2
setstate di_WPDiff_aus 2020-06-12 07:08:20 cmd_event di_WPDiff_aus
setstate di_WPDiff_aus 2020-06-12 07:08:20 cmd_nr 2
setstate di_WPDiff_aus 2020-06-12 07:20:32 last_cmd cmd_2
setstate di_WPDiff_aus 2020-06-12 07:20:32 mode disabled
setstate di_WPDiff_aus 2020-06-12 07:20:32 state disabled
setstate di_WPDiff_aus 2020-06-12 07:08:18 timer_01_c01 12.06.2020 08:00:00
setstate di_WPDiff_aus 2020-06-12 07:08:18 timer_02_c01 12.06.2020 22:00:00



Kannst du mir bitte helfen
Danke

Was soll denn mit den Klammern nicht stimmen?

Warum hast du Solar in Anführungszeichen gesetzt?

Edit:
Zitat(IF ([WPDiff:state] <1) (set du_Poolheizung "Solar"))
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Helmi55

Danke
So funktioniert es jetzt
defmod di_WPDiff_aus DOIF ([08:00-22:00] and [WPPool] eq "on") (IF ([WPDiff:state] < 1) (set du_Poolheizung Solar))
attr di_WPDiff_aus do always
attr di_WPDiff_aus wait 1800:0

Gruß
helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/