Hallo liebe Gemeinde
ich habe ein DOIF für meine Poolheizung. Im ersten Teil schaltet die SolarPumpe beim erreichen der Differenz (Solarmatte-Poolwasser) ein - aber so wie jetzt nicht aus.
defmod di_Poolheizung DOIF ([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "Solar" and ([SolarDiff]>[Hysterese:state])) (set MQTT2_shellyswitch25_E098068D550B open;;sleep 1;;set SolarPumpe on;;sleep 1;;set WPPool off) DOELSEIF ([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "AUS") (set SolarPumpe off;;sleep 1;;set WPPool off) DOELSEIF ([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "WP") (set MQTT2_shellyswitch25_E098068D550B close;;sleep 1;;set SolarPumpe on;;sleep 1;;set WPPool on) DOELSE
attr di_Poolheizung room Steuerung
setstate di_Poolheizung cmd_1
setstate di_Poolheizung 2020-05-01 12:50:25 Device SolarDiff
setstate di_Poolheizung 2020-05-01 12:39:14 cmd 1
setstate di_Poolheizung 2020-05-01 12:39:14 cmd_event SolarDiff
setstate di_Poolheizung 2020-05-01 12:39:14 cmd_nr 1
setstate di_Poolheizung 2020-05-01 12:08:10 e_Hysterese_state 1
setstate di_Poolheizung 2020-05-01 12:50:25 e_SolarDiff_STATE 2.2
setstate di_Poolheizung 2020-05-01 12:09:00 e_du_Poolheizung_STATE Solar
setstate di_Poolheizung 2020-05-01 12:07:32 mode enabled
setstate di_Poolheizung 2020-05-01 12:39:14 state cmd_1
setstate di_Poolheizung 2020-05-01 12:07:32 timer_01_c01 02.05.2020 08:00:00
setstate di_Poolheizung 2020-05-01 12:07:32 timer_02_c01 01.05.2020 19:00:00
setstate di_Poolheizung 2020-05-01 12:07:32 timer_03_c02 02.05.2020 08:00:00
setstate di_Poolheizung 2020-05-01 12:07:32 timer_04_c02 01.05.2020 19:00:00
setstate di_Poolheizung 2020-05-01 12:07:32 timer_05_c03 02.05.2020 08:00:00
setstate di_Poolheizung 2020-05-01 12:07:32 timer_06_c03 01.05.2020 19:00:00
Im ersten DOIF - wo nur die SolarPumpe geschaltet wurde - hatte ich noch das DOELSE dran
([08:00-19:30] and [PoolMaster] eq "on" and [du_Richtung_Solar] eq "on" and ([SolarDiff]>[Hysterese:state])) (set SolarPumpe on) DOELSE (set SolarPumpe off)
Ich schaffe es nicht das hier einzubauen?
So
([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "Solar" and ([SolarDiff]>[Hysterese:state])) (set MQTT2_shellyswitch25_E098068D550B open;sleep 1;set SolarPumpe on;sleep 1;set WPPool off) DOELSE (set SolarPumpe off) DOELSEIF ([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "AUS") (set SolarPumpe off;sleep 1;set WPPool off) DOELSEIF ([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "WP") (set MQTT2_shellyswitch25_E098068D550B close;sleep 1;set SolarPumpe on;sleep 1;set WPPool on) DOELSE
funktioniert es nicht und wenn ich noch Klammern aussen setze schon gar nicht
(([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "Solar" and ([SolarDiff]>[Hysterese:state])) (set MQTT2_shellyswitch25_E098068D550B open;sleep 1;set SolarPumpe on;sleep 1;set WPPool off) DOELSE (set SolarPumpe off)) DOELSEIF ([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "AUS") (set SolarPumpe off;sleep 1;set WPPool off) DOELSEIF ([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "WP") (set MQTT2_shellyswitch25_E098068D550B close;sleep 1;set SolarPumpe on;sleep 1;set WPPool on) DOELSE
Was mach ich da falsch, bzw. wie kann man das bitte lösen, dass wenn die die Temperatur wieder unter diese SolarDiff fällt sich die Solarpumpe ausschaltet - analog zu meinem ersten kleinen DOIF
Danke für die Hilfe
LG
Helmut
so ich hab das ganze mal in 3 DOIFs geteilt
Solar
([08:00-19:30] and [PoolMaster] eq "on" and [du_Poolheizung] eq "Solar" and ([SolarDiff]>[Hysterese:state])) (set SolarPumpe on, set MQTT2_shellyswitch25_E098068D550B open, set WPPool off) DOELSE (set SolarPumpe off)
Hier fällt mir auf, dass wenn die Differenz noch nicht erreicht ist, auch nicht die Schaltung vom Motorventil funktioniert - das sollte doch zumindest schalten und dann muss die SolarPumpe warten bis sie dran kommt.....
WP
([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "WP") (set MQTT2_shellyswitch25_E098068D550B close;sleep 1;set SolarPumpe on;sleep 1;set WPPool on)
HIer fällt mir auf dass wenn die SolarDiff vom SolarDOIf nicht erreicht ist sich hier die SolarPumpe nicht einschaltet
AUS
([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "AUS") (set SolarPumpe off;sleep 1;set WPPool off)
Wer kann mir bitte weiterhelfen
Danke
Helmut
Da läuft was nicht rund - ich hoffe auf Hilfe
Diese Meldungen habe ich im Logfile wenn die Solarpumpe einschaltet
2020.05.01 15:23:10 3: CUL_HM set SolarPumpe on
2020.05.01 15:23:10 3: MQTT2_DEVICE set MQTT2_shellyswitch25_E098068D550B open
2020.05.01 15:23:10 3: CUL_HM set WPPool off
2020.05.01 15:23:11 3: CUL_HM set SolarPumpe on
2020.05.01 15:24:10 3: CUL_HM set SolarPumpe on
2020.05.01 15:24:10 3: MQTT2_DEVICE set MQTT2_shellyswitch25_E098068D550B open
2020.05.01 15:24:10 3: CUL_HM set WPPool off
2020.05.01 15:24:11 3: CUL_HM set SolarPumpe on
2020.05.01 15:24:11 3: MQTT2_DEVICE set MQTT2_shellyswitch25_E098068D550B open
2020.05.01 15:24:11 3: CUL_HM set WPPool off
2020.05.01 15:25:11 3: CUL_HM set SolarPumpe on
2020.05.01 15:25:11 3: MQTT2_DEVICE set MQTT2_shellyswitch25_E098068D550B open
2020.05.01 15:25:11 3: CUL_HM set WPPool off
2020.05.01 15:26:13 3: CUL_HM set SolarPumpe off
2020.05.01 15:26:16 3: CUL_HM set SolarPumpe off
Das sind doch viel zu viele Befehle?? die da ausgeführt werden?
DAS HAT SICH ERLEDIGT DA WAR EIN DO ALWAYS DRINNEN
Der Rest ist mir unerklärlich
Hallo Helmut,
du hast in den letzten beiden DOIFs (WP und AUS) die Befehle mit Semikolon getrennt - ist bei DOIF aber mit Komma.
Hast es im ersten DOIF ja schon richtig gemacht.
Sleep sollte in einem DOIF nicht nötig sein, denn es bietet mit dem wait Attribut eine bessere Alternative.
Dein
([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "WP") (set MQTT2_shellyswitch25_E098068D550B close;sleep 1;set SolarPumpe on;sleep 1;set WPPool on)
sollte dann so aussehen:
([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "WP") (set MQTT2_shellyswitch25_E098068D550B close) (set SolarPumpe on) (set WPPool on)
und dazu als Attribut:
wait 0,1,1
Gruß
Danny
also so hab ich mein Vorhaben umsetzen können.
Wird einigen sicher nicht gefallen da zu aufwändig, aber es funktioniert und tut was ich mir gewünscht habe:
Aus
defmod di_AUS DOIF ([08:00-19:00] and [PoolMaster] eq "on" and [du_Poolheizung] eq "AUS") (set SolarPumpe off) (set WPPool off)
attr di_AUS room Steuerung
attr di_AUS wait 0:1
setstate di_AUS cmd_2
setstate di_AUS 2020-05-02 12:45:53 Device du_Poolheizung
setstate di_AUS 2020-05-02 12:42:15 cmd 2
setstate di_AUS 2020-05-02 12:42:15 cmd_event du_Poolheizung
setstate di_AUS 2020-05-02 12:42:15 cmd_nr 2
setstate di_AUS 2020-05-02 10:58:23 e_PoolMaster_STATE on
setstate di_AUS 2020-05-02 12:45:53 e_du_Poolheizung_STATE Solar
setstate di_AUS 2020-05-02 09:52:27 mode enabled
setstate di_AUS 2020-05-02 12:42:15 state cmd_2
setstate di_AUS 2020-05-02 09:52:27 timer_01_c01 03.05.2020 08:00:00
setstate di_AUS 2020-05-02 09:52:27 timer_02_c01 02.05.2020 19:00:00
setstate di_AUS 2020-05-02 12:42:15 wait_timer no timer
Richtung WP
defmod di_WP DOIF ([08:00-19:30] and [PoolMaster] eq "on" and [du_Poolheizung] eq "WP") (set Hysterese 15) (set MQTT2_shellyswitch25_E098068D550B close) (set SolarPumpe on) (set WPPool on)
attr di_WP room Steuerung
attr di_WP wait 0,150,30,5
setstate di_WP cmd_2
setstate di_WP 2020-05-02 12:45:53 Device du_Poolheizung
setstate di_WP 2020-05-02 12:45:53 cmd 2
setstate di_WP 2020-05-02 12:45:53 cmd_event du_Poolheizung
setstate di_WP 2020-05-02 12:45:53 cmd_nr 2
setstate di_WP 2020-05-02 12:45:53 e_du_Poolheizung_STATE Solar
setstate di_WP 2020-05-02 11:57:06 mode enabled
setstate di_WP 2020-05-02 12:45:53 state cmd_2
setstate di_WP 2020-05-02 11:57:06 timer_01_c01 03.05.2020 08:00:00
setstate di_WP 2020-05-02 11:57:06 timer_02_c01 02.05.2020 19:30:00
setstate di_WP 2020-05-02 12:45:19 wait_timer no timer
Von der WP das MV Richtung Solar schalten
defmod di_MV_Solar DOIF ([08:00-19:30] and [PoolMaster] eq "on" and [du_Poolheizung] eq "Solar") (set MQTT2_shellyswitch25_E098068D550B open) (set WPPool off) (set Hysterese 5)
attr di_MV_Solar room Steuerung
setstate di_MV_Solar cmd_1
setstate di_MV_Solar 2020-05-02 12:45:53 Device du_Poolheizung
setstate di_MV_Solar 2020-05-02 12:45:53 cmd 1.3
setstate di_MV_Solar 2020-05-02 12:45:53 cmd_event du_Poolheizung
setstate di_MV_Solar 2020-05-02 12:45:53 cmd_nr 1
setstate di_MV_Solar 2020-05-02 12:45:53 cmd_seqnr 3
setstate di_MV_Solar 2020-05-02 12:45:53 e_du_Poolheizung_STATE Solar
setstate di_MV_Solar 2020-05-02 12:02:47 mode enabled
setstate di_MV_Solar 2020-05-02 12:45:53 state cmd_1
setstate di_MV_Solar 2020-05-02 12:02:47 timer_01_c01 03.05.2020 08:00:00
setstate di_MV_Solar 2020-05-02 12:02:47 timer_02_c01 02.05.2020 19:30:00
und dann wieder das eigentliche Solar DOIF
defmod di_SOLAR DOIF ([08:00-19:30] and [PoolMaster] eq "on" and [du_Poolheizung] eq "Solar" and ([SolarDiff]>[Hysterese:state])) (set SolarPumpe on) DOELSE (set SolarPumpe off)
attr di_SOLAR room Steuerung
attr di_SOLAR wait 0:60
setstate di_SOLAR cmd_2
setstate di_SOLAR 2020-05-02 12:52:33 Device SolarDiff
setstate di_SOLAR 2020-05-02 12:49:30 cmd 2
setstate di_SOLAR 2020-05-02 12:49:30 cmd_event SolarDiff
setstate di_SOLAR 2020-05-02 12:49:30 cmd_nr 2
setstate di_SOLAR 2020-05-02 12:45:53 e_Hysterese_state 5
setstate di_SOLAR 2020-05-02 10:58:23 e_PoolMaster_STATE on
setstate di_SOLAR 2020-05-02 12:52:33 e_SolarDiff_STATE 1.9
setstate di_SOLAR 2020-05-02 12:45:53 e_du_Poolheizung_STATE Solar
setstate di_SOLAR 2020-05-02 10:15:34 mode enabled
setstate di_SOLAR 2020-05-02 12:49:30 state cmd_2
setstate di_SOLAR 2020-05-02 10:15:34 timer_01_c01 03.05.2020 08:00:00
setstate di_SOLAR 2020-05-02 10:15:34 timer_02_c01 02.05.2020 19:30:00
setstate di_SOLAR 2020-05-02 12:49:30 wait_timer no timer
Wünsche ein schönes Wochenende - gesund bleiben
Helmut
Guten Morgen,
ich plane auch gerade eine Poolverrohrung.
Kannst Du Näheres zum Motorventil angeben?
Vielen Dank!
Manuel
Servus
ist ein Praher Motorventil (http://www.peraqua.com/de/product/3way-ball-valve-s4-solar)
Bin sehr zufrieden damit. Damit ist die Poolsteuerung noch "smarter" geworden.
Ich hoffe es wird nicht zu OT aber ich habe 2 Pumpen.
Eine für die Filteranlage am Schimmer und die 2 Pumpe am Bodenablauf und da kommt das Motorventil dazwischen um zwischen Solarmatten und WP umschalten zu können.
Sicher kann man(n) es auch vollautomatisch über die Temperatursensoren steuern. Ich hab es halbautomatisch, d.h. ICH bestimme per Knopfdruck ob Solar oder WP
LG
Helmut