(Spezial-)Temperaturen im Automodus und Fensterkontakte bei MAX!

Hallo,

Mein CUL ist vorgestern endlich angekommen und jetzt am Wochenende habe ich ein bisschen Zeit, vom MAX!-Cube wegzumigrieren. Mir sind jedoch noch ein paar Fragezeichen im Kopf aufgetaucht, die ich gerne mal an euch richten würde:

Bei einem MAX!-Thermostat (BC-RT-TRX-CyG-3) gibt es die Variablen MANU_MODE und SET_TEMPERATURE. Wo ist der Unterschied? Mit beiden kann ich eine Zieltemperatur setzen und das Gerät wechselt automatisch in den manuellen Modus.

Zur Ansteuerung von Homegear benutze ich wie so viele hier openHAB. Wenn ich ein Setpointelement auf ein Number-Item rendere (das wiederum über das Homematic-Binding auf SET_TEMPERATURE zugreift) kann ich per WebUI die Temperatur des Geräts verändern, aber es wechselt immer in den manuellen Modus. Im MAX!Cube geht das auch ohne den Automodus zu verlassen. Wie kann ich das auch realisieren?
Und in der Erweiterung: Wie ich Pushbuttons realisiere, die eine Action-Variable (z.B. AUTO_MODE, BOOST_MODE) triggern, weiß ich schon. Ich hätte auch gerne die Möglichkeit, die Eco- bzw. Comforttemperatur auf die gleiche Weise zu setzen. Quasi so als würde ich die Sonne/Mond-Taste am Gerät drücken. Auch hier wird der Automodus nicht verlassen.

Kann ich einen Fensterkontakt mit einem Wandthermostat linken? Oder muss ich die “Wenn Fenster auf, dann Heizung aus”-Logik in openHAB nachbauen? Hierzu müsste ich ja wieder wie oben die WINDOW_OPEN_TEMPERATURE triggern können. Wenn ich die beiden linken kann, welche channels muss ich dann für den addLink-Call benutzen?

Viele Grüße und fetten Dank für die großartige Arbeit hier!!

[quote=“Vrob01”]
Kann ich einen Fensterkontakt mit einem Wandthermostat linken? Oder muss ich die “Wenn Fenster auf, dann Heizung aus”-Logik in openHAB nachbauen? Hierzu müsste ich ja wieder wie oben die WINDOW_OPEN_TEMPERATURE triggern können. Wenn ich die beiden linken kann, welche channels muss ich dann für den addLink-Call benutzen?[/quote]

Zumindest das kann ich jetzt beantworten :wink:
Ja kann man. Dazu die addLink-Methode benutzen (ich habe das lokal über PHP-Skripte gemacht, da man die Geräte im besten Fall nur einmal untereinander anlernen muss), ähnlich wie beim Wandthermostat -> Heizkörperstellwerk.

Die IDs sind natürlich dann an das jeweilige Setup anzupassen (einfach in Homgears CLI nachgucken).
Sendekanal ist also 3 und Empfangskanal ist 4. Aber damit wird nur die Temperatur auf dem Wandthermostat gesetzt. Wenn man will, dass die Heizkörper direkt zugemacht werden, muss man die Fensterkontakte noch mit den Stellwerken verbinden:

Hier den Sendekanal 1 und Empfangskanal 4 benutzen.

Irgendwie fehlt so eine Übersicht, wer wie mit wem über welchen Kanal reden kann im Wiki :wink: Wenn ich hier einigermaßen alles am Laufen habe, würd ich mal so eine Tabelle reinfrickeln. Oder wird das eh mit der kommenden Gruppenfunktion automagisch gehen?

Hey,

zwischen MANU_MODE und SET_TEMPERATURE gibt es keinen Unterschied. Es wird zum Setzen das gleiche Funkpaket gesendet. Es gibt beide Werte aus Kompatibilitätsgründen.

Christian hat gerade etwas rumgespielt, wie genau Eco- und Comforttemperatur funktionieren, hatten wir nämlich wieder verdrängt… Die MAX!-Software kennt eigentlich keinen Eco-Modus oder Comfort-Modus. Beim Drücken der jeweiligen Buttons wird ein MANU_MODE-Paket gesendet. D. h. den ECO-Modus und Comfort-Modus kannst du nur mit MANU_MODE setzen. Dabei wird der Auto-Modus verlassen (allerdings auch aus der MAX!-Software). Ich wüsste leider keinen Weg, wie sich letzteres verhindern lässt… Wenn jemand ein entsprechendes Paket finden sollte, bau ich das natürlich ein.

Liebe Grüße

Sathya

Danke für die Aufklärung bzgl. Eco- und Komforttemperatur. Dann ließe sich das Auslesen der “Spezialtemperaturen” und das anschließende setzen mit SET_TEMPERATURE leicht per Skript lösen. Aber dafür warte ich mal auf 0.6 mit dem Gruppenfeature :wink:

Bleibt aber noch die Frage nach dem Setzen einer beliebigen Temperatur ohne den Auto-Modus zu verlassen. Das geht mit dem MAX! Cube auf jeden Fall, habe ich gerade getestet. Ich habe ein Stellwerk an den Cube angelernt. Der entsprechende Raum erscheint und das Gerät ist im Automodus. Die Zieltemperatur laut Wochenplan ist 21.0°C. Dann kann ich auf die (+) / (-) - Icons klicken und die Temperatur in 0.5°C Schritten einstellen. Das wird so ans Gerät übertragen, sodass ich z.B. 20°C setzen kann, ohne den Automodus zu verlassen.

Während dieses Tests hab ich mal tail -f /var/log/homegear/homegear.log laufen lassen und folgende Paketfolge mitgehört (ich nehme mal an, dass Homegear alle Pakete die so rumfliegen reportet, unabhängig, ob sie an den CUL addressiert waren, oder?):

Wenn ich das jetzt richtig interpretiere wird einmal 0x40 (CONTROL_MODE) gesendet und dann kommt vom Gerät ein 0x02 (ACK) zurück?
Ich dachte, bei CONTROL_MODE kann die Temperatur nicht gesetzt werden? Kann ich noch “eindeutiger” die vom Cube gesendeten Pakete identifizieren?

Ich glaube, ich hab die Lösung ;>

Hier mal zwei Pakete zum Vergleich:

MAX!Cube setzt Temperatur im Automodus:

(Leerzeichen von mir eingefügt, zwecks besserer Lesbarkeit)

Homegear setzt SET_TEMPERATURE:

Interessant sind nur die gesendeten (Tx), die anderen beiden sind nur ACKs.
Neben der Payload unterscheidet sich auch der SubType (0x05 vs 0x04).

Payload bei MAX!Cube -> Stellwerk: "01 20"
Payload bei Homegear -> Stellwerk: “01 60”

In beiden Fällen soll die Zieltemperatur 16.0°C sein.

Heißt das also, dass der Temperaturbereich 0…31°C beim MaxCube auf 0…62 abgebildet wird? Da ja immer in 0.5°C Schritten gestellt wird muss der Bereich doppelt so groß sein, wie die maximal setzbare Temperatur. Homegear scheint dagegen auf 64…126 abzubilden?
Ich bin mir jetzt mit den genauen Grenzen nicht so sicher, weil ich gerade vergessen habe, bis zu welcher Maximaltemperatur sich MAX!-Geräte setzen lassen :wink:

Bin im Endeffekt darauf gekommen, als ich das letzte byte von hex in dez umgerechnet habe:
(20)[size=85]_16[/size] = (32)[size=85]_10[/size] = (2°16.0)[size=85]_10[/size]
(60)[size=85]_16[/size] = (96)[size=85]_10[/size] = (2*16.0 + 64)[size=85]_10[/size]

Edit: Wie kann ich ein Paket mit WOR: yes manuell senden? Wenn ich es über das zweite Standarddevice in der Max-Familie (fs 4, ds 5) versuche wird das Paket zwar verschickt, aber nur mit WOR: no. Ich wollte meine Theorie testen und folgendes Paket abschicken:

Bekomme aber leider kein ACK vom Peer, was mich vermuten lässt, dass es dort gar nicht registriert wurde…

Lg,
Markus

Hey,

das schaue ich mir morgen gleich an :wink:. Die Temperatur sind nur 6 Bit. Das ist also in beiden Fällen 0x20 = 32 = 16 °C. Was die anderen Bits waren, muss ich nachschauen. Ich bin mir auch nicht ganz sicher, ob ich über “send” WOR eingebaut habe - ließe sich aber schnell ergänzen. Ohne WOR gibt’s natürlich kein ACK.

Liebe Grüße

Sathya

Klappt :smiley:.

Klasse, dass du das herausgefunden hast!!! In Version 0.6 hatte ich für das “send” bereits eingebaut, dass es ein WOR-Paket ist. In Version 0.5 gibt es leider keine Möglichkeit, MAX!-Pakete mit WOR zu senden.

Ich habe jetzt alle MAX!-XML-Dateien angepasst und es wird ein neues Release kompiliert (0.5.24-6). Für den Raspberry Pi sollte es bis heute Abend fertig sein. Wenn du damit jetzt “SET_TEMPERATURE” setzt, wird der Modus nicht verlassen.

Liebe Grüße und noch einmal vielen Dank für’s Rumspielen!

Sathya

Genial, danke, dass du das so schnell implementiert hast! Ich habs gerade mal getestet und es funktioniert :smiley:

Dafür bin ich gerade auf ein anderes Problem gestoßen (ist jetzt aber ein bisschen Off-Topic): Ich hatte ja ein paar fehlende XML-Files für die MAX! Shutter Contacts und Eco-Switches gemeldet. Die hast du ja in dem neuen Release auch mitgeliefert. Leider werden meine Shutter Contacts jetzt als “BC-RT-TRX-CyG-2” erkannt, obwohl in der “BC-SC-Rd-WM.xml” ja eigentlich der richtige Typ/Firmware steht?!
Beim Ecoswitch hat es übrigens funktioniert. Der wird jetzt auch ohne meine modifizierte XML korrekt erkannt :slight_smile:

EDIT:
Habs gefunden, in der BC-SC-Rd-WM.xml ist nur die “id” falsch :wink:

[quote]
<type_id>0x0400</type_id>
0x10
[/quote]

Was hat mich denn da geritten… Ist korrigiert. Und noch einmal danke :slight_smile:!

LG Sathya

A post was split to a new topic: AUTO_MODE Max! Temperatur