Neues Modul - Heating_Control, WeekdayTimer

Begonnen von Dietmar63, 04 Januar 2013, 19:42:26

Vorheriges Thema - Nächstes Thema

Dietmar63

habe folgedes definiert - heute ist ein Feiertag - kann keinen Fehler erkennen:

define HC_WZ_WE               Heating_Control WZ_hzg de 08:05|20.0 21:05|16.0 {if ($we){&SET_FHT("$NAME","$EVENT")}} ;
attr   HC_WZ_WE               room HeizungsKeller ;
attr   HC_WZ_WE               verbose 5 ;
define HC_WZ_WT               Heating_Control WZ_hzg de 06:05|20.0 21:05|16.0 {if (!$we){&SET_FHT("$NAME","$EVENT")}} ;
attr   HC_WZ_WT               room HeizungsKeller ;
attr   HC_WZ_WT               verbose 5 ;



015.11.23 21:05:00 4: [HC_WZ_WE] command: {if ($we){&SET_FHT("$NAME","$EVENT")}} executed
2015.11.23 21:05:00 4: [HC_WZ_WE] aktParam: newParam:16.0 - is  not disabled
2015.11.23 21:05:00 4: [HC_WZ_WE] Update   - timer seems to be active today: 0123456|21:05|16.0
2015.11.23 21:05:00 3: ret---condition--------->1
2015.11.23 21:05:00 5: [HC_WZ_WE] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:05:00 5: [HC_WZ_WE] list of window sensors found: 'HC_WZ_WE'
2015.11.23 21:05:00 3: set WZ_hzg desired-temp 16.0
2015.11.23 21:05:00 4: [HC_WZ_WT] command: {if (!$we){&SET_FHT("$NAME","$EVENT")}} executed
2015.11.23 21:05:00 4: [HC_WZ_WT] aktParam: newParam:16.0 - is  not disabled
2015.11.23 21:05:00 4: [HC_WZ_WT] Update   - timer seems to be active today: 0123456|21:05|16.0
2015.11.23 21:05:00 3: ret---condition--------->1
2015.11.23 21:05:00 5: [HC_WZ_WT] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:05:00 5: [HC_WZ_WT] list of window sensors found: 'HC_WZ_WT'
2015.11.23 21:00:00 3: FS20 set MusikWlan on
2015.11.23 21:00:00 3: FS20 set Musik on
2015.11.23 21:00:00 3: [NAS] waking  NAS with MAC 00:24:A5:A6:10:E0 IP 192.168.2.196
2015.11.23 21:00:00 3: Auto off for NAS at Next: 01:00:00
2015.11.23 21:00:00 3: [NAS] set NAS on
2015.11.23 20:26:04 5: [HC_WZ_WT] setting  Timer: HC_WZ_WT_2 2015-11-23 21:05:00
2015.11.23 20:26:04 4: [HC_WZ_WT] setTimer - timer seems to be active today: 0123456|21:05|16.0
2015.11.23 20:26:04 3: ret---condition--------->1
2015.11.23 20:26:04 5: [HC_WZ_WT] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 20:26:04 3: ret---condition--------->1
2015.11.23 20:26:04 5: [HC_WZ_WT] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 20:26:04 4: [HC_WZ_WT] no switch in the yesterdays because of the devices type(WZ_hzg is not recognized as heating) - use attr switchInThePast
2015.11.23 20:26:04 5: [HC_WZ_WT] setting  Timer: HC_WZ_WT_SetTimerOfDay 2015-11-24 00:00:05
2015.11.23 20:26:04 5: [HC_WZ_WT] removing Timer: HC_WZ_WT_SetTimerOfDay
2015.11.23 20:26:04 4: [HC_WZ_WT] 06:05:00 20.0, 21:05:00 16.0 (Profil 6: Samstag)
2015.11.23 20:26:04 4: [HC_WZ_WT] 06:05:00 20.0, 21:05:00 16.0 (Profil 5: Freitag)
2015.11.23 20:26:04 4: [HC_WZ_WT] 06:05:00 20.0, 21:05:00 16.0 (Profil 4: Donnerstag)
2015.11.23 20:26:04 4: [HC_WZ_WT] 06:05:00 20.0, 21:05:00 16.0 (Profil 3: Mittwoch)
2015.11.23 20:26:04 4: [HC_WZ_WT] 06:05:00 20.0, 21:05:00 16.0 (Profil 2: Dienstag)
2015.11.23 20:26:04 4: [HC_WZ_WT] 06:05:00 20.0, 21:05:00 16.0 (Profil 1: Montag)
2015.11.23 20:26:04 4: [HC_WZ_WT] 06:05:00 20.0, 21:05:00 16.0 (Profil 0: Sonntag)
2015.11.23 20:26:04 4: [HC_WZ_WT] 07:16:24 16:56:13 Montag
2015.11.23 20:26:04 3: [HC_WZ_WT] device <WZ_hzg> in fhem not defined, but accepted
2015.11.23 20:26:04 5: [HC_WZ_WT] removing Timer: HC_WZ_WT_2
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

jetzt so - heute kein Feiertag - glauge auch dass es korrekt läuft - gebe die Version frei, damit mit verbose 5 ein besseres Log erstellt werden kann:

define HC_WZ_WE               Heating_Control WZ_hzg de 21:28|20.0 21:29|16.0 {if ($we){&SET_FHT("$NAME","$EVENT")}} ;
attr   HC_WZ_WE               room HeizungsKeller ;
attr   HC_WZ_WE               verbose 5 ;
define HC_WZ_WT               Heating_Control WZ_hzg de 21:28|20.0 21:29|16.0 {if (!$we){&SET_FHT("$NAME","$EVENT")}} ;
attr   HC_WZ_WT               room HeizungsKeller ;
attr   HC_WZ_WT               verbose 5 ;



2015.11.23 21:29:00 3: set WZ_hzg desired-temp 16.0
2015.11.23 21:29:00 4: [HC_WZ_WT] command: {if (!$we){&SET_FHT("$NAME","$EVENT")}} executed
2015.11.23 21:29:00 4: [HC_WZ_WT] aktParam: newParam:16.0 - is  not disabled
2015.11.23 21:29:00 4: [HC_WZ_WT] Update   - timer seems to be active today: 0123456|21:29|16.0
2015.11.23 21:29:00 3: ret---condition--------->1
2015.11.23 21:29:00 5: [HC_WZ_WT] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:29:00 5: [HC_WZ_WT] list of window sensors found: 'HC_WZ_WT'
2015.11.23 21:29:00 4: [HC_WZ_WE] command: {if ($we){&SET_FHT("$NAME","$EVENT")}} executed
2015.11.23 21:29:00 4: [HC_WZ_WE] aktParam: newParam:16.0 - is  not disabled
2015.11.23 21:29:00 4: [HC_WZ_WE] Update   - timer seems to be active today: 0123456|21:29|16.0
2015.11.23 21:29:00 3: ret---condition--------->1
2015.11.23 21:29:00 5: [HC_WZ_WE] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:29:00 5: [HC_WZ_WE] list of window sensors found: 'HC_WZ_WE'
2015.11.23 21:28:00 3: set WZ_hzg desired-temp 20.0
2015.11.23 21:28:00 4: [HC_WZ_WT] command: {if (!$we){&SET_FHT("$NAME","$EVENT")}} executed
2015.11.23 21:28:00 4: [HC_WZ_WT] aktParam: newParam:20.0 - is  not disabled
2015.11.23 21:28:00 4: [HC_WZ_WT] Update   - timer seems to be active today: 0123456|21:28|20.0
2015.11.23 21:28:00 3: ret---condition--------->1
2015.11.23 21:28:00 5: [HC_WZ_WT] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:28:00 5: [HC_WZ_WT] list of window sensors found: 'HC_WZ_WT'
2015.11.23 21:28:00 4: [HC_WZ_WE] command: {if ($we){&SET_FHT("$NAME","$EVENT")}} executed
2015.11.23 21:28:00 4: [HC_WZ_WE] aktParam: newParam:20.0 - is  not disabled
2015.11.23 21:28:00 4: [HC_WZ_WE] Update   - timer seems to be active today: 0123456|21:28|20.0
2015.11.23 21:28:00 3: ret---condition--------->1
2015.11.23 21:28:00 5: [HC_WZ_WE] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:28:00 5: [HC_WZ_WE] list of window sensors found: 'HC_WZ_WE'
2015.11.23 21:27:49 5: [HC_WZ_WT] setting  Timer: HC_WZ_WT_2 2015-11-23 21:29:00
2015.11.23 21:27:49 4: [HC_WZ_WT] setTimer - timer seems to be active today: 0123456|21:29|16.0
2015.11.23 21:27:49 3: ret---condition--------->1
2015.11.23 21:27:49 5: [HC_WZ_WT] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:27:49 5: [HC_WZ_WT] setting  Timer: HC_WZ_WT_1 2015-11-23 21:28:00
2015.11.23 21:27:49 4: [HC_WZ_WT] setTimer - timer seems to be active today: 0123456|21:28|20.0
2015.11.23 21:27:49 3: ret---condition--------->1
2015.11.23 21:27:49 5: [HC_WZ_WT] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:27:49 4: [HC_WZ_WT] no switch in the yesterdays because of the devices type(WZ_hzg is not recognized as heating) - use attr switchInThePast
2015.11.23 21:27:49 5: [HC_WZ_WT] setting  Timer: HC_WZ_WT_SetTimerOfDay 2015-11-24 00:00:05
2015.11.23 21:27:49 5: [HC_WZ_WT] removing Timer: HC_WZ_WT_SetTimerOfDay
2015.11.23 21:27:49 4: [HC_WZ_WT] 21:28:00 20.0, 21:29:00 16.0 (Profil 6: Samstag)
2015.11.23 21:27:49 4: [HC_WZ_WT] 21:28:00 20.0, 21:29:00 16.0 (Profil 5: Freitag)
2015.11.23 21:27:49 4: [HC_WZ_WT] 21:28:00 20.0, 21:29:00 16.0 (Profil 4: Donnerstag)
2015.11.23 21:27:49 4: [HC_WZ_WT] 21:28:00 20.0, 21:29:00 16.0 (Profil 3: Mittwoch)
2015.11.23 21:27:49 4: [HC_WZ_WT] 21:28:00 20.0, 21:29:00 16.0 (Profil 2: Dienstag)
2015.11.23 21:27:49 4: [HC_WZ_WT] 21:28:00 20.0, 21:29:00 16.0 (Profil 1: Montag)
2015.11.23 21:27:49 4: [HC_WZ_WT] 21:28:00 20.0, 21:29:00 16.0 (Profil 0: Sonntag)
2015.11.23 21:27:49 4: [HC_WZ_WT] 07:16:24 16:56:13 Montag
2015.11.23 21:27:49 3: [HC_WZ_WT] device <WZ_hzg> in fhem not defined, but accepted
2015.11.23 21:27:49 5: [HC_WZ_WT] removing Timer: HC_WZ_WT_2
2015.11.23 21:27:15 5: [HC_WZ_WE] setting  Timer: HC_WZ_WE_2 2015-11-23 21:29:00
2015.11.23 21:27:15 4: [HC_WZ_WE] setTimer - timer seems to be active today: 0123456|21:29|16.0
2015.11.23 21:27:15 3: ret---condition--------->1
2015.11.23 21:27:15 5: [HC_WZ_WE] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:27:15 5: [HC_WZ_WE] setting  Timer: HC_WZ_WE_1 2015-11-23 21:28:00
2015.11.23 21:27:15 4: [HC_WZ_WE] setTimer - timer seems to be active today: 0123456|21:28|20.0
2015.11.23 21:27:15 3: ret---condition--------->1
2015.11.23 21:27:15 5: [HC_WZ_WE] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2015.11.23 21:27:15 4: [HC_WZ_WE] no switch in the yesterdays because of the devices type(WZ_hzg is not recognized as heating) - use attr switchInThePast
2015.11.23 21:27:15 5: [HC_WZ_WE] setting  Timer: HC_WZ_WE_SetTimerOfDay 2015-11-24 00:00:05
2015.11.23 21:27:15 5: [HC_WZ_WE] removing Timer: HC_WZ_WE_SetTimerOfDay
2015.11.23 21:27:15 4: [HC_WZ_WE] 21:28:00 20.0, 21:29:00 16.0 (Profil 6: Samstag)
2015.11.23 21:27:15 4: [HC_WZ_WE] 21:28:00 20.0, 21:29:00 16.0 (Profil 5: Freitag)
2015.11.23 21:27:15 4: [HC_WZ_WE] 21:28:00 20.0, 21:29:00 16.0 (Profil 4: Donnerstag)
2015.11.23 21:27:15 4: [HC_WZ_WE] 21:28:00 20.0, 21:29:00 16.0 (Profil 3: Mittwoch)
2015.11.23 21:27:15 4: [HC_WZ_WE] 21:28:00 20.0, 21:29:00 16.0 (Profil 2: Dienstag)
2015.11.23 21:27:15 4: [HC_WZ_WE] 21:28:00 20.0, 21:29:00 16.0 (Profil 1: Montag)
2015.11.23 21:27:15 4: [HC_WZ_WE] 21:28:00 20.0, 21:29:00 16.0 (Profil 0: Sonntag)
2015.11.23 21:27:15 4: [HC_WZ_WE] 07:16:24 16:56:13 Montag
2015.11.23 21:27:15 3: [HC_WZ_WE] device <WZ_hzg> in fhem not defined, but accepted
2015.11.23 21:27:15 5: [HC_WZ_WE] removing Timer: HC_WZ_WE_2
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Petrosilius Zwackelmann

Hallo Dietmar,

danke für die Tests - vielleicht helfen folgende Daten:
Ich habe 8 Räume mit HC gesteuert - 7 davon sind FHT's - 1 Raum (WZ) ist Homematic.

Ich habe 3 Räume auf Verbose5 gesetzt und den Output bei Wechsel des HOME_Status in zwei txt Files gespeichert.
(Über ein notify werden bei Änderungen von HOME_Status das SUB Heating_Control_SetAllTemps() aufgerufen)

Wenn ich das alles richtig interpretiere wird jeweils nur ein Raum korrekt angesteuert.
Welcher dies ist ist zufällig unabhänig ob FHT oder Homematic...

Du hattest noch ein List benötigt...
Diese sind auch im Anhang.

Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Dietmar63

Zitat von: Petrosilius Zwackelmann am 23 November 2015, 23:43:45
Hallo Dietmar,

danke für die Tests - vielleicht helfen folgende Daten:
Ich habe 8 Räume mit HC gesteuert - 7 davon sind FHT's - 1 Raum (WZ) ist Homematic.

Ich habe 3 Räume auf Verbose5 gesetzt und den Output bei Wechsel des HOME_Status in zwei txt Files gespeichert.
(Über ein notify werden bei Änderungen von HOME_Status das SUB Heating_Control_SetAllTemps() aufgerufen)

Wenn ich das alles richtig interpretiere wird jeweils nur ein Raum korrekt angesteuert.
Welcher dies ist ist zufällig unabhänig ob FHT oder Homematic...

Du hattest noch ein List benötigt...
Diese sind auch im Anhang.

Gruß Manuel

Ich habe das Logging verbessert - kannst du damit Logs erstellen. Am besten von konkreten nicht Schalten Situationen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Petrosilius Zwackelmann

Hallo Dietmar, im trunk sehe ich nur ein Update bei 98_WeekdayTimer.pm...Kommt das dann noch für 98_Heating_Control.pm?
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Dietmar63

HC nutzt fast sämtliche Funktionen von WD
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Petrosilius Zwackelmann

Hallo Dietmar,

im Anhang nochmals ein Wechsel des HOME_Status .... nur eine Heizung wir hochgestellt.
Verwendet wurden Weekday Timer und Heating Control in der letzten Version.
Das normale Wochenprogramm funktioniert.
Siehst du einen Fehler?

Gruß Manuel

FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Dietmar63

Welcher HD/WD ist denn falsch, deiner Meinung nach?
Ich habe 2 Sekunden dein Protokoll angesehen und keinen Fehler festgestellt.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Petrosilius Zwackelmann

Hallo Dietmar,

es wird nur klar wenn man beide Files (Aktionen bei HOME_Status = 0 (Erwartung alle Heizungen werden auf 17°C gestellt.)
HOME_Status = 1 --> Heizung wird auf das normale Wochenprogramm gestellt.

In folgendem File sieht man nur eine Heizung (Homematic) wird auf 17°C gestellt...
2015.11.25 00:18:32 3: CUL_HM set WZ_hzg desired-temp 17

Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

persching

Hallo Dietmar,
ich hatte ja vor ein paar Wochen schon geschrieben, dass mit mehreren HeatingControl je Thermostat es nicht funktioniert, wenn man setallTemps() verwendet. Jetzt habe ich alternativ dazu in der 99_myUtils die ganze Logik nachprogrammiert, so dass immer nur ein HeatingControl aufgerufen wird also z.B. Heating_Control_SetTemp("HC_Bad_Normal").
Das funktioniert bei allen Räumen, außer bei meinem Bad, weil es dort nicht ein einziges Thermostat ist, sondern ein structure mit 3 Thermostaten. Im normalen Ablauf ist der Aufruf mit dem structure (OG_Bad_T ist der Name mit den Thermostaten OG_Bad_Badew_T, OG_Bad_Klo_T, OG_Bad_Waschb_T) absolut kein Problem, aber beim SetTemp reagieren die Thermostate nicht, obwohl im Log steht, dass alles ausgeführt wurde:

2015.12.06 15:31:29 5: Cmd: >{ ResetHeatingControl }<
2015.12.06 15:31:29 1: HC_Bad_Off_Profile Auto
2015.12.06 15:31:29 5: [HC_Bad_Normal] removing Timer: HC_Bad_Normal_6
2015.12.06 15:31:29 5: [HC_Bad_Normal] removing Timer: HC_Bad_Normal_4
2015.12.06 15:31:29 5: [HC_Bad_Normal] removing Timer: HC_Bad_Normal_3
2015.12.06 15:31:29 5: [HC_Bad_Normal] removing Timer: HC_Bad_Normal_7
2015.12.06 15:31:29 4: [HC_Bad_Normal] device type structure: recognized, setModifier:
2015.12.06 15:31:29 4: [HC_Bad_Normal] no switch in the yesterdays because of the devices type(OG_Bad_T is not recognized as heating) - use attr switchInThePast
2015.12.06 15:31:29 5: Triggering HC_Bad_Normal (1 changes)
2015.12.06 15:31:29 5: Notify loop for HC_Bad_Normal inactive
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: battStatus: not on any display, ignoring notify
2015.12.06 15:31:29 5: [HC_Bad_Normal] condition: {my $days={};;map{$days->{$_}=1}(1,2,3,4,5);;;;( 1 && (defined $days->{$wday}))}
2015.12.06 15:31:29 5: Cmd: >{my $days={};map{$days->{$_}=1}(1,2,3,4,5);;( 1 && (defined $days->{$wday}))}<
2015.12.06 15:31:29 5: [HC_Bad_Normal] result of condition:
2015.12.06 15:31:29 5: [HC_Bad_Normal] condition: {my $days={};;map{$days->{$_}=1}(1,2,3,4,5);;;;( 1 && (defined $days->{$wday}))}
2015.12.06 15:31:29 5: Cmd: >{my $days={};map{$days->{$_}=1}(1,2,3,4,5);;( 1 && (defined $days->{$wday}))}<
2015.12.06 15:31:29 5: [HC_Bad_Normal] result of condition:
2015.12.06 15:31:29 5: [HC_Bad_Normal] condition: {my $days={};;map{$days->{$_}=1}(1,2,3,4,5);;;;( 1 && (defined $days->{$wday}))}
2015.12.06 15:31:29 5: Cmd: >{my $days={};map{$days->{$_}=1}(1,2,3,4,5);;( 1 && (defined $days->{$wday}))}<
2015.12.06 15:31:29 5: [HC_Bad_Normal] result of condition:
2015.12.06 15:31:29 4: [HC_Bad_Normal] setTimer - timer seems to be NOT active today: 12345|19:30|20
2015.12.06 15:31:29 5: [HC_Bad_Normal] setting  Timer: HC_Bad_Normal_3 2015-12-06 19:30:00
2015.12.06 15:31:29 5: [HC_Bad_Normal] condition: {my $days={};;map{$days->{$_}=1}(1,2,3,4,5);;;;( 1 && (defined $days->{$wday}))}
2015.12.06 15:31:29 5: Cmd: >{my $days={};map{$days->{$_}=1}(1,2,3,4,5);;( 1 && (defined $days->{$wday}))}<
2015.12.06 15:31:29 5: [HC_Bad_Normal] result of condition:
2015.12.06 15:31:29 4: [HC_Bad_Normal] setTimer - timer seems to be NOT active today: 12345|21:30|19.5
2015.12.06 15:31:29 5: [HC_Bad_Normal] setting  Timer: HC_Bad_Normal_4 2015-12-06 21:30:00
2015.12.06 15:31:29 5: [HC_Bad_Normal] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} ||  $we))}
2015.12.06 15:31:29 5: Cmd: >{my $days={};map{$days->{$_}=1}();;( 1 && (defined $days->{$wday} ||  $we))}<
2015.12.06 15:31:29 5: [HC_Bad_Normal] result of condition:1
2015.12.06 15:31:29 5: Triggering HC_Bad_Normal (1 changes)
2015.12.06 15:31:29 5: Notify loop for HC_Bad_Normal active
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: battStatus: not on any display, ignoring notify
2015.12.06 15:31:29 5: [HC_Bad_Normal] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} ||  $we))}
2015.12.06 15:31:29 5: Cmd: >{my $days={};map{$days->{$_}=1}();;( 1 && (defined $days->{$wday} ||  $we))}<
2015.12.06 15:31:29 5: [HC_Bad_Normal] result of condition:1
2015.12.06 15:31:29 5: Triggering HC_Bad_Normal (1 changes)
2015.12.06 15:31:29 5: Notify loop for HC_Bad_Normal active
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: battStatus: not on any display, ignoring notify
2015.12.06 15:31:29 4: [HC_Bad_Normal] setTimer - timer seems to be active today: 7|19:00|20
2015.12.06 15:31:29 5: [HC_Bad_Normal] setting  Timer: HC_Bad_Normal_6 2015-12-06 19:00:00
2015.12.06 15:31:29 5: [HC_Bad_Normal] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} ||  $we))}
2015.12.06 15:31:29 5: Cmd: >{my $days={};map{$days->{$_}=1}();;( 1 && (defined $days->{$wday} ||  $we))}<
2015.12.06 15:31:29 5: [HC_Bad_Normal] result of condition:1
2015.12.06 15:31:29 5: Triggering HC_Bad_Normal (1 changes)
2015.12.06 15:31:29 5: Notify loop for HC_Bad_Normal active
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: battStatus: not on any display, ignoring notify
2015.12.06 15:31:29 4: [HC_Bad_Normal] setTimer - timer seems to be active today: 7|22:00|19.5
2015.12.06 15:31:29 5: [HC_Bad_Normal] setting  Timer: HC_Bad_Normal_7 2015-12-06 22:00:00
2015.12.06 15:31:29 5: Triggering HC_Bad_Normal (1 changes)
2015.12.06 15:31:29 5: Notify loop for HC_Bad_Normal nextUpdate: 2015-12-06 19:00:00
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: battStatus: not on any display, ignoring notify
2015.12.06 15:31:29 5: Triggering HC_Bad_Normal (1 changes)
2015.12.06 15:31:29 5: Notify loop for HC_Bad_Normal nextValue: 20
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:29 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:30 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:30 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:30 5: Notify from Device: HC_Bad_Normal recieved
2015.12.06 15:31:30 5: battStatus: not on any display, ignoring notify
2015.12.06 15:31:30 3: Heating_Control_SetTimer() for HC_Bad_Normal done!


Kann ich da was tun, damit das auch funktioniert?


Gruß persching

Dietmar63

Ohne die zugehörige DefinitionDefinition kann ich nix machen.
Welchen Typ haben die Thermostate in der strukture?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

persching

Definition des HeatingContol:


define HC_Bad_Normal Heating_Control OG_Bad_T mo-fr|05:05|22 mo-fr|06:30|20 mo-fr|19:30|20 mo-fr|21:30|19.5 $we|08:00|21 $we|19:00|20 $we|22:00|19.5 { fhem("set $NAME desiredTemperature $EVENT") if ((ReadingsVal("KAT","state","")==0)&&(ReadingsVal("HC_Bad_Off_Profile","state","") eq "Auto"))}
attr HC_Bad_Normal group Profile
attr HC_Bad_Normal room R02 Badezimmer
attr HC_Bad_Normal windowSensor OG_Bad_Fensterkontakt


Definition des structure:


define OG_Bad_T structure MAX OG_Bad_Klo_T OG_Bad_Waschb_T OG_Bad_Badew_T
attr OG_Bad_T room R02 Badezimmer



Alle Thermostate sind vom Typ MAX.

Dietmar63

HC kann in structures nicht "hineinsehen", erkennt also nicht, dass es sich um Heizungen handelt.
Heizungen sollen aber immer auch den vergangenen Zustand schalten.

Dies kannst du mit dem Attribut switchInThePast erreichen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

persching

Super, funktioniert perfekt! Danke für die schnelle Hilfe!

m8ichael

#719
Hallo,

ich setze das Modul nun auch bereits seit einigen Tagen ein und es funktioniert soweit. Einziges Problem ist, dass ich die Verzögerungsfunktion nicht wirklich zum Laufen bekomme...  :-\

So habe ich im jeweiligen HC folgendes definiert:


define hc.eg.wz.WE Heating_Control dm.eg.wz.Heizwert de Mo-So|10:00|20 Mo-So|18:00|22 Mo-So|20:00|17 {\
if ((iswe() && (Value("dmHeizmodus") eq "Automatisch"))) {\
  fhem("set $NAME $EVENT");;\
}\
}
attr hc.eg.wz.WE delayedExecutionCond isDelayed("%HEATING_CONTROL","%WEEKDAYTIMER","%TIME","%NAME","%EVENT")
attr hc.eg.wz.WE switchInThePast 1


Die Funktion "isDelayed" habe ich mal probehalber aus der Doku entnommen und ein wenig ergänzt:


sub isDelayed($$$$$) {
    my($hc, $wdt, $tim, $nam, $event ) = @_;
    my $delay=0;
    if ($nam eq "dm.eg.wz.Heizwert") {
fhem("set dmTest $tim");
        if ($tim eq "22:00") {
            if ((Value("eg.wz.Hauptbeleuchtung") eq "on") || (Value("eg.wz.Esstisch") eq "on") || (Value("div.Schalter1") eq "on"))
{
                $delay=1;
            }
        }   
   }   
   return $delay;   
}



Idee ist erst einmal, dass die Heizung solange eingeschaltet bleibt, wie irgendein Licht eingeschaltet ist. Um zu prüfen, ob die Schleife auch durchlaufen wird, setze ich einen Dummy "dmTest" mit der Variablen $tim, welche wiederum weiter oben im Attribut %Time übergeben wird.

Problem ist nun, dass offenbar der Ausdruck "%Time" nicht mit der jeweiligen Uhrzeit ersetzt wird, d.h., im Dummy landet tatsächlich "%TIME" als Text. Wo ist mein Denkfehler?

Viele Grüße

Michael