HomeKit Thermostat Group Not Working

I just updated to the latest snapshot, and my Thermostat item no longer appears to work. I did have to make a bunch of changes to my items to account for the new tags, but HomeKit only seems to grab the CurrentTemperature item as a temperature sensor instead of the whole group as a Thermostat. The following is what I have:
Group thermostat "Main Thermostat" (ecobee) [ "Thermostat" ] Number actualTemperature "Current Temperature [%.1f °F]" <temperature> (thermostat) [ "CurrentTemperature" ] { ecobee="<[12345678912#runtime.actualTemperature]" } Number desiredTemp "Desired Temperature [%.1f °F]" <temperature> (thermostat) [ "TargetTemperature" ] String hvacMode "Mode [%s]" <none> (thermostat) [ "homekit:HeatingCoolingMode" ] { ecobee="=[12345678912#settings.hvacMode]" }

I have the same problem, except I can not even get a CurrentTemperature item to show up in HomeKit.

*.items

Number	rweTemp157867		"Temp KUECHE [%.1f ∞C]"	<temperature>	(rwe) [ "CurrentTemperature" ] {rwe="id=ea21cb84-19e1-c46b-f6d7-aa695a157867,param=temperature"}

Group HeizungArbeitszimmer "Heizung Arbeitszimmer" (Unten_Arbeitszimmer) [ "Thermostat" ]
Number	rweTemp5654fc		"Temp MALTE [%.1f]"	<temperature>	(HeizungArbeitszimmer) [ "CurrentTemperature" ] {rwe="id=d5d07953-970d-de65-fd85-86141a5654fc,param=temperature"}
// Number	rweHumidityb2c12c	"Feuchtigkeit MALTE [%.1f]"	<temperature>	(HeizungArbeitszimmer) [ "CurrentHumidity" ] {rwe="id=8760dbeb-d47e-1ac0-1fbe-8f936db2c12c,param=humidity"}
Number	rweSettemp709d1c	"Solltemp MALTE [%.1f]"	<temperature>	(HeizungArbeitszimmer) [ "TargetTemperature" ] {rwe="id=e344d016-1d09-0c19-f05f-869560709d1c,param=settemperature"}
String HeatingmodeArbeitszimmer "Auto" (HeizungArbeitszimmer) [ "homekit:HeatingCoolingMode" ]

Log
2016-07-16 13:47:07.423 [INFO ] [com.beowulfe.hap.HomekitRoot ] - Added accessory Heizung Arbeitszimmer 2016-07-16 13:47:07.424 [INFO ] [pl.http.impl.NettyHomekitHttpService] - Resetting connections 2016-07-16 13:47:07.426 [INFO ] [com.beowulfe.hap.HomekitRoot ] - Added accessory Temp KUECHE 2016-07-16 13:47:07.427 [INFO ] [pl.http.impl.NettyHomekitHttpService] - Resetting connections 2016-07-16 13:47:07.429 [INFO ] [com.beowulfe.hap.HomekitRoot ] - Added accessory Wohnen Decke 2016-07-16 13:47:07.430 [INFO ] [pl.http.impl.NettyHomekitHttpService] - Resetting connections

All my Lighting Switches and Dimmers from my RWE Smarthome Binding work just fine.
But sadly I can not manage to get temperature items or Thermostats to work :frowning:

Of course these items work in the basicui

My first thought was that I did not have a “Mode” which would return Auto… so I set this string using the REST API… after that I tried just to get the [ “CurrentTemperature” ] tagged Number item to work… no success :frowning:

Any help greatly appreciated :slight_smile:

OK, solved this… Problem was totally different: It looks like the HomeKit Extension is not able to add new services … I had to delete the home kit pairing and add it again and my thermostats showed up :slight_smile:

So at the moment I experience two main issues with HomeKit:

  1. Changing my HomeKit Configuration often leads to me having to pair again in iOS -> result is loosing my room config there :frowning:
  2. “Things” which are added through hue binding are ALL named Unavailable although having nice labels in OpenHAB

You shouldn’t need to re-pair to see new accessories. What version of iOS are you using?

I have the same issue with my MAX! thermostat. My created group item end up in a temperature sensor in HomeKit.

Group gruppe_thermostat_az    "Arbeitszimmerheizung"     <temperature>          [ "Thermostat" ]
Number thermostat_az_ist      "Temperatur"               (gruppe_thermostat_az) [ "CurrentTemperature" ]         {channel="max:thermostat:MKF0057767:MEQ1318703:actual_temp"}
Number thermostat_az_soll     "Zieltemperatur"           (gruppe_thermostat_az) [ "TargetTemperature" ]          {channel="max:thermostat:MKF0057767:MEQ1318703:set_temp"}
String thermostat_az_mode     "Mode"                     (gruppe_thermostat_az) [ "homekit:HeatingCoolingMode" ] {channel="max:thermostat:MKF0057767:MEQ1318703:mode"}

Even a repairing did not the job. May anyone has a hint for me. I am using iOS 9.3.2 and the elgato Eve app to organize HomeKit.

Best regards

I have exactly the same problem as @ch.senkel

My items are configured identically but Homekit only discovers a temperature sensor and not a Thermostat.

Is this a known problem?

@beowulfe can you answer us?

@igor - that should have been fixed back in July: https://github.com/openhab/openhab2-addons/issues/1053

Are you using the latest version of OH2? If so, please include here the specific version of the add-on you have installed.

Everything is OK, the problem was that there was no data (setpoint, mode or temperature) in the OH2 bus so the thermostat doesn’t start working until it receives some data.

I post some values trough the REST API and the thermostat is working ok in Homekit now.

Hi!
i configured my thermostat (z-wave danfoss lc-13) today and it shows up in homekit.
unfortunately it’s “refreshing” for 30 min now and i don’t think it’s gonna work finally.
the danfoss z-wave thermostat does only provide me with a set point item (no current temp, no mode.
i did only configure the setpoint and the item is shown in homekit but it’s stuck at “refreshing”.
I also tried to use the same channel for act temp and setpoint but that crashes homekit pretty hard although it lets me change the value - but i couldnt turn the thermostat on or off.

here’s my item-config, maybe you can help :slight_smile:

EDIT:
i guess i see the problem :wink:
my thermostat is not a “real” thermostat. it’s just attached to my radiator.
will this work with the thermostat group if configured correctly?
i just want to be able to set the target temperature via homekit (slider or similar).
thanks

edit2: i can set the temp via homekit now but the device is still shown as “off” (i think it’s because i did not send a mode. any ideas on how i could trick the binding? :slight_smile:

Group  GrCouchthermostat 					"Couchthermostat" 							 				["Thermostat"]
Number WoZi_Thermostat_Couch_akt_Temp		"Couchthermostat aktuelle Temperatur" 	(GrCouchthermostat) 				["CurrentTemperature"]		
Number WoZi_Thermostat_Couch 				"Thermostat Couch [%.1f °C]" 			(GrCouchthermostat, GrThermostat)	["TargetTemperature"] 	{channel="zway:zwayDevice:192_168_178_90:5:thermostatSetPoint-ZWayVDev_zway_5-0-67-1"}
String WoZi_Thermostat_Couch_Modus			"Couchthermostat Betriebsmodus"			(GrCouchthermostat) ["homekit:HeatingCoolingMode"]

I also tried to do it with a rule:

rule "WoZi_Thermostat_Homekit_Heat"
when
	Item WoZi_Thermostat_Couch changed
then
	if(WoZi_Thermostat_Couch.state > 15) {
	sendCommand(WoZi_Thermostat_Couch_Modus, HEAT)}
end

rule "WoZi_Thermostat_Homekit_OFF"
when
	Item WoZi_Thermostat_Couch changed
then
	if(WoZi_Thermostat_Couch.state > 15 || WoZi_Thermostat_Couch.state == 15) {
	sendCommand(WoZi_Thermostat_Couch_Modus, OFF)}
end

but it does not work.

Do you have any idea, what i have to change, that the homekit item switches on/off? always on would be fine for me too …

Hi! I still did not make any progress … :frowning: i found this in the log:

2017-10-16 21:28:35.686 [ERROR] [al.accessories.HomekitThermostatImpl] - Unrecognized heating cooling target mode: heat. Expected cool, heat, auto, or off strings in value.

that makes sense because i don’t have a channel to link to (my thermostat does only provide me one temperature.

can i “link” that to a fixed string variable? i’d be happy if it would be shown as always on.
or maybe on if it’s > 15 deg and off if it’s below (i tried that with a rule (see above) but it did not work. i also tried to send a string like “heat” - not what you see above.

I also have the thermostats not working any more since some time. Don’t know when they stopped working exactly but they used to work in the past.

@beowulfe indicated the issue was fixed in July. I’m on the most recent OH stable version. Should it work on stable or do I need the nightly builds for this.

@Jonas88 have you tried Igor’s approach, setting it manual through rest API, just to test. In principle setting it manual and making sure WoZi_Thermostat_Couch_Modus is persisted should be enough.

Hi! Thanks for your answer! It is indeed working, but it is shown as “off” at every time. I think this is the normal behaviour but i wanted to tweak things a little (see my attempt for a rule) to make it look nicely.
i tried to send the strings to the item but it did not work (neither “heat” nor “HEAT”).
I’ll try it with the rest api this evening.
thanks!

Hi! I had no luck sending strings to the string item to the group via rest api. does the item have to be linked to a channel? again: my thermostat does not support that mode but i’d like to use it “manually” with a rule to change the state in homekit to show if it’s heating or not on my iphone. thank you!

Hi Jonas88,

is your problem still alive ?

I set up OH2.4 with Homematic-Devices and HomeKit. The Channels of the Homematic-Things also have no “Mode”-Channel with states “HeatOn” or similar.
I defined a String with is set to “HeatOn” with a rule triggered when the system is started.

The Item-Definition

Group 	gKu_TC					"Ku Thermostat"						["Thermostat"]	
Number 	iHm_Ku_Hz_valve 		"Ku Ventil" 		(gKu)									{channel="homematic:HM-CC-RT-DN:HMBridge:LEQ0000000:4#VALVE_STATE"}
Number 	iHm_Ku_Hz_temp_set 		"Ku Temp - Soll" 	(gKu,gKu_TC)	["TargetTemperature"]	{channel="homematic:HM-CC-RT-DN:HMBridge:LEQ0000000:4#SET_TEMPERATURE"}
Number 	iHm_Ku_Hz_temp_act 		"Ku Temp - Ist" 	(gKu,gKu_TC) 	["CurrentTemperature"]	{channel="homematic:HM-CC-RT-DN:HMBridge:LEQ0000000:4#ACTUAL_TEMPERATURE"}
String 	iHm_Ku_Hz_heatingmode 	"Ku Heating"		(gNz,gKu_TC) 	["homekit:HeatingCoolingMode"]

The rules looks the following

rule "System Startup"
when
    System started
then
	iHm_Ku_Hz_heatingmode.sendCommand("HeatOn")
end

Maybe this will help you.

Greets & good luck

Hi!

Thanks for responding after that long time!
I solved this with a similar approach :slight_smile:

Regards

Jonas

Hi Jonas,

i have the same problem with the danfoss thermostat. can you share your solution? :slight_smile:

Thanks & Regards
Tom

Hi!

Sure thing! I don’t use the Thermostats anymore but i can post you my code:

Items:

Number	Global_Thermostat_Heizen_Aus		"Initialwert aller Thermostate"
Number	Global_Thermostat_Heizen_Ein		"Heizungssollwert der Thermostate"

Group  GrSchlafzimmerthermostat				"Schlafzimmerthermostat" 						["Thermostat"]
Number SchlaZi_Thermostat_akt_Temp			"Schlafzimmerthermostat aktuelle Temperatur" 				(GrSchlafzimmerthermostat) 					["CurrentTemperature"]
Number SchlaZi_Thermostat					"Schlafzimmer"			                    	<heating>	(GrSchlafzimmerthermostat, GrThermostat)	["TargetTemperature"] 			{channel="zwave:device:3cb3c32a:node2:thermostat_setpoint_heating"}
String SchlaZi_Thermostat_Modus				"Schlafzimmerthermostat Betriebsmodus"						(GrSchlafzimmerthermostat) 					["homekit:HeatingCoolingMode"]
Number SchlaZi_Thermostat_Battery           "Schlafzimmerthermostat Batterie"                                                   	                                                {channel="zwave:device:3cb3c32a:node2:battery-level"}

Group  GrKinderzimmerthermostat				"Kinderzimmerthermostat" 						["Thermostat"]
Number KiZi_Thermostat_akt_Temp				"Kinderzimmerthermostat aktuelle Temperatur" 				(GrKinderzimmerthermostat) 					["CurrentTemperature"]			
Number KiZi_Thermostat						"Kinderzimmer"                  				<heating>	(GrKinderzimmerthermostat, GrThermostat)	["TargetTemperature"] 			{channel="zwave:device:3cb3c32a:node4:thermostat_setpoint_heating"}
String KiZi_Thermostat_Modus				"Kinderzimmerthermostat Betriebsmodus"						(GrKinderzimmerthermostat) 					["homekit:HeatingCoolingMode"]
Number KiZi_Thermostat_Battery              "Kinderzimmerthermostat Batterie"                                                   	                                                {channel="zwave:device:3cb3c32a:node4:battery-level"}

Group  GrWohnzimmerthermostat				"Wohnzimmerthermostat" 						    ["Thermostat"]
Number WoZi_Thermostat_akt_Temp				"Wohnzimmerthermostat aktuelle Temperatur" 				    (GrWohnzimmerthermostat) 					["CurrentTemperature"]			
Number WoZi_Thermostat						"Wohnzimmer"                  				    <heating>	(GrWohnzimmerthermostat, GrThermostat)	    ["TargetTemperature"] 			{channel="zwave:device:3cb3c32a:node3:thermostat_setpoint_heating"}
String WoZi_Thermostat_Modus				"Wohnzimmerthermostat Betriebsmodus"						(GrWohnzimmerthermostat) 					["homekit:HeatingCoolingMode"]
Number WoZi_Thermostat_Battery              "Wohnzimmerthermostat Batterie"                                                   	                                                    {channel="zwave:device:3cb3c32a:node3:battery-level"}

There’s the rule:

rule "Auto Mode für Thermostate setzen bei Neustart"
when
	System started
then
    Thread::sleep(30000)
    KiZi_Thermostat_Modus.sendCommand(Auto)
    SchlaZi_Thermostat_Modus.sendCommand(Auto)
    WoZi_Thermostat_Couch_Modus.sendCommand(Auto)
end

Hope it still works :slight_smile:
Regards

Jonas

Hi Jonas,

wow thanks for the fast reply :slight_smile: I`ll try it this evening.

Thank you!!
Tom