FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: DJ-Mix am 20 Februar 2017, 20:45:11

Titel: [Gelöst]Radiator steuern
Beitrag von: DJ-Mix am 20 Februar 2017, 20:45:11
Hallo,

möchte gerne einen Radiator über eine HM Schaltsteckdose steuern mit Hilfe eines HM Thermostat. Dafür habe ich mir folgendes überlegt.

die Heizung soll um 5:00 Uhr in der Woche und um 7:00 Uhr am Wochenende angehen (bzw. um 17:20 Uhr jeden Tag), wenn die eingestellte Temperatur (HM-Thermostat) nicht erreicht ist und soll
dann ausgehen, wenn die Temperatur erreicht ist, spätestens aber um 7:00 Uhr in der Woche und um 09:00 am Wochenende (bzw. um 21:00 Uhr jeden Tag).

([05:00|8] or [07:00|7] or [17:00|8] or [17:20|7] and [HM_26FE8C_Climate:measured-temp] < [HM_26FE8C_Climate:desired-temp] and [Fenster_Bad] eq "closed") (set HM_25891E on) DOELSEIF ([07:00|8] or [09:00|7] or [21:00]) (set HM_25891E off)

Aber irgendwie funktioniert es nicht so wie ich mir das vorstelle. Mal geht SIe an, oder aber nicht aus wenn die Temperatur erreicht ist.
Kann mir vielleicht jemand hierbei helfen, oder muss ich das DOIF aufteilen, in mehrere einzelne DOIF´s?

Danke vorab

Gruß
Titel: Antw:Radiator steuern
Beitrag von: sash.sc am 21 Februar 2017, 06:12:23
Setze mal deine ganzen oder Verknüpfungen in eine klammer! Dann sollte es klappen.

Oder vor und wird es ohne klammern ungesund!  [emoji6]

Gesendet von meinem SM-T560 mit Tapatalk

Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 21 Februar 2017, 09:43:34
@sash.sc

Danke für den Tip. Werde ich heute dann ausprobieren . . . .  :)
Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 22 Februar 2017, 19:05:55
Leider funktioniert es noch nicht so wie ich es mir denke . . .
Die Heizung geht nicht mehr an??? Status bleibt auf CMD2

(([05:50|8] or [07:00|7] or [17:00|8] or [17:20|7]) and [HM_26FE8C_Climate:measured-temp] < [HM_26FE8C_Climate:desired-temp] and [Fenster_Bad] eq "closed") (set HM_25891E on) DOELSEIF ([07:00|8] or [09:00|7] or [21:00] or [HM_26FE8C_Climate:measured-temp] > [HM_26FE8C_Climate:desired-temp]) (set HM_25891E off)


Titel: Antw:Radiator steuern
Beitrag von: Brockmann am 23 Februar 2017, 08:09:32
list <Name des DOIFs> erspart uns allen die Glaskugel...
Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 23 Februar 2017, 11:53:23
Hier das List . . .

Internals:
   DEF        (([05:50|8] or [07:00|7] or [17:00|8] or [17:20|7]) and [HM_26FE8C_Climate:measured-temp] < [HM_26FE8C_Climate:desired-temp] and [Fenster_Bad] eq "closed") (set HM_25891E on) DOELSEIF ([07:00|8] or [09:00|7] or [21:00] or [HM_26FE8C_Climate:measured-temp] > [HM_26FE8C_Climate:desired-temp]) (set HM_25891E off)
   NAME       Warm.Bad1
   NR         173
   NTFY_ORDER 50-Warm.Bad1
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2017-02-23 11:51:41   Device          HM_26FE8C_Climate
     2017-02-23 07:00:01   cmd             2
     2017-02-23 07:00:01   cmd_event       timer_5
     2017-02-23 07:00:01   cmd_nr          2
     2017-02-23 06:40:16   e_Fenster_Bad_STATE closed
     2017-02-23 11:51:41   e_HM_26FE8C_Climate_desired-temp 22.5
     2017-02-23 11:51:41   e_HM_26FE8C_Climate_measured-temp 19.5
     2017-02-23 07:00:01   state           cmd_2
     2017-02-23 05:50:00   timer_01_c01    24.02.2017 05:50:00|8
     2017-02-23 07:00:01   timer_02_c01    24.02.2017 07:00:00|7
     2017-02-22 19:06:49   timer_03_c01    23.02.2017 17:00:00|8
     2017-02-22 19:06:49   timer_04_c01    23.02.2017 17:20:00|7
     2017-02-23 07:00:01   timer_05_c02    24.02.2017 07:00:00|8
     2017-02-23 09:00:00   timer_06_c02    24.02.2017 09:00:00|7
     2017-02-22 21:00:00   timer_07_c02    23.02.2017 21:00:00
   Condition:
     0          (DOIF_time_once($hash,0,$wday,"8") or DOIF_time_once($hash,1,$wday,"7") or DOIF_time_once($hash,2,$wday,"8") or DOIF_time_once($hash,3,$wday,"7")) and ReadingValDoIf($hash,'HM_26FE8C_Climate','measured-temp') < ReadingValDoIf($hash,'HM_26FE8C_Climate','desired-temp') and InternalDoIf($hash,'Fenster_Bad','STATE') eq "closed"
     1          DOIF_time_once($hash,4,$wday,"8") or DOIF_time_once($hash,5,$wday,"7") or DOIF_time_once($hash,6,$wday) or ReadingValDoIf($hash,'HM_26FE8C_Climate','measured-temp') > ReadingValDoIf($hash,'HM_26FE8C_Climate','desired-temp')
   Days:
     0          8
     1          7
     2          8
     3          7
     4          8
     5          7
   Devices:
     0           HM_26FE8C_Climate Fenster_Bad
     1           HM_26FE8C_Climate
     all         HM_26FE8C_Climate Fenster_Bad
   Do:
     0:
       0          set HM_25891E on
     1:
       0          set HM_25891E off
     2:
   Helper:
     event      desired-temp: 22.5,humidity: 52,measured-temp: 19.5,T: 19.5 desired: 22.5
     globalinit 1
     last_timer 7
     sleeptimer -1
     timerdev
     timerevent timer_5
     triggerDev HM_26FE8C_Climate
     timerevents:
       timer_5
     timereventsState:
       desired-temp: 22.5
       humidity: 51
       measured-temp: 20.4
       state: T: 20.4 desired: 22.5
     triggerEvents:
       desired-temp: 22.5
       humidity: 52
       measured-temp: 19.5
       T: 19.5 desired: 22.5
     triggerEventsState:
       desired-temp: 22.5
       humidity: 52
       measured-temp: 19.5
       state: T: 19.5 desired: 22.5
   Internals:
     0           Fenster_Bad:STATE
     all         Fenster_Bad:STATE
   Interval:
   Itimer:
   Localtime:
     0          1487911800
     1          1487916000
     2          1487865600
     3          1487866800
     4          1487916000
     5          1487923200
     6          1487880000
   Readings:
     0           HM_26FE8C_Climate:measured-temp HM_26FE8C_Climate:desired-temp
     1           HM_26FE8C_Climate:measured-temp HM_26FE8C_Climate:desired-temp
     all         HM_26FE8C_Climate:measured-temp HM_26FE8C_Climate:desired-temp
   Realtime:
     0          05:50:00
     1          07:00:00
     2          17:00:00
     3          17:20:00
     4          07:00:00
     5          09:00:00
     6          21:00:00
   Regexp:
     0:
     1:
     All:
   State:
   Time:
     0          05:50:00
     1          07:00:00
     2          17:00:00
     3          17:20:00
     4          07:00:00
     5          09:00:00
     6          21:00:00
   Timecond:
     0          0
     1          0
     2          0
     3          0
     4          1
     5          1
     6          1
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
   Timers:
     0           0  1  2  3
     1           4  5  6
   Trigger:
   Triggertime:
     1487865600:
       localtime  1487865600
       Hash:
     1487866800:
       localtime  1487866800
       Hash:
     1487880000:
       localtime  1487880000
       Hash:
     1487911800:
       localtime  1487911800
       Hash:
     1487916000:
       localtime  1487916000
       Hash:
     1487923200:
       localtime  1487923200
       Hash:
Attributes:
   group      Heizung
   room       Programme
Titel: Antw:Radiator steuern
Beitrag von: Damian am 23 Februar 2017, 12:37:00
ist $we bei dir heute wahr oder benutzt du eine nicht aktuelle Version von DOIF?
Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 23 Februar 2017, 14:15:44
Er steht aktuell auf timer_5 - wäre dann am Freitag um
07:00 Uhr | 8 .

Also alte Version? Wo finde ich die neue Version?
Habe Fhem bereits geupdatet.

Danke
Titel: Antw:Radiator steuern
Beitrag von: Damian am 23 Februar 2017, 14:19:49
Zitat von: DJ-Mix am 23 Februar 2017, 14:15:44
Er steht aktuell auf timer_5 - wäre dann am Freitag um
07:00 Uhr | 8 .

Also alte Version? Wo finde ich die neue Version?
Habe Fhem bereits geupdatet.

Danke
In der Commandozeile:

Version DOIF 

zeigt dir die aktuelle Version

{$we}

sollte heute 0 ergeben


Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 23 Februar 2017, 16:57:58
File       Rev   Last Change

98_DOIF.pm 13414 2017-02-14 20:37:20Z Damian


{$we}


ergibt 0

Update: 17:00 Uhr
jetzt ist die Heizung angesprungen und der Status hat auf timer_3 gewechselt.
Titel: Antw:Radiator steuern
Beitrag von: Damian am 23 Februar 2017, 19:52:01
Zitat von: DJ-Mix am 23 Februar 2017, 16:57:58
File       Rev   Last Change

98_DOIF.pm 13414 2017-02-14 20:37:20Z Damian


{$we}



ergibt 0

Update: 17:00 Uhr
jetzt ist die Heizung angesprungen und der Status hat auf timer_3 gewechselt.

Ich sehe gerade, dass du weiter hinten auch [07:00|8] definiert hast. Am besten machst du Zeilenumbrüche für jeden Zweig, sonst kann man die eine Zeile schlecht auswerten.

Wenn er um 07:00 Uhr cmd_2 geschaltet hat, dann einfach deswegen weil HM_26FE8C_Climate:measured-temp] > [HM_26FE8C_Climate:desired-temp.

Ich glaube aber nicht, dass du das so willst, wie du es definiert hast. Deine Zeitdefinitionen sind nur als Zeitpunkte zu sehen und nicht als Zeiträume.

Wenn also um 7:00 Uhr die Temperatur warm genug ist, dann wird nicht eingeschaltet, aber wenn eine Minute später also um 7:01 Uhr zu kalt wird, wird ebenfalls nicht eingeschaltet.

Du solltest also besser Zeitintervalle definieren, in denen du bei kalter Temperatur deinen Radiator einschalten möchtest.

Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 23 Februar 2017, 19:57:28
meinst du das dann in etwa so?
(([05:50-07:00|8] or [07:00-09:00|7] or [17:00-21:00|8] or [17:20-21:00|7]) and [HM_26FE8C_Climate:measured-temp] < [HM_26FE8C_Climate:desired-temp] and [Fenster_Bad] eq "closed") (set HM_25891E on) DOELSEIF ([HM_26FE8C_Climate:measured-temp] > [HM_26FE8C_Climate:desired-temp]) (set HM_25891E off)
Titel: Antw:Radiator steuern
Beitrag von: Damian am 23 Februar 2017, 20:26:16
Zitat von: DJ-Mix am 23 Februar 2017, 19:57:28
meinst du das dann in etwa so?
(([05:50-07:00|8] or [07:00-09:00|7] or [17:00-21:00|8] or [17:20-21:00|7]) and [HM_26FE8C_Climate:measured-temp] < [HM_26FE8C_Climate:desired-temp] and [Fenster_Bad] eq "closed") (set HM_25891E on) DOELSEIF ([HM_26FE8C_Climate:measured-temp] > [HM_26FE8C_Climate:desired-temp]) (set HM_25891E off)

Schon eher und den DOELSEIF würde ich als DOELSE definieren, da es ja das Gegenteil sein soll.
Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 23 Februar 2017, 20:41:01
Vielen Dank für die Hilfe. Werde ich morgen umsetzen.
Jetzt erstmal bisschen Karneval feiern  8) 8)
Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 24 Februar 2017, 09:03:41
habe es mal so eingetragen. jetzt erhalte ich aber im Log folgende Meldungen.
2017.02.24 08:52:37 2: Warm.Bad1: 19.6 > 22.5: Unknown command 19.6, try help.
2017.02.24 08:52:37 3: CUL_HM set HM_25891E off
2017.02.24 08:53:43 2: Warm.Bad1: 19.7 > 22.5: Unknown command 19.7, try help.
2017.02.24 08:53:43 3: CUL_HM set HM_25891E off
2017.02.24 08:53:43 2: Warm.Bad1: 19.7 > 22.5: Unknown command 19.7, try help.
2017.02.24 08:53:43 3: CUL_HM set HM_25891E off
2017.02.24 08:54:45 2: Warm.Bad1: 19.7 > 22.5: Unknown command 19.7, try help.
2017.02.24 08:54:45 3: CUL_HM set HM_25891E off
2017.02.24 08:57:43 2: Warm.Bad1: 19.7 > 22.5: Unknown command 19.7, try help.
2017.02.24 08:57:43 3: CUL_HM set HM_25891E off
2017.02.24 09:00:27 2: Warm.Bad1: 19.7 > 22.5: Unknown command 19.7, try help.


Wie kann ich das den abstellen? Muss ich dafür das DOIF umbauen?
Titel: Antw:Radiator steuern
Beitrag von: Damian am 24 Februar 2017, 10:45:06
DOELSE hat keine Bedingung, also muss die Temperaturabfrage hinter DOELSE weg.
Titel: Antw:Radiator steuern
Beitrag von: DJ-Mix am 24 Februar 2017, 11:34:32
Yes Sir . . .

Vielen Dank Damian.

Heißt für mich noch weiter lernen.
Titel: Antw:[Gelöst]Radiator steuern
Beitrag von: DJ-Mix am 02 März 2017, 19:03:44
Habe noch eine Frage bezüglich Log.
Hier taucht nun ständig die Meldung CUL_HM set HM_25891E off bzw. CUL_HM set HM_25891E on
auf, auch außerhalb der Zeit. Hier nochmal der aktuelle Code den ich verwende.
(([05:50-07:00|8] or [07:00-09:30|7] or [17:00-20:00|8] or [17:20-21:00|7]) and [HM_26FE8C_Climate:measured-temp] < [?HM_26FE8C_Climate:desired-temp] and [Fenster_Bad] eq "closed") (set HM_25891E on) DOELSE (set HM_25891E off)