Hauptmenü

[Gelöst]Radiator steuern

Begonnen von DJ-Mix, 20 Februar 2017, 20:45:11

Vorheriges Thema - Nächstes Thema

DJ-Mix

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ß
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

sash.sc

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

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

DJ-Mix

@sash.sc

Danke für den Tip. Werde ich heute dann ausprobieren . . . .  :)
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

DJ-Mix

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)


FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

Brockmann

list <Name des DOIFs> erspart uns allen die Glaskugel...

DJ-Mix

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
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

Damian

ist $we bei dir heute wahr oder benutzt du eine nicht aktuelle Version von DOIF?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

DJ-Mix

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
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

Damian

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


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

DJ-Mix

#9
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.
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

Damian

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.

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

DJ-Mix

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)
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

Damian

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

DJ-Mix

Vielen Dank für die Hilfe. Werde ich morgen umsetzen.
Jetzt erstmal bisschen Karneval feiern  8) 8)
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM

DJ-Mix

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?
FHEM - RaspberryPi/Fritz!Box 7390 - 1x HM-CFG-LAN - 3x HM-CC-RT-DN - 3x HM-LC-Bl1PBU-FM - 1x HM-LC-Sw1PBU-FM