Hauptmenü

Fussbodenheizung via FHEM

Begonnen von en-trust, 05 September 2017, 07:51:44

Vorheriges Thema - Nächstes Thema

en-trust

Bis vor einer Woche hat alles geklappt. Beim Unterschreiten 21.5 mach die FHZ auf und bei 22.5 macht der Stellmotor zu. Jetzt fährt der Motor zwar morgens auf aber ist die 22.5 erreicht macht fhem gar nicths mehr

define HM_531770_Sw_01.Auto DOIF ([Modus_FHZ] eq "Auto" and ([04:15-21:00] and [WZ.LaCrosse:temperature] < 21.5)) (set HM_531770_Sw_01 on) \
DOELSEIF ([Modus_FHZ] eq "Auto" and ([04:15-21:00] and [WZ.LaCrosse:temperature] > 22.5)) (set HM_531770_Sw_01 off) \
DOELSEIF ([Modus_FHZ] eq "URLAUB" and ([04:15-21:00] and [WZ.LaCrosse:temperature] < 17.5)) (set HM_531770_Sw_01 on) \
DOELSEIF ([Modus_FHZ] eq "URLAUB" and ([04:15-21:00] and [WZ.LaCrosse:temperature] > 19.5)) (set HM_531770_Sw_01 off) \
DOELSEIF ([22:00-04:00] and [WZ.LaCrosse:temperature] < 17.5) (set HM_531770_Sw_01 on) \
DOELSEIF ([22:00-04:00] and [WZ.LaCrosse:temperature] > 19.5) (set HM_531770_Sw_01 off)
attr HM_531770_Sw_01.Auto group Schaltaktoren
attr HM_531770_Sw_01.Auto room CUL_HM,Wohnzimmer
attr HM_531770_Sw_01.Auto sortby 02
attr HM_531770_Sw_01.Auto wait 0:3600


In den Readings von HM_531770_Sw_01.Auto steht...

Readings
Device

WZ.LaCrosse

2017-11-20 19:29:05
cmd

1

2017-11-20 04:15:00
cmd_event

timer_1

2017-11-20 04:15:00
cmd_nr

1

2017-11-20 04:15:00
e_GT.LaCrosse_temperature

17.4

2017-09-07 19:22:52
e_Modus_FHZ_STATE

Auto

2017-10-24 21:22:23
e_WZ.LaCrosse_temperature

22.8

2017-11-20 19:29:05
state

cmd_1

2017-11-20 04:15:00

Eisix

Stimmen Datum und Uhrzeit bei den Timern?
Auf welchem cmd steht das DOIF?

Gruß
Eisix

en-trust

define HM_5316F7_Sw_02.Auto DOIF ([Modus_FHZ] eq "Auto" and ([04:15-18:30] and [KZ.LaCrosse:temperature] < 21.0)) (set HM_5316F7_Sw_02 on) \
DOELSEIF ([Modus_FHZ] eq "Auto" and ([04:15-18:30] and [KZ.LaCrosse:temperature] > 22.5)) (set HM_5316F7_Sw_02 off) \
DOELSEIF ([Modus_FHZ] eq "URLAUB" and ([04:15-18:30] and [KZ.LaCrosse:temperature] < 17.5)) (set HM_5316F7_Sw_02 on) \
DOELSEIF ([Modus_FHZ] eq "URLAUB" and ([04:15-18:30] and [KZ.LaCrosse:temperature] > 19.5)) (set HM_5316F7_Sw_02 off) \
DOELSEIF ([19:30-04:00] and [KZ.LaCrosse:temperature] < 17.5) (set HM_5316F7_Sw_02 on) \
DOELSEIF ([19:30-04:00] and [KZ.LaCrosse:temperature] > 19.5) (set HM_5316F7_Sw_02 off)
attr HM_5316F7_Sw_02.Auto group Schaltaktoren
attr HM_5316F7_Sw_02.Auto room CUL_HM,Kinderzimmer
attr HM_5316F7_Sw_02.Auto sortby 02
attr HM_5316F7_Sw_02.Auto wait 0:3600


Momentan zeigt die Temperatur 20.8 an und der Stellmotor ist aus, obwohl er eingeschaltet sein müsste.

HM_5316F7_Sw_02.Auto steht in fhem auf initialize und timer_01_c01 4:15 22.11. und timer_02_c01 auf 18:30 22.11 Timer stimmen alle. DOIF steht auf cmd_2

Eisix

Eventuell fehlt das event das ein Umschalten auslöst. Wie verhält sich der Temperatursensor. Sendet er nur bei Temperaturänderung oder auch in bestimmten Zeitabständen?
Zum debuggen kannst auch mit setreading den Temperaturwert manuell setzen und dann sehen was passiert.


setreading KZ.LaCrosse temperature 20.0
setreading KZ.LaCrosse temperature 23.0


Aber nimm besser den wait vorher raus.

Gruß
Eisix

en-trust

Ich habe am Wochenende mal das Wohnzimmer gecheckt. Ich habe den Stellmotor mal händisch abgeschalten. 4:15 hat fhem diesen wieder eingeschalten. Aber nachdem die Temperatur bei 22.5 war, wurde dieser von fhem nicht abgeschalten. Selbst bei 23.5 tat sich nichts.

#
# Wohnzimmer - Heizungregelung (Automatik- / Urlaubsmodus)
#                                   
define HM_531770_Sw_01.Auto DOIF ([Modus_FHZ] eq "Auto" and ([04:15-21:00] and [WZ.LaCrosse:temperature] < 21.5)) (set HM_531770_Sw_01 on) \
DOELSEIF ([Modus_FHZ] eq "Auto" and ([04:15-21:00] and [WZ.LaCrosse:temperature] > 22.5)) (set HM_531770_Sw_01 off) \
DOELSEIF ([Modus_FHZ] eq "URLAUB" and ([04:15-21:00] and [WZ.LaCrosse:temperature] < 18.5)) (set HM_531770_Sw_01 on) \
DOELSEIF ([Modus_FHZ] eq "URLAUB" and ([04:15-21:00] and [WZ.LaCrosse:temperature] > 19.5)) (set HM_531770_Sw_01 off) \
DOELSEIF ([22:00-04:00] and [WZ.LaCrosse:temperature] < 19.5) (set HM_531770_Sw_01 on) \
DOELSEIF ([22:00-04:00] and [WZ.LaCrosse:temperature] > 20.5) (set HM_531770_Sw_01 off)
attr HM_531770_Sw_01.Auto group Schaltaktoren
attr HM_531770_Sw_01.Auto room CUL_HM,Wohnzimmer
attr HM_531770_Sw_01.Auto sortby 02
attr HM_531770_Sw_01.Auto wait 0:3600
#
# Wohnzimmer - Heizungregelung (Sommermodus)
#
define HM_531770_Sw_01.Off DOIF ([Modus_FHZ] eq "AUS") (set HM_531770_Sw_01.Auto disable) DOELSEIF ([Modus_FHZ] ne "AUS") (set HM_531770_Sw_01.Auto initialize)
attr HM_531770_Sw_01.Off group Schaltaktoren
attr HM_531770_Sw_01.Off room CUL_HM,Wohnzimmer
attr HM_531770_Sw_01.Off sortby 03


Badezimmer hingegen klappt. Ich kann aber auch keinen Unterschied außer die MotorId selbst im Code erkennen.

#
# Badezimmer - Heizungregelung (Automatik- / Urlaubsmodus)
#                                   
define HM_5316F7_Sw_01.Auto DOIF ([Modus_FHZ] eq "Auto" and ([04:15-21:00] and [BZ.LaCrosse:temperature] < 21.5)) (set HM_5316F7_Sw_01 on) \
DOELSEIF ([Modus_FHZ] eq "Auto" and ([04:15-21:00] and [BZ.LaCrosse:temperature] > 22.5)) (set HM_5316F7_Sw_01 off) \
DOELSEIF ([Modus_FHZ] eq "URLAUB" and ([04:15-21:00] and [BZ.LaCrosse:temperature] < 18.5)) (set HM_5316F7_Sw_01 on) \
DOELSEIF ([Modus_FHZ] eq "URLAUB" and ([04:15-21:00] and [BZ.LaCrosse:temperature] > 19.5)) (set HM_5316F7_Sw_01 off) \
DOELSEIF ([22:00-04:00] and [BZ.LaCrosse:temperature] < 20.5) (set HM_5316F7_Sw_01 on) \
DOELSEIF ([22:00-04:00] and [BZ.LaCrosse:temperature] > 21.0) (set HM_5316F7_Sw_01 off)
attr HM_5316F7_Sw_01.Auto group Schaltaktoren
attr HM_5316F7_Sw_01.Auto room CUL_HM,Badezimmer
attr HM_5316F7_Sw_01.Auto sortby 02
attr HM_5316F7_Sw_01.Auto wait 0:3600
#
# Badezimmer - Heizungregelung (Sommermodus)
#
define HM_5316F7_Sw_01.Off DOIF ([Modus_FHZ] eq "AUS") (set HM_5316F7_Sw_01.Auto disable) DOELSEIF ([Modus_FHZ] ne "AUS") (set HM_5316F7_Sw_01.Auto initialize)
attr HM_5316F7_Sw_01.Off group Schaltaktoren
attr HM_5316F7_Sw_01.Off room CUL_HM,Badezimmer
attr HM_5316F7_Sw_01.Off sortby 03


Ist mir ein Rätsel.

amenomade

Ein "list" vom DOIF, wenn er sich in einem falschen Zustand befindet, ist immer hilfreich, um zu gucken, was geschaltet hat.

M.M.n. fehlt in deinem DOIF ein leeres DOELSE.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Eisix

Wenn dein DOIF auf cmd_2 steht hat Fhem ja korrekt reagiert und du müßtest den Schaltvorgang im Log finden. Was wiederum bedeuten würde dein Schaltkommando wird nicht oder nicht immer an deinen Stellmotor übertragen.
Den Fall hatte ich auch schon allerdings mit einem Zwave Zwischenstecker in einer Hausecke. Habe keine HM Komponenten aber da gibt es doch bestimmt auch sowas wie einen Repeater um testweise die Reichweite zu verbessern?

Wie schon geschrieben teste mit dem setzen der Raumtemperatur und schau dir das log an. 

Gruß
Eisix

en-trust

#37
In den Probably steht...

HM_531770_Sw_01.Auto
   cmd_1    
DOIF
HM_531770_Sw_01.Off
   cmd_2    
DOIF

Fürs Kinderzimmer (derzeit off), was funktioniert steht jetzt...

HM_5316F7_Sw_02.Auto
   cmd_6    
DOIF
HM_5316F7_Sw_02.Off
   cmd_2    
DOIF

Damian

Ich kann nur empfehlen nicht alles in ein DOIF zu packen, wenn man es modular aufbauen kann.

Bei mir läuft seit Jahren unsere Fußbodenheizung mit einem DOIF für das zeitabhängige Setzen der Vorgabetemperatur für jedes Zimmer und eine Zweipunktregelung für jedes Zimmer per THRESHOLD bei 1-wire bzw. direkt gepairt bei HM.

Diese Lösung lässt sich wesentlich einfacher pflegen und visualisieren. Einige Zimmer laufen noch mit 1-wire und einige über HM. Das DOIF konnte weitgehend erhalten bleiben.



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Happy Fhem User

Das Ergebnis von

list HM_5316F7_Sw_01.Auto

in "code" Blöcken (Symbol # im Editor) wäre trotzdem interessant...