DOIF zum setzen des THRESHOLD – desired Wertes Klemmt

Begonnen von grogra, 22 November 2014, 18:44:32

Vorheriges Thema - Nächstes Thema

grogra

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

Damian

#1
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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Maverick229

#2
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)

Damian

#3
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


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

Maverick229

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)

Maverick229

#5
Ich glaube jetzt geht es, ich habe aber nur Thermostat in Therm unbenannt.
Außerdem war die angegebene Zeit überschritten.