[Matter] thermostat.systemMode mapping, maybe homematic specific

I’m trying to make Homematic radiator valve control mode to a matter endpoint. For “thermostat.systemMode” the config looks like this:

String AZ_Heizung_Mode “AZ_Heizung Betriebsart [MAP(HM-CC-RT-DN.map):%s]”  (Heating_AZ,Heating_OpModes) {
    channel=“homematic:HM-CC-RT-DN:ccu:LTK00XXXXX:4#CONTROL_MODE”,
    matter=“thermostat.systemMode” [PARTY-MODE=1, AUTO-MODE=3, MANU-MODE=4, BOOST-MODE=5]
}

I’m using an Amazon Echo to control the matter endpoints.

There are some problems with this:

  • the current running state (normally “AUTO-MODE”) is not reported by the Alexa app
  • Alexa only offers to switch between “Off” and “Heating”, the other modes are not present
  • when toggeling to “Heating”, the homematic binding complains: org.openhab.binding.homematic.internal.converter.ConverterException: Option value ‘4’ not found in datapoint ‘LTK00XXXXXX:4#CONTROL_MODE’. This indicates that the integer value from the systemMode ENUM in the matter object is not converted back to the string expected by homematic.

Any suggestion on how to fix that or are those real bugs/limitations?

I have a similar situation. You can map values to other ones. I have the mode ON to be cool. And auto is Heat_cool.
This is the code on my Google thermostat:

value: Thermostat
config:
  checkState: true
  thermostatModes: off=OFF,on=COOL,heat=HEAT,cool=COOL,auto=HEAT_COOL,dry=DRY,fan-only=FAN_ONLY

I’ve made a bit of progress.

  1. the OFF mapping is mandatory, without it the rest of the mappings will not be considered. This is hard coded in the matter bindings systemMode mapping code.
  2. The CONTROL_MODE channel in homematic is read-only. So, this can not be used directly for matter’s systemMode as the later is read-write. Some amount of scripting will be needed to expose homematic thermostats over matter.

Maybe reach out to Dan, who made the matter binding? This seems quite different from what I see in my matter thermostat.