MAX! BC-RT-TRX-CyG-3 Control Mode

Hallo an alle.

Ich habe ein MAX! BC-RT-TRX-CyG-3 Thermostat über homegear erfolgreich in openhab eingebunden.
Im PaperUI kann ich den Control Mode ändern und die geänderten Modi werden auch zum Thermostat
geschickt.
Jetzt möchte ich den Control Mode auch im BasicUI haben und ändern können. Dazu habe ich ein Item
erstellt:

Number Thermostat_Kontrollmode_Keller "Kontrollmode Keller" {channel="homematic:HG-BC-RT-TRX-CyG-3:6ff082ef:NEQ0670608:1#CONTROL_MODE"}

und in der Sitemap folgendes geschrieben:

Selection item=Thermostat_Kontrollmode_Keller mappings=[0="Auto", 1="Manuell", 2="Party", 3="Boost"]

Leider wird das Item weder initialisiert noch wird ein Befehl an den Thermostaten gesendet. Wo habe ich hier
einen Fehler gemacht?

Hi,

CONTROL_MODE ist, soweit ich mich erinnere, nur zum Lesen: https://www.homegear.eu/index.php/MAX!_BC-RT-TRX-CyG-3_Reference

Die Modes werden über AUTO_MODE, MANU_MODE etc. gesetzt.

Ich hatte das damals so:

Sitemap:

Text item=badHeizungMode label="Modus [MAP(heatmode.map):%s]" 				
Switch item=badHeizungModeSet label="Heizungsmodus" mappings=[1="Auto", 2="Manuell", 3="Boost"]

Items:

Number badHeizungModeSet  <line>
Number badHeizungMode "Modus [MAP(heatmode.map):%s]" <heating> (gHeaters, rBad)  	{ channel="homematic:HG-BC-RT-TRX-CyN:803xxx4ACC:MEQxxxx:1#CONTROL_MODE" }
Number badHeizungModeAuto (gTempModeAuto) 	{ channel="homematic:HG-BC-RT-TRX-CyN:803xxx4ACC:MEQxxxx:1#AUTO_MODE"} 
Number badHeizungModeManual (gTempModeManu) 	{ channel="homematic:HG-BC-RT-TRX-CyN:803xxx4ACC:MEQxxxx:1#MANU_MODE"}
Number badHeizungSet "Soll Temperatur [%.1f °C]" <heating> (gSetTemp, gHeatingSleep, gHeaters, rBad)     { channel="homematic:HG-BC-RT-TRX-CyN:803xxx4ACC:MEQxxxx:1#SET_TEMPERATURE" }

heatmode.map

- = - 
0 = Auto 
1 = Manuell 
2 = Party 
3 = Boost

Und dazu folgende rule:

rule "badHeizungMode"
when
 	Item badHeizungModeSet received command  
then
 
 	var badState = badHeizungModeSet.state.toString
 
 	if(badState == "1"){
 		//auto
 		sendCommand(badHeizungModeAuto, "1")
 	} else if(badState == "2"){
 		//manual
 		sendCommand(badHeizungModeManual, badHeizungSet.state.toString)
 	} else if(badState == "3"){
 		//boost/baden
		sendCommand(badHeizungModeBoost, "1")
 	}
  	
 	badHeizungModeSet.postUpdate(0) //don't highlight action on switch
end

Ist aber alles schon ein bisschen her, da ich openHab seit über einem Jahr nicht mehr nutze.

so long,
p

Hallo,

der Control Mode ist über das PaperUI schreibbar. Hier zwei Sceenshots davon:

Als Beispiel habe ich dann Auto Mode ausgewählt. Hier die zugehörigen Zeilen aus der homegear.log:

03/05/17 19:06:48.953 RPC Server (Port 2001): Info: Client number 3328 is calling RPC method: setValue (2) Parameters:
(String) NEQ0670608:1
(String) CONTROL_MODE
(Integer) 0
03/05/17 19:06:49.299 Module MAX: CUL "My-MAX-CUL": Info: Sending (My-MAX-CUL, WOR: yes): 0B750540FD1A231657F9013C
03/05/17 19:06:50.368 MAX packet received (My-MAX-CUL, RSSI: 0x2E): 0E7502021657F9FD1A23000118643C
03/05/17 19:06:50.369 Module MAX: Info: Queue 370 is empty and there are no pending queues.
03/05/17 19:06:50.410 RPC client: Info: Calling RPC method "system.multicall" on server 192.168.178.20.
03/05/17 19:06:50.419 Module MAX: Info: CONTROL_MODE on channel 1 of peer 1 with serial number NEQ0670608 was set to 0x00.

Also irgenwie sollte es gehen. Ich verstehe nur nicht wo mein Fehler ist.

Hmmm… ich glaube, auch wenn dir openhab keinen Fehler wirft, so ist CONTROL_MODE nicht writable im Gerät.
Ich kann natürlich falsch liegen und es hat sich mittlerweile geändert. Dann wäre die Device-Reference aber auch falsch.

Hallo @return01,

CONTROL_MODE ist in der tat schreibbar. Wo der Fehler in der OpenHAB-Konfiguration ist, kann ich dir aber leider nicht sagen. Frag am besten mal im OpenHAB-Forum. Du könntest auch einmal probieren, ob es mit dem MQTT-Binding klappt.

Viele Grüße

Sathya

Soll es das denn von openHab aus sein? Weil in homegear ist es ja read-only, oder?

Hallo @pmayer ,

homegear kann den CONTROL_MODE schreiben. Ich hatte mir ein kleines Python-Script gebastelt
um das zu prüfen. Man kann alle 4 Modes schreiben.

gruß return01

1 Like

Ok, das war mir neu… ich setze die Modes über AUTO_MODE und MANU_MODE

Das geht natürlich auch. Ich hatte ehrlich gesagt zunächst auch gedacht, CONTROL_MODE sei nicht schreibbar. Die XML-Datei hat mich dann eines besseren belehrt…

1 Like

Falls das noch jemanden interessiert: Hier ist meine Lösung. Control_mode ist ein String (keine Number), und muss deshalb auch so angesprochen werden. Dann gehts (bei mir):

In den items:

String Thermostat_Name {channel=“homematic:Bla-Bla-Bla#CONTROL_MODE”}

… und in der sitemap mit Bindestrichen:

Selection item=Thermostat_Name mappings=[“auto-mode”=“Auto”, “manu-mode”=“Manual”, “party-mode”=“Wegfahren”, “boost-mode”=“Boost”]

Hoffe, das hilft (noch).

Happy Xmas!

3 Likes

Bei meiner OpenHAB-Version müssen die Definitionen des Modus großgeschrieben werden.mappings=[“AUTO-MODE”=“Auto”, “MANU-MODE”=“Manual”, “PARTY-MODE”=“Wegfahren”, “BOOST-MODE”=“Boost”]
Gutes Gelingen.

1 Like