Alexa, control Heating

Hi Patrik

A few weeks before i had the same problems with my Max!Thermostats. I have to implement more than 15 of these.
Now with help from another guy of the community it all works perfect…

here some examples of my codes… i will explain it here it only for my bedroom…

items.file

Group:Number:AVG	       gTemperature	"akt. Temperatur ansehen"	<temperature>   (Home)
Group:String:EQUAL         gHeatingMode "Modus"                                     (Home)

Number   F2_Bedroom_HeatingG        	"Heizung Gross"            	                            <heating>       (gHeating)          		                {channel="max:thermostat:KEQ0538054:OEQ1133869:set_temp"}
Number   F2_Bedroom_TemperatureG     	"Temperatur Schlafzimmer Gross"         	            <temperature>   (F2_Bedroom, gTemperature)                  {channel="max:thermostat:KEQ0538054:OEQ1133869:actual_temp"}
String   F2_Bedroom_ModeG      	        "Modus Schlafzimmer gross [MAP(maxcubeMode.map):%s]"    <heating>       (gHeatingMode)                              {channel="max:thermostat:KEQ0538054:OEQ1133869:mode"}
Number   F2_Bedroom_HeatingK         	"Heizung Klein"            	                            <heating>       (gHeating)          		                {channel="max:thermostat:KEQ0538054:OEQ1137726:set_temp"}
Number   F2_Bedroom_TemperatureK     	"Temperatur Schlafzimmer Klein"         	            <temperature>   (F2_Bedroom, gTemperature)                  {channel="max:thermostat:KEQ0538054:OEQ1137726:actual_temp"}
String   F2_Bedroom_ModeK      	        "Modus Schlafzimmer klein [MAP(maxcubeMode.map):%s]"    <heating>       (gHeatingMode)                              {channel="max:thermostat:KEQ0538054:OEQ1137726:mode"}

For the control with alexa I added some more lines in the items.file

Group   gSchlafGThermostat 			        "Heizung Schlafzimmer Gross" 							                    ["Thermostat"]
Number  SchlafGThermostatCurrentTemp 		"Heizung Schlafzimmer Gross Aktuelle Temperatur" 	(gSchlafGThermostat) 	[ "CurrentTemperature" ] 	{channel="max:thermostat:KEQ0538054:OEQ1133869:actual_temp"}
Number  SchlafGThermostatTargetTemperature 	"Heizung Schlafzimmer Gross Soll Temperatur" 		(gSchlafGThermostat)	[ "TargetTemperature" ] 	{channel="max:thermostat:KEQ0538054:OEQ1133869:set_temp"}

Group   gSchlafKThermostat 			        "Heizung Schlafzimmer Klein" 							                    ["Thermostat"]
Number  SchlafKThermostatCurrentTemp 		"Heizung Schlafzimmer Klein Aktuelle Temperatur" 	(gSchlafKThermostat) 	[ "CurrentTemperature" ] 	{channel="max:thermostat:KEQ0538054:OEQ1137726:actual_temp"}
Number  SchlafKThermostatTargetTemperature  "Heizung Schlafzimmer Klein Soll Temperatur" 		(gSchlafKThermostat)	[ "TargetTemperature" ] 	{channel="max:thermostat:KEQ0538054:OEQ1137726:set_temp"}

Then i build the following lines in sitemap for example of one room

		        Default item=F2_Bedroom_TemperatureG		
                Setpoint item=F2_Bedroom_HeatingG 			label="Schlafzimmer gross" 	step=0.5 minValue=4.5 maxValue=30.0
  	    		Selection item=F2_Bedroom_ModeG											mappings=[AUTOMATIC="Auto", MANUAL="Manuell", BOOST="Boost"]
                Default item=F2_Bedroom_TemperatureG	    		
                Setpoint item=F2_Bedroom_HeatingK 			label="Schlafzimmer klein" 	step=0.5 minValue=4.5 maxValue=30.0
 	    		Selection item=F2_Bedroom_ModeK											mappings=[AUTOMATIC="Auto", MANUAL="Manuell", BOOST="Boost"]

The mapping file…

AUTOMATIC=AUTO
MANUAL=Manuell
BOOST=BOOST

And for last I use a rule to trigger the change of the heating mode…

rule HeatingChangeMode //Heizung einstellen
when
    Item FF_Dining_Mode changed or
    Item FF_LivingRoom_ModeW changed or
    Item FF_LivingRoom_ModeK changed or
    Item FF_Kitchen_Mode changed or
    Item FF_Bathroom_Mode changed or
    Item F2_Bedroom_ModeG changed or
    Item F2_Bedroom_ModeK changed or
    Item F2_JoelRoom_Mode changed or
    Item F2_FabiRoom_ModeS changed or
    Item F2_FabiRoom_ModeW changed or
    Item F2_Bathroom_Mode changed
then
    switch (triggeringItem.name) {
        case 0 : sendCommand(triggeringItem.name, "AUTOMATIC")
        case 1 : sendCommand(triggeringItem.name, "MANUAL")
        case 2 : sendCommand(triggeringItem.name, "BOOST")
    }
end

I think the rule could be write a lttle bit easier, simple to look which of this heating item was changed… but at the moment it will also works in this way.

Pherhaps the example will help you…

And sorry for my english :wink: