HM-LC-SW4-DR auf INHIBIT setzen

Begonnen von kossmann, 15 August 2017, 16:34:52

Vorheriges Thema - Nächstes Thema

kossmann

Hallo zusammen,

ich nutze 2 HM-LC-SW4-DR Hutschienen Aktoren (Firmware 2.8.000) zur Steuerung meiner Fußbodenheizung-Ventile. Neben FHEM ist jeder entsprechende Kanal auch mit je einem HM-TC-IT-WM-W-EU Wandthermostat (Firmware 1.3.002) verknüpft, welches über die Soll-/Ist-Temperatur das jeweilige Ventil ansteuern kann. FHEM hält sich da grundsätzlich raus.

Nun möchte ich aber über FHEM einen sog. Ventilschutz (Kalkablagerungen) realisieren und zu einer festgelegten Uhrzeit die Ventile für 5 Minuten öffnen - unabhängig von einer eventuell schon erreichten Soll-Temperatur. Der entsprechende Code-Block sieht wie folgt aus und funktioniert grundsätzlich:

define Job_Heizung_Ventilschutz at *23:50 { \
    fhem("set Badezimmer_Heizung inhibit on ;; set Badezimmer_Heizung on ;; sleep 300 ;; set Badezimmer_Heizung inhibit off");; \
    fhem("set Buero_Heizung inhibit on ;; set Buero_Heizung on ;; sleep 300 ;; set Buero_Heizung inhibit off");; \
    fhem("set Flur_Heizung inhibit on ;; set Flur_Heizung on ;; sleep 300 ;; set Flur_Heizung inhibit off");; \
    fhem("set Schlafzimmer_Heizung inhibit on ;; set Schlafzimmer_Heizung on ;; sleep 300 ;; set Schlafzimmer_Heizung inhibit off");; \
    fhem("set Wohnzimmer_Heizung inhibit on ;; set Wohnzimmer_Heizung on ;; sleep 300 ;; set Wohnzimmer_Heizung inhibit off");; \
}
  attr Job_Heizung_Ventilschutz room Kammer


Mein Problem ist das zwar umgesetzte, aber nicht wirkende INHIBIT. Im Logfile sieht es wie folgt aus:

2017-08-14_23:50:00 Wohnzimmer_Heizung inhibit: set_on
2017-08-14_23:50:00 Wohnzimmer_Heizung set_inhibit on
2017-08-14_23:50:00 Wohnzimmer_Heizung set_on
2017-08-14_23:50:04 Wohnzimmer_Heizung deviceMsg: off (to vCCU)
2017-08-14_23:50:04 Wohnzimmer_Heizung level: 0
2017-08-14_23:50:04 Wohnzimmer_Heizung pct: 0
2017-08-14_23:50:04 Wohnzimmer_Heizung off
2017-08-14_23:50:04 Wohnzimmer_Heizung timedOn: off
2017-08-14_23:50:04 Wohnzimmer_Heizung deviceMsg: on (to vCCU)
2017-08-14_23:50:04 Wohnzimmer_Heizung level: 100
2017-08-14_23:50:04 Wohnzimmer_Heizung pct: 100
2017-08-14_23:50:04 Wohnzimmer_Heizung on
2017-08-14_23:50:04 Wohnzimmer_Heizung timedOn: off
2017-08-14_23:50:04 Wohnzimmer_Heizung deviceMsg: on (to vCCU)
2017-08-14_23:50:04 Wohnzimmer_Heizung level: 100
2017-08-14_23:50:04 Wohnzimmer_Heizung pct: 100
2017-08-14_23:50:04 Wohnzimmer_Heizung on
2017-08-14_23:50:04 Wohnzimmer_Heizung timedOn: off

2017-08-14_23:50:35 Wohnzimmer_Thermostat_Climate desired-temp: 19.0
2017-08-14_23:50:35 Wohnzimmer_Thermostat_Climate humidity: 53
2017-08-14_23:50:35 Wohnzimmer_Thermostat_Climate measured-temp: 25.9
2017-08-14_23:50:35 Wohnzimmer_Thermostat_Climate T: 25.9 desired: 19.0

2017-08-14_23:50:55 Wohnzimmer_Thermostat_Weather humidity: 53
2017-08-14_23:50:55 Wohnzimmer_Thermostat_Weather T: 25.9 H: 53
2017-08-14_23:50:55 Wohnzimmer_Thermostat_Weather temperature: 25.9

2017-08-14_23:52:07 Wohnzimmer_Heizung trigLast: Wohnzimmer_Thermostat_SwitchTr:0
2017-08-14_23:52:07 Wohnzimmer_Heizung trig_Wohnzimmer_Thermostat_SwitchTr: 0_187

2017-08-14_23:52:07 Wohnzimmer_Thermostat_SwitchTr level: 0
2017-08-14_23:52:07 Wohnzimmer_Thermostat_SwitchTr trigger_cnt: 187

2017-08-14_23:52:09 Wohnzimmer_Heizung deviceMsg: off (to vCCU)
2017-08-14_23:52:09 Wohnzimmer_Heizung level: 0
2017-08-14_23:52:09 Wohnzimmer_Heizung pct: 0
2017-08-14_23:52:09 Wohnzimmer_Heizung off
2017-08-14_23:52:09 Wohnzimmer_Heizung timedOn: off


Das Wandthermostat schafft es trotz INHIBIT, die Heizung wieder auszuschalten ???

Sieht jemand von euch, was ich falsch mache???

Otto123

Hi,

spontane alternative Idee, lass es den Wandthermostat machen :) dreh ihn für 5 min auf eine Temperatur wo er nicht widersprechen kann :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kossmann

Das wäre der Notfallplan, die Solltemperatur irgendwann für 5 Minuten auf 40 °C stellen. Aber trotzdem müsste/sollte das ja wie oben beschrieben funktionieren. Ansonsten hätte FHEM ja auch keine Möglichkeit, das Thermostat zu überstimmen, weil beispielsweise irgendeine Situation erkannt wird, die dies sinnvoll erscheinen lässt.

Otto123

Naja, ich kann Dir zumindest bestätigen, dass auch bei einem HM-LC-SW1-FM inhibit nicht funktioniert. Es bleibt bei set_on stehen und kommt offenbar nicht an. Der gepeerte Thermostat schaltet munter weiter. Wenn ich das in der Geschwindigkeit wie Du teste.

Nochmal nachgetestet, es braucht eventuell Zeit bzw. ein getConfig, dann funktioniert es wie gewünscht. Irritierend bleibt das set_on _ aber kann ja sein es gibt dafür einen Grund.


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kossmann

D.h. sobald du ein getConfig hinterher schickst, funktioniert es?

Gesendet von meinem Nexus 5 mit Tapatalk


Otto123

Ja, zumindest wenn ich das in Ruhe und mit Hand mache. Vielleicht reicht auch einfach eine Weile warten.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kossmann

Werde ich spätestens morgen ausprobieren, danke für den Hinweis!
Lange warten funktioniert ja leider nicht, das Thermostat ist immer schneller ;)

Gesendet von meinem Nexus 5 mit Tapatalk


Otto123

Du musst einfach an der richtigen Stelle warten, nach du inhibit setzt und vor der Kalkfahrt  8)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kossmann

Da ist dann nur die Frage, wie lange man warten muss und ob diese Zeit immer gleich ist/bleibt. Lieber wäre es mir ja, wenn es so funktionieren würde, wie es wahrscheinlich gedacht ist.

kossmann

Funktioniert leider nicht, sobald was von Wohnzimmer_Thermostat_SwitchTr kommt, macht der Schaltaktor-Kanal (Wohnzimmer_Heizung) die Rolle rückwärts :(

2017-08-15_21:32:48 CUL_HM set Wohnzimmer_Heizung on

2017-08-15_21:32:48 Wohnzimmer_Heizung set_on
2017-08-15_21:32:48 Wohnzimmer_Heizung deviceMsg: on (to vCCU)
2017-08-15_21:32:48 Wohnzimmer_Heizung level: 100
2017-08-15_21:32:48 Wohnzimmer_Heizung pct: 100
2017-08-15_21:32:48 Wohnzimmer_Heizung on
2017-08-15_21:32:48 Wohnzimmer_Heizung timedOn: off

2017-08-15_21:32:52 CUL_HM set Wohnzimmer_Heizung inhibit on

2017-08-15_21:32:52 Wohnzimmer_Heizung inhibit: set_on
2017-08-15_21:32:52 Wohnzimmer_Heizung set_inhibit on
2017-08-15_21:32:53 Wohnzimmer_Heizung deviceMsg: on (to vCCU)
2017-08-15_21:32:53 Wohnzimmer_Heizung level: 100
2017-08-15_21:32:53 Wohnzimmer_Heizung pct: 100
2017-08-15_21:32:53 Wohnzimmer_Heizung on
2017-08-15_21:32:53 Wohnzimmer_Heizung timedOn: off

2017-08-15_21:33:30 CUL_HM set Wohnzimmer_Heizung getConfig

2017-08-15_21:34:12 Wohnzimmer_Thermostat_Climate desired-temp: 19.0
2017-08-15_21:34:12 Wohnzimmer_Thermostat_Climate humidity: 58
2017-08-15_21:34:12 Wohnzimmer_Thermostat_Climate measured-temp: 25.6
2017-08-15_21:34:12 Wohnzimmer_Thermostat_Climate T: 25.6 desired: 19.0

2017-08-15_21:34:32 Wohnzimmer_Thermostat_Weather humidity: 58
2017-08-15_21:34:32 Wohnzimmer_Thermostat_Weather T: 25.6 H: 58
2017-08-15_21:34:32 Wohnzimmer_Thermostat_Weather temperature: 25.6

2017-08-15_21:36:07 Wohnzimmer_Heizung trigLast: Wohnzimmer_Thermostat_SwitchTr:0
2017-08-15_21:36:07 Wohnzimmer_Heizung trig_Wohnzimmer_Thermostat_SwitchTr: 0_1

2017-08-15_21:36:07 Wohnzimmer_Thermostat_SwitchTr level: 0
2017-08-15_21:36:07 Wohnzimmer_Thermostat_SwitchTr trigger_cnt: 1

2017-08-15_21:36:10 Wohnzimmer_Heizung deviceMsg: off (to vCCU)
2017-08-15_21:36:10 Wohnzimmer_Heizung level: 0
2017-08-15_21:36:10 Wohnzimmer_Heizung pct: 0
2017-08-15_21:36:10 Wohnzimmer_Heizung off
2017-08-15_21:36:10 Wohnzimmer_Heizung timedOn: off

Otto123

Ich finde Deine Reihenfolge unlogisch.
Ich habe versucht:
Zustand SOLL thermostat auf 20° , IST Raum 24° Aktor ist off

set Aktor inhibit on
set Aktor getConfig
set Thermostat SOLL auf 40°
Der Thermostat hat keine Chance, der Aktor bleibt off, der Trigger 200 kommt aber sichtbar an

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kossmann

Moment, vielleicht reden wir aneinander vorbei...

Du setzt "Thermostat SOLL auf 40" und zwingst/überredest es damit, selbst den Aktor einzuschalten. Ich versuche es ja anders - das Thermostat in Ruhe zu lassen und per FHEM den Aktor einzuschalten und ihm "verbieten", bis auf weiteres Befehle vom Thermostat zu ignorieren.

... aber andererseits ist es ja trotzdem eine vergleichbare Situation. Dein Thermostat möchte einschalten, wird aber ignoriert (wenn das der Trigger 200 ist).

Aber was ist für dich bei mir unlogisch? Einschalten, "externe" Befehle ignorieren und ein "getConfig" absetzen, um eine eventuelle Verzögerung beim Schreiben in´s Register zu erzwingen (falls das so funktionieren sollte).

Otto123

Du setzt den Aktor so das der Thermostat reagieren will. (Ich weiß gar nicht warum er das macht, aber er tut es ja scheinbar)
Dann setzt Du inhibit.
Dann setzt Du getConfig.
Der Thermostat überholt vielleicht bloß genau diesen Zustand.

Ich finde es unlogisch, Du provozierst und setzt dann das Verbot.
Ich setze das Verbot, lasse Ruhe und provoziere dann.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kossmann

Zitat von: Otto123 am 15 August 2017, 22:10:59Du setzt den Aktor so das der Thermostat reagieren will. (Ich weiß gar nicht warum er das macht, aber er tut es ja scheinbar)
Jein - ich setze den Aktor, aber davon weiß das Thermostat doch nichts, oder? Dieses wertet doch alle x Minuten für sich selbst aus (Soll/Ist/Hysterese/...), ob es gerne heizen würde oder nicht - und gibt dann den entsprechenden Befehl - egal ob auf der Gegenseite schon was passiert ist oder nicht.

Zitat von: Otto123 am 15 August 2017, 22:10:59
Dann setzt Du inhibit.
Dann setzt Du getConfig.
Der Thermostat überholt vielleicht bloß genau diesen Zustand.

Ich finde es unlogisch, Du provozierst und setzt dann das Verbot.
Ich setze das Verbot, lasse Ruhe und provoziere dann.
Da hast du Recht, in meiner Config habe ich auch erst inhibit=on gesetzt und dann den Aktor direkt per FHEM gesteuert. Mein manueller Test war anders ´rum, glaube aber nicht, dass das was ändert - wenn meine o.a. "Logik" stimmt und vom Thermostat alle x Minuten ein Befehl kommt, egal wer diesen verwertet, das Thermostat schreit immer in den Raum, was es möchte.

kossmann

Ich teste heute Nacht mal mit folgender Config, die müsste aus deiner Sicht doch i.O. sein, oder?

define Job_Heizung_Ventilschutz at *23:45 { \
    fhem("set Badezimmer_Heizung inhibit on ;; set Badezimmer_Heizung getConfig ;; sleep 300 ;; set Badezimmer_Heizung on ;; sleep 300 ;; set Badezimmer_Heizung inhibit off");; \
    fhem("set Buero_Heizung inhibit on ;; set Buero_Heizung getConfig ;; sleep 300 ;; set Buero_Heizung on ;; sleep 300 ;; set Buero_Heizung inhibit off");; \
    fhem("set Flur_Heizung inhibit on ;; set Flur_Heizung getConfig ;; sleep 300 ;; set Flur_Heizung on ;; sleep 300 ;; set Flur_Heizung inhibit off");; \
    fhem("set Schlafzimmer_Heizung inhibit on ;; set Schlafzimmer_Heizung getConfig ;; sleep 300 ;; set Schlafzimmer_Heizung on ;; sleep 300 ;; set Schlafzimmer_Heizung inhibit off");; \
    fhem("set Wohnzimmer_Heizung inhibit on ;; set set Wohnzimmer_Heizung getConfig ;; sleep 300 ;; Wohnzimmer_Heizung on ;; sleep 300 ;; set Wohnzimmer_Heizung inhibit off");; \
}
  attr Job_Heizung_Ventilschutz room Kammer