Hallo @all,
zunächst sind die beiden Module super und machen im grunde einen super Job nur klemmt bei mir etwas..
ich setzte meine THRESHOLD – desired Wertes mit DOIF (siehe Code) und so wie ich es wahrnehme scheint mit der Zeitsteuerung etwas nicht zu stimmen (oder ich kann es nicht richtig)
am Samstag um 18:00 wird nachfolgender Wert im WEB Angezeigt..
THRESHOLD active 16.0 off
MEINER Einschätzung nach müsste da 21.0 stehen
Hier der DOIF definition:
Internals:
CFGFN ./cfg/Heizungsregelung.cfg
DEF ([HZmodus:state] eq "Sommer")
(set EGKueche desired 12)
DOELSEIF ([HZmodus:state] eq "Winter" and [HZParty:state] eq "Automatik" and [05:00-09:00|12345] or [16:00-19:00|12345] )
(set EGKueche desired 19)
DOELSEIF ([HZmodus:state] eq "Winter" and [HZParty:state] eq "Automatik" and [07:00-20:00|7])
(set EGKueche desired 21)
DOELSEIF ([HZmodus:state] eq "Winter" and [HZParty:state] eq "Party")
(set EGKueche desired 21)
DOELSE
(set EGKueche desired 16)
attr HZRoomKUTime do always
NAME HZRoomKUTime
NR 385
NTFY_ORDER 50-HZRoomKUTime
STATE cmd_5
TYPE DOIF
Readings:
2014-11-22 09:00:00 cmd_event timer_2
2014-11-22 09:00:00 cmd_nr 5
2014-11-21 18:26:34 e_HZParty_state Automatik
2014-11-06 21:24:18 e_HZRoomWZ_state state Automatik
2014-11-12 22:13:31 e_HZmodus_state Winter
2014-11-22 09:00:00 state cmd_5
2014-11-22 05:00:00 timer_1_c2 23.11.2014 05:00:00|12345
2014-11-22 09:00:00 timer_2_c2 23.11.2014 09:00:00|12345
2014-11-22 16:00:00 timer_3_c2 23.11.2014 16:00:00|12345
2014-11-11 19:30:42 timer_3_c3 12.11.2014 07:00:00|7
2014-11-21 19:00:00 timer_4_c2 22.11.2014 19:00:00|12345
2014-11-11 19:30:42 timer_4_c3 11.11.2014 20:00:00|7
2014-11-22 07:00:00 timer_5_c3 23.11.2014 07:00:00|7
2014-11-21 20:00:00 timer_6_c3 22.11.2014 20:00:00|7
Condition:
0 ReadingValDoIf('HZmodus','state','') eq "Sommer"
1 ReadingValDoIf('HZmodus','state','') eq "Winter" and ReadingValDoIf('HZParty','state','') eq "Automatik" and DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"12345") or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"12345")
2 ReadingValDoIf('HZmodus','state','') eq "Winter" and ReadingValDoIf('HZParty','state','') eq "Automatik" and DOIF_time($hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"7")
3 ReadingValDoIf('HZmodus','state','') eq "Winter" and ReadingValDoIf('HZParty','state','') eq "Party"
Days:
0 12345
1 12345
2 12345
3 12345
4 7
5 7
Devices:
0 HZmodus
1 HZmodus HZParty
2 HZmodus HZParty
3 HZmodus HZParty
all HZmodus HZParty
Do:
0 set EGKueche desired 12
1 set EGKueche desired 19
2 set EGKueche desired 21
3 set EGKueche desired 21
4 set EGKueche desired 16
Helper:
last_timer 6
sleeptimer -1
Internals:
Readings:
0 HZmodus:state
1 HZmodus:state HZParty:state
2 HZmodus:state HZParty:state
3 HZmodus:state HZParty:state
all HZmodus:state HZParty:state
Realtime:
0 05:00:00
1 09:00:00
2 16:00:00
3 19:00:00
4 07:00:00
5 20:00:00
State:
Time:
0 05:00:00
1 09:00:00
2 16:00:00
3 19:00:00
4 07:00:00
5 20:00:00
Timecond:
0 1
1 1
2 1
3 1
4 2
5 2
Timer:
0 0
1 0
2 0
3 0
4 0
5 0
Timerfunc:
Timers:
1 0 1 2 3
2 4 5
Attributes:
Danke für euere Rückmeldungen
grogra
Zitat von: grogra am 22 November 2014, 18:44:32
Hallo @all,
zunächst sind die beiden Module super und machen im grunde einen super Job nur klemmt bei mir etwas..
ich setzte meine THRESHOLD – desired Wertes mit DOIF (siehe Code) und so wie ich es wahrnehme scheint mit der Zeitsteuerung etwas nicht zu stimmen (oder ich kann es nicht richtig)
am Samstag um 18:00 wird nachfolgender Wert im WEB Angezeigt..
THRESHOLD active 16.0 off
MEINER Einschätzung nach müsste da 21.0 stehen
Hier der DOIF definition:
Internals:
CFGFN ./cfg/Heizungsregelung.cfg
DEF ([HZmodus:state] eq "Sommer")
(set EGKueche desired 12)
DOELSEIF ([HZmodus:state] eq "Winter" and [HZParty:state] eq "Automatik" and [05:00-09:00|12345] or [16:00-19:00|12345] )
(set EGKueche desired 19)
DOELSEIF ([HZmodus:state] eq "Winter" and [HZParty:state] eq "Automatik" and [07:00-20:00|7])
(set EGKueche desired 21)
DOELSEIF ([HZmodus:state] eq "Winter" and [HZParty:state] eq "Party")
(set EGKueche desired 21)
DOELSE
(set EGKueche desired 16)
attr HZRoomKUTime do always
NAME HZRoomKUTime
NR 385
NTFY_ORDER 50-HZRoomKUTime
STATE cmd_5
TYPE DOIF
Readings:
2014-11-22 09:00:00 cmd_event timer_2
2014-11-22 09:00:00 cmd_nr 5
2014-11-21 18:26:34 e_HZParty_state Automatik
2014-11-06 21:24:18 e_HZRoomWZ_state state Automatik
2014-11-12 22:13:31 e_HZmodus_state Winter
2014-11-22 09:00:00 state cmd_5
2014-11-22 05:00:00 timer_1_c2 23.11.2014 05:00:00|12345
2014-11-22 09:00:00 timer_2_c2 23.11.2014 09:00:00|12345
2014-11-22 16:00:00 timer_3_c2 23.11.2014 16:00:00|12345
2014-11-11 19:30:42 timer_3_c3 12.11.2014 07:00:00|7
2014-11-21 19:00:00 timer_4_c2 22.11.2014 19:00:00|12345
2014-11-11 19:30:42 timer_4_c3 11.11.2014 20:00:00|7
2014-11-22 07:00:00 timer_5_c3 23.11.2014 07:00:00|7
2014-11-21 20:00:00 timer_6_c3 22.11.2014 20:00:00|7
Condition:
0 ReadingValDoIf('HZmodus','state','') eq "Sommer"
1 ReadingValDoIf('HZmodus','state','') eq "Winter" and ReadingValDoIf('HZParty','state','') eq "Automatik" and DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"12345") or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"12345")
2 ReadingValDoIf('HZmodus','state','') eq "Winter" and ReadingValDoIf('HZParty','state','') eq "Automatik" and DOIF_time($hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"7")
3 ReadingValDoIf('HZmodus','state','') eq "Winter" and ReadingValDoIf('HZParty','state','') eq "Party"
Days:
0 12345
1 12345
2 12345
3 12345
4 7
5 7
Devices:
0 HZmodus
1 HZmodus HZParty
2 HZmodus HZParty
3 HZmodus HZParty
all HZmodus HZParty
Do:
0 set EGKueche desired 12
1 set EGKueche desired 19
2 set EGKueche desired 21
3 set EGKueche desired 21
4 set EGKueche desired 16
Helper:
last_timer 6
sleeptimer -1
Internals:
Readings:
0 HZmodus:state
1 HZmodus:state HZParty:state
2 HZmodus:state HZParty:state
3 HZmodus:state HZParty:state
all HZmodus:state HZParty:state
Realtime:
0 05:00:00
1 09:00:00
2 16:00:00
3 19:00:00
4 07:00:00
5 20:00:00
State:
Time:
0 05:00:00
1 09:00:00
2 16:00:00
3 19:00:00
4 07:00:00
5 20:00:00
Timecond:
0 1
1 1
2 1
3 1
4 2
5 2
Timer:
0 0
1 0
2 0
3 0
4 0
5 0
Timerfunc:
Timers:
1 0 1 2 3
2 4 5
Attributes:
Danke für euere Rückmeldungen
grogra
Du bist sicher, dass 16 die Wunschtemperatur ist und nicht die aktuelle?
Edit: Ich würde dir empfehlen, bei so vielen Bedingungen ohne DOELSE zu arbeiten. Denn es gibt immer Kombinationen, die man nicht bedenkt, die in diesen Fall laufen.
Gruß
Damian
Hallo Allerseits
Ich bin Anfänger und möchte Mit den Modulen Threshold und DOIF ein Raumthermostat erstellen mittels 1Wire und Relais.
Leider habe ich anscheinend Verständnisprobleme und irgendein Syntax Problem.
Ich habe nachstehenden Code meiner Meinung nach sollte das so funktionieren, macht es aber nicht.
DOIF setzt anscheinend den desired Befehl nicht.
Ist nett wenn man mir helfen könnte.
mfg
define Thermostat THRESHOLD GPIO4_DS18B20_000004c504be Relais
#attr Thermostat number_format %.1f
attr Thermostat state_cmd1_gt on
attr Thermostat state_cmd2_lt off
#attr Thermostat state_format _sc
#set Thermostat desired 19
define ThermostatZeit DOIF ([15:30-21:00|12345]) or ([08:00-21:00|06]) (set Thermostat desired 20) DOELSE (set Thermostat desired 16)
Zitat von: Maverick229 am 13 Dezember 2014, 10:37:48
Hallo Allerseits
Ich bin Anfänger und möchte Mit den Modulen Threshold und DOIF ein Raumthermostat erstellen mittels 1Wire und Relais.
Leider habe ich anscheinend Verständnisprobleme und irgendein Syntax Problem.
Ich habe nachstehenden Code meiner Meinung nach sollte das so funktionieren, macht es aber nicht.
DOIF setzt anscheinend den desired Befehl nicht.
Ist nett wenn man mir helfen könnte.
mfg
define Thermostat THRESHOLD GPIO4_DS18B20_000004c504be Relais
#attr Thermostat number_format %.1f
attr Thermostat state_cmd1_gt on
attr Thermostat state_cmd2_lt off
#attr Thermostat state_format _sc
#set Thermostat desired 19
define ThermostatZeit DOIF ([15:30-21:00|12345]) or ([08:00-21:00|06]) (set Thermostat desired 20) DOELSE (set Thermostat desired 16)
Du musst die korrekte Syntax lt. commandref beachten :DOIF (<Bedingung>) (set ... ) beachten.
Ich vermisse bei dir die roten Klammern.
Gruß
Damian
Eigentlich habe ich das Beispiel aus der Command.ref nur an meine Zwecke angepasst. Ich hoffe ich habe da nichts aus versehen verändert.
define ThermostatZeit DOIF ([15:30-21:00|12345] or [08:00-21:00|06]) (set Thermostat desired 20) DOELSE (set Thermostat desired 16)
Ich glaube jetzt geht es, ich habe aber nur Thermostat in Therm unbenannt.
Außerdem war die angegebene Zeit überschritten.