rdmtc / RedMatic-HomeKit

HAP-Nodejs based Node-RED nodes to create (bridged) HomeKit Accessories
Apache License 2.0
61 stars 22 forks source link

HomeMatic IP HM-eTRV2 Temperatureinstellung #225

Open krylle opened 4 years ago

krylle commented 4 years ago

UPDATE 14.03.2021: RedMatic Ver. 7.2.1 hat das Problem behoben. Vielen Dank für die Mühe sich dem Problem angenommen zu haben.

UPDATE 20.11.2020: Mittlerweile RedMatic Ver. 7.1.1 und PiVCCU3 V. 3.53.34-49 und gleiches fehlerhaftes Verhalten des Thermostate wie vor knapp einem Jahr.

URSPRÜNGLICHER BEITRAG: Hallo zusammen,

nach ewigem Recherchieren habe ich leider keine Lösung für mein Problem finden können. Jetzt melde ich mich mit meinem Problem hierher.

Folgende Hardware und Software:

Problem 1: Wenn ich nun in der Apple Home-App eine Temperatur per Hand einstellen möchte so springt der Temperaturwert immer erstmal, nach 2-3 Sekunden, ohne mein Zutun, automatisch auf 21°C. Dieser Wert ist jedoch weder in den Wochenprogrammen zu finden, noch habe ich eine andere Einstellung gefunden, die die Thermostate auf 21°C springen lassen könnte. Ist hierzu bereits etwas bekannt?

Problem 2: Von den oben genannten Thermostaten sind insgesamt vier an meinen Heizkörpern installiert. Wenn ich nun das Haus verlasse sollen sich laut der Automation in der Apple Home-App alle Thermostate auf 18°C stellen. Das klappt soweit bis auf einer (wohlgemerkt nicht immer der gleiche) Thermostat zuverlässig. Hier springt komischerweise der falsch eingestellte Thermostat auf die besagten 21°C. Ist dieser Bug auf bekannt?

Beobachtung: Wenn die Temperatur durch die Automation geändert wird wird für einen Bruchteil einer Sekunde die korrekte Temperatur im Display der Thermostate angezeigt bevor es wieder auf die berüchtigten 21°C springt.

Beobachtung 2: Es trifft zumeist nur einen Thermostaten, der auf die 21°C springt.

Beobachtung 3: Die Thermostate springen scheinbar (Jedoch auch hier nicht regulär) alle jede 24 Stunden automatisch auf 21°C, obwohl das Wochenprogeamm in der CCU3 nicht aktiv ist und die Thermostate allesamt auf dem „Manu“-Modus stehen.

IMG_3721

robinroundrock commented 4 years ago

Ich kann das genauso bestätigen. Ich habe genau das gleiche Problem. Bisher gehe ich aber davon aus das es ein Setup Problem ist. Aber der Reihe nach:

Das Setup ist sehr ähnlich dem vom @krylle


Einrichtung und Automatisierung Beim Einrichten bin ich unteranderem dieser Anleitung gefolgt: https://github.com/rdmtc/RedMatic/wiki/Homekit

Das heißt ich habe aktuell die CCU3 laufen, die Homekit Bridge genutzt um die Geräte entsprechend in Apple Home zu bekommen, mir dort 3 simple Automatisierungen angelegt:

  1. Um 23:58 Uhr stelle Thermostate auf 18°C
  2. Um 08:00 Uhr stelle Thermostate auf "gewünschte Temperatur. (Aktuell 5 Heizungsthermosate ohne Wandthermostat im Einsatz). Die Werte sind unterschiedlich: 18°C, 21°C und 22°C.
  3. Beim Verlassen von allen verbundenen iphones > stelle Temperatur aller Thermostate auf 18°C.

Das heißt ich nutze bisher node red nur als Bridge und habe die eigentlichen Einstellungen nur im Homekit vorgenommen. Auch in Homematic selbst habe ich keine Wochenprofile hinterlegt, die habe ich direkt beim Anlernen der Geräte gelöscht, da ich sie selbst über die Homematic ja nicht steuern wollte.


Effekt Der Effekt ist trotzdem folgender: Ich habe wenn eines der drei Home 'Programme' eintrifft und greift dann stellen sich zum Beispiel die beiden Heizkörperthermostate die auf 18°C gestellt werden soll auf 21°C. Das passiert gesichert und reproduzierbar immer wenn Automatisierung #2 in Kraft tritt.

Ebenso passiert es bei mir, wenn ich die Homeapp gehe und mir ein Thermostat auswähle das z.B. auf 18°C steht automatisch auf 21°C springt, also genauso so wie im Post davor gezeigt.


Weiteres Vorgehen Da ich mit Problemen gerechnet hatte, habe ich mein Setup klein angefangen und wollte mich von dort aus weiter in das Feld reinzuarbeiten. Das heißt ich bin gerne bereit verschiedene Optionen zu testen oder auszuschließen, wenn es dabei hilft festzustellen ob es ein programmatisches Problem oder ein Setup-Problem ist. Ich würde von daher an meinem Setup für die nächsten Tage mal nichts ändern, bis ich ggf. Feedback erhalte wie und ob es hilft hie weiter vorzugehen.


Background Ich war eigentlich schon gedanklich dabei verschiedene Optionen durchzuspielen wie ich das anpassen kann und wie ich den Fehler herausbekomme, bis ich eben zufällig auf diesen Beitrag gestolpert bin. Ich bin bisher davon ausgegangen das ich beim Setup einen Fehler gemacht habe und die Einstellungen die ich im Homekit gemacht habe nicht funktionieren, da ich ggf. die Zeitpläne etc. in node red hinterlegen muss nicht im Homekit.

Gunther789 commented 4 years ago

Hallo zusammen, ich bin relativ neu in dieser Thematik und nutze über eine CCU3 Redmatic 5.5.2 -> Node-RED -> Homekit Addon. Bei mir zeigt sich das selbe Fehlerbild (Heizungsthermostat HM-CC-RT-DN).

Bei der Auswahl in der Homekit App springt die Temperatur auf 21 Grad.

Beim Ausführen von mir erzeugten Automationen in Homekit sehe ich am Thermostat bei einer Temperaturänderung durch diese Automation, das die Temperaturanzeige im Display kurz 21 Grad anzeigt und dann direkt in die Wunschtemperatur springt. Es ist auch schon passiert, das die 21 Grad im Display stehen bleibt und somit die gewünschte Einstellung nicht vom Thermostat angenommen wird.

Dieses Problem wird auch in #245 angesprochen, deshalb poste ich diesen Text mal in beide issues.

Gibt es hierzu eventuell schon Neuigkeiten?

Vielen Dank im Voraus für Eure Hilfe.

udotrautmann commented 4 years ago

Hallo,

ich habe mit dem Wandthermostat HmIP-BWTH das gleiche Problem. RedMatic Version 6.0.3

Wenn ich was beitragen kann um das Problem zu lösen... Bereitstellung von Logs usw. dann bitte nur eine kurze Nachricht... würde mich auch freuen bei der Problemlösung helfen zu dürfen.

Beste Grüße Udo

ghost commented 3 years ago

Ich habe genau das gleiche Problem. Es tritt sowohl beim steuern von einzelnen Theremostaten HM-CC-RT-DN auf, sowie bei erstellen Homematic Gruppen aus HM-CC-RT-DN und HM-TC-IT-WM-W-EU.

CapoD commented 3 years ago

Hallo, ich bin seit heute auch Besitzer eines Wandthermostats und einiger Heizkörperthermostate. Leider taucht das Problem auch bei mir auf. @hobbyquaker Ich habe einen Debug-Log gezogen, der mE die Stelle zeigt an der ein Gerät auf die besagten 21° gestellt wird:

Dec 28 22:28:44 ccu3-webui daemon.debug node-red[14134]: [redmatic-homekit-homematic-devices:bafd204e.0edf6] subscribe HmIP-RF.000A9BE99AA9EB:1.SET_POINT_TEMPERATURE
Dec 28 22:29:13 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http system.multicall [[{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C9E:1","SET_POINT_TEMPERATURE",14.5]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C9E:1","BOOST_TIME",0]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C9E:1","PARTY_MO
Dec 28 22:29:21 ccu3-webui daemon.debug node-red[14134]: [redmatic-homekit-homematic-devices:bafd204e.0edf6] set Untergeschoss (0) TargetHeatingCoolingState 1 -> INT0000001:1 {"CONTROL_MODE":1,"SET_POINT_TEMPERATURE":21}
Dec 28 22:29:21 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc > VirtualDevices putParamset ["INT0000001:1","VALUES",{"CONTROL_MODE":1,"SET_POINT_TEMPERATURE":21}]
Dec 28 22:29:23 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http system.multicall [[{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C70:1","SET_POINT_TEMPERATURE",21]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C70:1","BOOST_TIME",0]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C70:1","PARTY_MODE
Dec 28 22:29:23 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http eventSingle ["nr_D24DjW_VirtualDevices","INT0000001:1","SET_POINT_TEMPERATURE",21]
Dec 28 22:29:25 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http system.multicall [[{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A9BE99AA9EB:1","SET_POINT_TEMPERATURE",21]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A9BE99AA9EB:1","BOOST_TIME",0]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A9BE99AA9EB:1","PARTY_MODE
Dec 28 22:29:25 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http eventSingle ["nr_D24DjW_VirtualDevices","INT0000001:1","SET_POINT_TEMPERATURE",21]
Dec 28 22:29:27 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http system.multicall [[{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C55:1","SET_POINT_TEMPERATURE",21]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C55:1","BOOST_TIME",0]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C55:1","PARTY_MODE
Dec 28 22:29:27 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http eventSingle ["nr_D24DjW_VirtualDevices","INT0000001:1","SET_POINT_TEMPERATURE",21]
Dec 28 22:29:29 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http system.multicall [[{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A9BE99AA9EB:1","SET_POINT_TEMPERATURE",21]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A9BE99AA9EB:1","BOOST_TIME",0]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A9BE99AA9EB:1","PARTY_MODE
Dec 28 22:29:29 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http eventSingle ["nr_D24DjW_VirtualDevices","INT0000001:1","SET_POINT_TEMPERATURE",21]
Dec 28 22:29:29 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http system.multicall [[{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C76:1","SET_POINT_TEMPERATURE",21]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C76:1","BOOST_TIME",0]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28C76:1","PARTY_MODE
Dec 28 22:29:29 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http eventSingle ["nr_D24DjW_VirtualDevices","INT0000001:1","SET_POINT_TEMPERATURE",21]
Dec 28 22:29:31 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http system.multicall [[{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28CA0:1","SET_POINT_TEMPERATURE",21]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28CA0:1","BOOST_TIME",0]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","000A1BE9A28CA0:1","PARTY_MODE
Dec 28 22:29:31 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http eventSingle ["nr_D24DjW_VirtualDevices","INT0000001:1","SET_POINT_TEMPERATURE",21]
Dec 28 22:29:33 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http system.multicall [[{"methodName":"event","params":["nr_D24DjW_HmIP-RF","00119A499C07D7:1","SET_POINT_TEMPERATURE",21]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","00119A499C07D7:1","BOOST_TIME",0]},{"methodName":"event","params":["nr_D24DjW_HmIP-RF","00119A499C07D7:1","PARTY_MODE
Dec 28 22:29:33 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc < http eventSingle ["nr_D24DjW_VirtualDevices","INT0000001:1","SET_POINT_TEMPERATURE",21]
Dec 28 22:29:37 ccu3-webui daemon.debug node-red[14134]: [redmatic-homekit-homematic-devices:bafd204e.0edf6] set Untergeschoss (0) TargetTemperature 14.5 -> VirtualDevices.INT0000001:1.SET_POINT_TEMPERATURE 14.5
Dec 28 22:29:37 ccu3-webui daemon.debug node-red[14134]: [ccu-connection:localhost] rpc > VirtualDevices setValue ["INT0000001:1","SET_POINT_TEMPERATURE",{"explicitDouble":14.5}]

Wenn man sich den Code für beispielsweise das Heizkörperthermostat hmip-etrv.js ansieht, dann fällt auf, dass hier im Code auch die 21° gesetzt werden.

Ich bin leider nur hobbymäßiger NodeJS Entwickler (wenn auch beruflich Softwareentwickler), aber ich würde mich dem Problem annehmen, wenn es sonst niemand tun möchte. Dazu würde ich allerdings etwas Unterstützung benötigen.

krylle commented 3 years ago

@CapoD Ich helfe wo ich nur kann.

ghost commented 3 years ago

Wenn ich ohne jegliche Programmier Kenntnisse helfen kann, gerne.

udotrautmann commented 3 years ago

Bin zwar nicht so der JavaScript Profi aber das Verhalten scheint zum Teil schon gewollt aber halt nicht immer wenn man die Temperatur einstellen möchte! Sondern sollte eigentlich nur erfolgen, wenn man den Modus ändert.

Es hilft folgender Workaround:

In diesem Verzeichnis befinden sich die js-files für die jeweiligen HMIP Devices:

/usr/local/addons/redmatic/lib/node_modules/redmatic-homekit/homematic-devices/

Dort dann das entsprechende file für Euer Device per "vi" editieren (bei mir "hmip-bwth.js" da ich als Device "HmIP-BWTH" im Einsatz habe) und die Stelle mit "SET_POINT_TEMPERATURE: 21" einfach auskommentieren -> "// SET_POINT_TEMPERATURE: 21"

Danach Node-Red neu starten und glücklich sein ;-)

hobbyquaker commented 3 years ago

Hmm, ich muss zugeben ich hab grad keine Ahnung mehr warum ich beim TargetHeatingCoolingState die 21 hardcoded hab. Aber ich vermute es hatte irgendeinen Grund ;-) Ich schau es mir noch mal an, hoffe das dieses Wochenende erledigen zu können.