HeatIt Z-TRM3

Hallo zusammen,

ich bin auf der Suche nach einem Ersatz für meine Fussbodenheizungssteuerung. Bislang habe ich eine Steuereinheit von Busch Jäger im Einsatz, das ist noch eines der wenigen nicht smarten Geräte. Das soll jetzt endlich mal rausfliegen. Dabei bin ich auf das genannte HeatIt Modul gestossen. Ich habe 230V Stellmotoren, somit sollte ich das doch 1:1 tauschen können? Weil es ist beim dem Modul immer die Rede von elektrischen Fussbodenheizungen, ich erkenne da aber nicht wirklich den unterschied. Meine Busch-Jäger Steuerung unterscheidet da auch nicht. Klar gibt es welche, die mit 24V schalten, das habe ich ja aber nicht. Und hat jemand das Ding mit Symcon im Einsatz und kann da was davon berichten? Irgendwelche Probleme damit?

Gruss Mayday

Wir haben das Gerät bisher nicht explizit getestet aber wir unterstützen die Z-Wave Kommando Klasse, die das Gerät hat - somit bin ich sehr zuversichtlich, dass es problemlos gehen wird.

paresy

Das klingt ja schonmal gut. Ich denke, ich bestelle mir das mal einfach und werde es testen…

Gruss mayday

Ein ähnliches Thema hatten wir noch hier:
Raumthermostat Fußbodenheizung

Ich habe aber noch nicht die Zeit gefunden das neue Thermostat zu testen, das es sich nicht in mein Busch-Jäger Schalterprogram integrieren lässt (zu groß) und daher einzeln verbaut werden muss.

Grüße
Stefan

Oh, ok…Das wäre schlecht, bei mir ist der Regler auch nicht einzeln verbaut… so wie ich das aber verstanden habe, müsste es eigentliche in 55er Schalterserien passen… Ich schau mal, habe es jetzt bestellt und hoffe, dass es rein passt, sonst müsste ich mir tatsächlich was überlegen und das wäre dann komplizierter, den Regler zu versetzen.

Gruss Mayday

Das Thermostat von HeatIt müsste glaub ich in das normale Schalterprogramm rein passen.

Grüße
Stefan

Also das Thermostat ist heute gekommen und ich habe das Ding gleich mal eingebaut.

Hier mal kurz der erste Eindruck:
Soweit funktioniert mit Symcon alles super, wie fast zu erwarten :slight_smile: Leider meldet das Modul keine aktuelle Temperatur in einem Extrafeld zurück, evtl. muss man dazu den extra Temperarturfühler einbauen, dass muss ich mal noch testen. Jedenfalls hat man damit bzgl. Anzeigen im Webfront o.ä. im Moment keine Unterscheidung zwischen Ziel- und Ist-Temperatur. Kein Drama, aber anders als bei meinen normalen Heizköperthermostaten. Bzgl. Einbau kann man noch sagen, mit meiner Schalterserie Busch Jäger Balance SI (55er Mass) passt das Modul ganz ok, ich musste etwas an den inneren Überständen des Busch Jäger Rahmens abnehmen, dass es passt. War aber jetzt soweit kein grosses Thema, mit einem Cutter eben kurz rausgeschnitten.

Soweit mal der erste Eindruck, ich hoffe, das bleibt so :slight_smile:

Gruss Mayday

Also so wie ich das aus der Anleitung sehen kann, muss das Thermostat Temperaturwerte liefern. Assoziationsgruppe 3 → Senden von Multilevel-Sensorberichten für internen Temperatursensor
Parameter 18: Temperatur Berichtsintervall
Parameter 19: Hysterese des Temperaturberichts

Es sollte bei Änderungen von 1°C ein Temperaturbericht kommen, oder alle 60 Sekunden in der Werkseinstellung.

Vielleicht testest du mal die Einstellung „Erzwinge Basic-Klasse“ in den Expertenoptionen. Viele meiner Z-Wave Geräte funktionieren damit besser. Gerätekonfiguration neu laden nicht vergessen.

Grüße
Stefan

Anzeigen tut der Thermostat auch die gemessenen Werte, man kann hier umschalten zwischen dem Setpoint-Wert und dem gemessenen. Nach Symcon wird allerdings kein Temperaturwert übermittelt bzw. es wird keine Variable dafür angelegt. Ich habe mal ein bisschen rumgespielt, der Thermostat hat 4 Untergeräte. Ich konnte allerdings nicht so recht rausfinden, was was davon sein soll. Im Debug habe ich aber festgestellt, dass einer der Unterkanäle offenbar die Temperatur beinhaltet. Hier konkret die Nachricht:

27.10.2021, 15:23:08 | (R) Class (60): MULTI_CHANNEL | 0D 02 00 31 05 01 22 01 03

die letzten beiden Werte 01 03 sind hier 25,9 Grad, würde ich mal behaupten. Das passt jedenfalls mit der Anzeige fast überein, da wird 26,0 angezeigt. Ich habe davor die Temperatur mal hochgefahren, Anzeige 26,5, in der Nachricht 01 07 was 26,3 Grad wären. Soweit so gut, aber leider bringt das erstmal noch nichts. Ich habe für das Untergerät 2 (aber ich habe auch alle anderen probiert) eine Instanz erstellt, allerdings haben die alle überhaupt keine Variablen, somit passiert hier auch nichts. Ich habe auch mit der Basicklasse rumprobiert, aber auch hier passiert nichts, bzw. hier gibt es dann nur eine weitere Boolean und Integer Variable ohne Werte. Somit denke ich, dass hier noch in Symcon was passieren muss um den Ist-Temperaturwert korrekt auszulesen bzw. um eben hierfür eine sep. Variable anzulegen. Wie gesagt, das ist jetzt erstmal auch nicht entscheidend, es ist eher Nice-to-have, dass hier die Ist-Werte übermittelt werden.

Gruss Mayday

Edit: natürlich hat es bei mir keine 26 Grad :slight_smile: Ich habe jetzt auch den korrekten Parameterwert für die Offsets des internen Sensors eingestellt, jetzt passt das. Aber damit ist auch klar, R) Class (60): MULTI_CHANNEL | 0D 02 00 31 05 01 22 01 03 ist definitiv die aktuell gemeldete Temperatur.

Also nach einer knappen Woche kann ich sagen, dass das Ding sehre zuverlässig funktioniert.

@paresy Wie sieht es den aus, ist es realistisch, dass das mit der Ist-Temperatur demnächst in Symcon mit dem HeatIt Funktionieren wird? Ich würde mir noch zwei weitere von den Dingern kaufen. Auch wenn das mit der Ist-Temp jetzt nicht absolut entscheidend ist, ist es natürlich trotzdem nett, wenn es funktionieren würde…

Gruss Mayday

MULTI_CHANNEL heißt, dass du einfach die Untergeräte anlegen musst. Bietet dir die Konsole das nicht an?

paresy

Doch, das Ding hat 4 Untergeräte, die haben aber alle keinerlei Variablen. Unterstütze Klassen der Untergeräte sind ZWAVEPLUS_INFO, MULTI_CHANNEL, SUPERVISION, MANUFACTURER_SPECIFIC, VERSION, SECURITY und SCURITY_2. Ich vermute, hier fehlt noch eine Klasse bzgl. der Temperatur? Nur im Debug sehe ich eben die entsprechende Nachricht, die eigentlich ja erstmal gut aussieht.

Gruss Mayday

Hast du bei den Untergeräte die Informationen noch einmal alle Geladen? Gab es dort keine Fehlermeldungen? Die Untergeräte müssen korrekterweise Ihre Klassen melden, sodass wir auch die Variablen anfragen können.

paresy

Ja, alles geladen und keine Fehlermeldungen. Auf den Untergeräten passiert auch überhaupt nichts, wenn ich auf Debug gehe, da kommt nichts an. Nur beim Debug auf dem Hauptgerät sehe ich dann eben die o.g. Multichannel Nachricht mit den Temp-Werten.

Siehst du was im Debug wenn du auf den Untergeräten auf „Laden“ klickst?

paresy

Ja da passiert was

02 A1 22 09 5B 00 00 00 00 
TXT: 02.11.2021, 13:22:51 |  (S) RequestInfoNode | `V
HEX: 02.11.2021, 13:22:51 |  (S) RequestInfoNode | 60 56 
TXT: 02.11.2021, 13:22:51 |               Update | <EOT><BS><ACK>^Ul��
HEX: 02.11.2021, 13:22:51 |               Update | 04 08 06 5E 55 6C 98 9F 
TXT: 02.11.2021, 13:22:51 |          NodeClasses | ^Ul��
HEX: 02.11.2021, 13:22:51 |          NodeClasses | 5E 55 6C 98 9F 
TXT: 02.11.2021, 13:22:51 |   NodeControlClasses | 
HEX: 02.11.2021, 13:22:51 |   NodeControlClasses | 
TXT: 02.11.2021, 13:22:51 | (S) RequestInfoNodeSecure | �<STX>
HEX: 02.11.2021, 13:22:51 | (S) RequestInfoNodeSecure | 98 02 
TXT: 02.11.2021, 13:22:51 | (R) Class (98): SECURITY | <ETX><NUL>���Y`rZspzC@B2
HEX: 02.11.2021, 13:22:51 | (R) Class (98): SECURITY | 03 00 86 85 8E 59 60 72 5A 73 70 7A 43 40 42 32 
TXT: 02.11.2021, 13:22:51 |      Update (Secure) | ���Y`rZspzC@B2
HEX: 02.11.2021, 13:22:51 |      Update (Secure) | 86 85 8E 59 60 72 5A 73 70 7A 43 40 42 32 
TXT: 02.11.2021, 13:22:51 |      Update (Secure) | 0 more reports will follow
HEX: 02.11.2021, 13:22:51 |      Update (Secure) | 30 20 6D 6F 72 65 20 72 65 70 6F 72 74 73 20 77 69 6C 6C 20 66 6F 6C 6C 6F 77 
TXT: 02.11.2021, 13:22:51 | NodeClasses (Secure) | ���Y`rZspzC@B2
HEX: 02.11.2021, 13:22:51 | NodeClasses (Secure) | 86 85 8E 59 60 72 5A 73 70 7A 43 40 42 32 
TXT: 02.11.2021, 13:22:51 | NodeControlClasses (Secure) | 
HEX: 02.11.2021, 13:22:51 | NodeControlClasses (Secure) | 
TXT: 02.11.2021, 13:22:51 | (S) ZWaveVersion::RequestClassVersion | �<DC3>`
HEX: 02.11.2021, 13:22:51 | (S) ZWaveVersion::RequestClassVersion | 86 13 60 
TXT: 02.11.2021, 13:22:51 | (R) Class (86): VERSION | <DC4>`<EOT>
HEX: 02.11.2021, 13:22:51 | (R) Class (86): VERSION | 14 60 04 
TXT: 02.11.2021, 13:22:51 | (S) ZWaveMultiChannel::RequestInfo | `<HT><SOH>
HEX: 02.11.2021, 13:22:51 | (S) ZWaveMultiChannel::RequestInfo | 60 09 01 
TXT: 02.11.2021, 13:22:51 | (R) Class (60): MULTI_CHANNEL | <LF><SOH><BS><ACK>^l��
HEX: 02.11.2021, 13:22:51 | (R) Class (60): MULTI_CHANNEL | 0A 01 08 06 5E 6C 98 9F 
TXT: 02.11.2021, 13:22:51 |   NodeChannelClasses | ^l��
HEX: 02.11.2021, 13:22:51 |   NodeChannelClasses | 5E 6C 98 9F 
TXT: 02.11.2021, 13:22:51 | NodeChannelControlClasses | 
HEX: 02.11.2021, 13:22:51 | NodeChannelControlClasses | 
TXT: 02.11.2021, 13:22:51 | (S) ZWaveVersion::RequestClassVersion | �<DC3>r
HEX: 02.11.2021, 13:22:51 | (S) ZWaveVersion::RequestClassVersion | 86 13 72 
TXT: 02.11.2021, 13:22:51 | (R) Class (86): VERSION | <DC4>r<STX>
HEX: 02.11.2021, 13:22:51 | (R) Class (86): VERSION | 14 72 02 
TXT: 02.11.2021, 13:22:51 | (S) ZWaveVersion::RequestClassVersion | �<DC3>^
HEX: 02.11.2021, 13:22:51 | (S) ZWaveVersion::RequestClassVersion | 86 13 5E 
TXT: 02.11.2021, 13:22:51 | (R) Class (86): VERSION | <DC4>^<STX>
HEX: 02.11.2021, 13:22:51 | (R) Class (86): VERSION | 14 5E 02 
TXT: 02.11.2021, 13:22:51 | (S) ZWaveVersion::RequestClassVersion | �<DC3>�
HEX: 02.11.2021, 13:22:51 | (S) ZWaveVersion::RequestClassVersion | 86 13 86 
TXT: 02.11.2021, 13:22:52 | (R) Class (86): VERSION | <DC4>�<ETX>
HEX: 02.11.2021, 13:22:52 | (R) Class (86): VERSION | 14 86 03 
TXT: 02.11.2021, 13:22:52 | (S) ZWaveVersion::RequestClassVersion | �<DC3>�
HEX: 02.11.2021, 13:22:52 | (S) ZWaveVersion::RequestClassVersion | 86 13 98 
TXT: 02.11.2021, 13:22:52 | (R) Class (86): VERSION | <DC4>�<SOH>
HEX: 02.11.2021, 13:22:52 | (R) Class (86): VERSION | 14 98 01 
TXT: 02.11.2021, 13:22:52 | (S) ZWaveManufacturerSpecific::RequestInfo | r<EOT>
HEX: 02.11.2021, 13:22:52 | (S) ZWaveManufacturerSpecific::RequestInfo | 72 04 
TXT: 02.11.2021, 13:22:52 | (R) Class (72): MANUFACTURER_SPECIFIC | <ENQ><SOH>�<NUL><ETX><STX><ETX>
HEX: 02.11.2021, 13:22:52 | (R) Class (72): MANUFACTURER_SPECIFIC | 05 01 9B 00 03 02 03 
TXT: 02.11.2021, 13:22:52 |       ManufacturerID | 019B
HEX: 02.11.2021, 13:22:52 |       ManufacturerID | 30 31 39 42 
TXT: 02.11.2021, 13:22:52 |          ProductType | 0003
HEX: 02.11.2021, 13:22:52 |          ProductType | 30 30 30 33 
TXT: 02.11.2021, 13:22:52 |            ProductID | 0203
HEX: 02.11.2021, 13:22:52 |            ProductID | 30 32 30 33 
TXT: 02.11.2021, 13:22:52 | (S) ZWavePlusInfo::RequestInfo | `<CR><NUL><SOH>^<SOH>
HEX: 02.11.2021, 13:22:52 | (S) ZWavePlusInfo::RequestInfo | 60 0D 00 01 5E 01 
TXT: 02.11.2021, 13:22:52 | (R) Class (60): MULTI_CHANNEL | <CR><SOH><NUL>^<STX><SOH><ENQ><NUL><DC2><NUL><DC2><SOH>
HEX: 02.11.2021, 13:22:52 | (R) Class (60): MULTI_CHANNEL | 0D 01 00 5E 02 01 05 00 12 00 12 01 
TXT: 02.11.2021, 13:22:52 | (R) MCed (5E): ZWAVEPLUS_INFO | <STX><SOH><ENQ><NUL><DC2><NUL><DC2><SOH>
HEX: 02.11.2021, 13:22:52 | (R) MCed (5E): ZWAVEPLUS_INFO | 02 01 05 00 12 00 12 01 
TXT: 02.11.2021, 13:22:52 | Invalid data length (Expected: 13, Actual: 9) | <EOT><NUL>V<CR>^<STX><SOH><ENQ><NUL><DC2><NUL><DC2><SOH>
HEX: 02.11.2021, 13:22:52 | Invalid data length (Expected: 13, Actual: 9) | 04 00 56 0D 5E 02 01 05 00 12 00 12 01 
TXT: 02.11.2021, 13:22:52 | (S) ZWaveVersion::RequestInfo | �<DC1>
HEX: 02.11.2021, 13:22:52 | (S) ZWaveVersion::RequestInfo | 86 11 
TXT: 02.11.2021, 13:22:52 | (R) Class (86): VERSION | <DC2><ETX><ACK><BEL><EOT><NUL><ETX><SOH><EOT><NUL>
HEX: 02.11.2021, 13:22:52 | (R) Class (86): VERSION | 12 03 06 07 04 00 03 01 04 00 
TXT: 02.11.2021, 13:22:52 | (S) ZWaveDevice::DeleteReturnRoute | `<CR><NUL><SOH>GV�
HEX: 02.11.2021, 13:22:52 | (S) ZWaveDevice::DeleteReturnRoute | 60 0D 00 01 47 56 A7 
TXT: 02.11.2021, 13:22:52 | (S) ZWaveDevice::AssignReturnRoute | `<CR><NUL><SOH>FV<SOH>�
HEX: 02.11.2021, 13:22:52 | (S) ZWaveDevice::AssignReturnRoute | 60 0D 00 01 46 56 01 A7 
TXT: 02.11.2021, 13:22:52 | (S) RequestRoutingList | �V<NUL><NUL><NUL>
HEX: 02.11.2021, 13:22:52 | (S) RequestRoutingList | 80 56 00 00 00 

Ich sehe gerade, offenbar kommen hier doch auch die Nachrichten mit den Temp-Werten an, da habe ich evtl. vorher nicht lange genug im Debug gewartet

02.11.2021, 13:25:42 | (R) Class (60): MULTI_CHANNEL | 0D 02 00 31 05 01 22 00 E0

nur kann das eben nicht ausgewertet bzw. einer Variablen zugeordnet werden

Auch taucht hier immer wieder sowas auf:

02.11.2021, 13:27:12 | Invalid data length (Expected: 14, Actual: 10) | 04 00 56 0E 32 02 A1 22 09 3E 00 00 00 00

Ich habe nochmal etwas weiter den Debugger auch auf den anderen Unterklassen laufen lassen

02.11.2021, 13:31:42 | (R) Class (60): MULTI_CHANNEL | 0D 02 00 31 05 01 22 00 E4
02.11.2021, 13:31:42 | (R) MCed (31): SENSOR_MULTILEVEL | 05 01 22 00 E4
02.11.2021, 13:31:42 | Invalid data length (Expected: 10, Actual: 6) | 04 00 56 0A 31 05 01 22 00 E4

Also E4 scheint für mich plausibel als aktuelle IST-Temperatur zu sein E4 ist 228, als Tempwert 22,8 passt im Moment. Und offenbar wird hier auch SENSOR_MULTILEVEL übermittelt, oder lese ich das falsch? Die invalid Data length danach scheint das dann allerdings ja als Fehler zu erkennen. Und wie gesagt, es gibt auch in den Unterkanälen keine Klasse für SENSOR_MULTILEVEL vermutlich gibt es deswegen auch keine Variable?

Ich weiß nicht, ob das mal wieder so ein Problem mit SECURE und nicht SECURE ist, aber könntest du das Gerät einmal ablernen und dann ohne SECURE (die Option ist im Konfigurator) testweise anlernen und schauen, ob dann mehr Klasse verfügbar sind?

paresy

Ja das funktioniert dann tatsächlich. Unsecure angelernt und nun habe ich auch bei den Unterkanälen die passende Klasse Sensor_Multilevel und auch die Variable für die Temperatur wurde angelegt. Ich habe es dann gleich nochmal Secure versucht, da fehlt die Klasse dann wieder reproduzierbar.