Has anyone else noticed any Nest binding issues lately? I set up my Nest binding and it has worked great since I set it up. Then I started working on my system again to day and I noticed none of my items in my sitemap are updating with the correct information and in the log I get exceptions I’m not sure where they’re coming from.
My Items look like:
DateTime Nest_last_connection “Last Connection: [%1$tm/%1$td %1$tH:%1$tM]” {nest="<[last_connection]"}
String NestHome_Name “Name: [%s]” {nest="<[structures(Mattams House).name]"}
String NestHome_Mode “Mode: [%s]” {nest="=[structures(Mattams House).away]"}
String NestTFamilyRoom_Name “Name: [%s]” {nest="<[thermostats(Family Room).name]"}
String NestTFamilyRoom_Software_Version “Software Version: [%s]” {nest="<[thermostats(Family Room).software_version]"}
Number NestTFamilyRoom_Temperature “Ambient Temperature [%.1f F]” {nest="<[thermostats(Family Room).ambient_temperature_f]"}
Number NestTFamilyRoom_Setpoint “Setpoint: [%.1f F]” (gOpenHAB) {nest="=[thermostats(Family Room).target_temperature_f]"}
Number NestTFamilyRoom_Requested_Setpoint “Requested Setpoint: [%.1f F]”
//String NestTFamilyRoom_Time_To_Target “Time To Setpoint: [%s min]” {nest="<[thermostats(Family Room).time_to_target"}
Number NestTFamilyRoom_Humidity “Humidity: [%s%%]” {nest="<[thermostats(Family Room).humidity]"}
Switch NestTFamilyRoom_EcoMode “Eco Mode” {nest="<[thermostats(Family Room).has_leaf]"}
String NestTFamilyRoom_HVACMode “HVAC Mode: [%s]” (gOpenHAB) {nest="=[thermostats(Family Room).hvac_mode]"}
My sitemap looks like:
Frame label=“Nest Thermostat”{
Text label=“Nest Thermostat” icon=“temperature-max”{
Frame label=“Home Info”{
Text item=Nest_last_connection
Text item=NestHome_Name
Switch item=NestHome_Mode mappings=[home=“Home”, away=“Away”]
}
Frame label=“Thermostat Info”{
Text item=NestTFamilyRoom_Name
Switch item=NestTFamilyRoom_EcoMode
Switch item=NestTFamilyRoom_HVACMode mappings=[heat=“Heat”, off=“Off”]
Text item=NestTFamilyRoom_Temperature
Setpoint item=NestTFamilyRoom_Requested_Setpoint
Text item=NestTFamilyRoom_Setpoint
//Text item=NestTFamilyRoom_Time_To_Target
Text item=NestTFamilyRoom_Humidity
}
}
}
And the error I get from my logs is:
2016-11-09 11:11:41.667 TRACE o.o.b.n.i.m.AbstractRequest[:172]- {“devices”:{“thermostats”:{“jUZGXwXrPwWEj5BmRfus4tejP_wQBaDt”:{“humidity”:60,“locale”:“en-US”,“temperature_scale”:“F”,“is_using_emergency_heat”:false,“has_fan”:false,“software_version”:“5.6-7”,“has_leaf”:true,“where_id”:“hidden”,“device_id”:“hidden”,“name”:“Family Room”,“can_heat”:true,“can_cool”:false,“target_temperature_c”:19.0,“target_temperature_f”:66,“target_temperature_high_c”:24.0,“target_temperature_high_f”:75,“target_temperature_low_c”:20.0,“target_temperature_low_f”:68,“ambient_temperature_c”:19.0,“ambient_temperature_f”:66,“away_temperature_high_c”:24.0,“away_temperature_high_f”:76,“away_temperature_low_c”:4.5,“away_temperature_low_f”:40,“eco_temperature_high_c”:24.0,“eco_temperature_high_f”:76,“eco_temperature_low_c”:4.5,“eco_temperature_low_f”:40,“is_locked”:false,“locked_temp_min_c”:20.0,“locked_temp_min_f”:68,“locked_temp_max_c”:22.0,“locked_temp_max_f”:72,“sunlight_correction_active”:false,“sunlight_correction_enabled”:true,“structure_id”:“hidden-hidde”,“fan_timer_active”:false,“fan_timer_timeout”:“1970-01-01T00:00:00.000Z”,“fan_timer_duration”:15,“previous_hvac_mode”:“heat”,“hvac_mode”:“eco”,“time_to_target”:"~0",“time_to_target_training”:“ready”,“where_name”:“Family Room”,“label”:"",“name_long”:“Family Room Thermostat”,“is_online”:true,“last_connection”:“2016-11-09T16:07:41.078Z”,“hvac_state”:“off”}}},“structures”:{“hidden”:{“name”:“Mattams House”,“country_code”:“US”,“postal_code”:“17603”,“time_zone”:“America/New_York”,“away”:“away”,“thermostats”:[“hidden”],“structure_id”:"_gRS102MrZ8VY7bA4D5fI4zbl8iD7rrg-O27YGyUd2hAUzI2gyJuAA",“rhr_enrollment”:false,“wheres”:{“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6Uuskp_fyqLbQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6Uuskp_fyqLbQ”,“name”:“Backyard”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XGaLPIfP2BqQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XGaLPIfP2BqQ”,“name”:“Basement”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VlLZjfNGefJw”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VlLZjfNGefJw”,“name”:“Bedroom”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VJmKPQIub_ZA”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VJmKPQIub_ZA”,“name”:“Den”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XSK4t3EKn30Q”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XSK4t3EKn30Q”,“name”:“Dining Room”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6USfvMfhedXuA”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6USfvMfhedXuA”,“name”:“Downstairs”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WAoqSUHzpYcg”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WAoqSUHzpYcg”,“name”:“Driveway”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6UVptJdJRIOYQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6UVptJdJRIOYQ”,“name”:“Entryway”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WHzTvFoD1LOQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WHzTvFoD1LOQ”,“name”:“Family Room”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VOGxU5LDmvfg”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VOGxU5LDmvfg”,“name”:“Front Yard”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VIFrFlXtAhhA”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VIFrFlXtAhhA”,“name”:“Hallway”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6U7rgAueQz1CQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6U7rgAueQz1CQ”,“name”:“Kids Room”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6Xe2l4Cf7dQpw”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6Xe2l4Cf7dQpw”,“name”:“Kitchen”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XqkWWHQWF8Jw”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XqkWWHQWF8Jw”,“name”:“Living Room”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WfqrdOcdTH_g”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WfqrdOcdTH_g”,“name”:“Master Bedroom”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6UuP-DYOWg35w”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6UuP-DYOWg35w”,“name”:“Office”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VryH_4DzyD7Q”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VryH_4DzyD7Q”,“name”:“Outside”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WMVLWOX1qJuw”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WMVLWOX1qJuw”,“name”:“Upstairs”}}}},“metadata”:{“access_token”:“c.faWd2dn4TXKPVw0du719CYYHgJ3bVcoAN3nABdPdw7bQzGr0juBaEpvIAhvT5NvlGah03X6K6qgjt4uCxUg4eqmzcCxbgLmXMObYhDkF5Qr3pQD54dSgYQ6a74GYshsHrr5iK1KucChzztIf”,“client_version”:5}}
2016-11-09 11:11:41.681 WARN o.o.b.n.internal.NestBinding[:172]- Exception reading from Nest.
org.openhab.binding.nest.internal.NestException: Could not parse JSON from URL ‘https://developer-api.nest.com/?auth=c.faWd2dn4TXKPVw0du719CYYHgJ3bVcoAN3nABdPdw7bQzGr0juBaEpvIAhvT5NvlGah03X6K6qgjt4uCxUg4eqmzcCxbgLmXMObYhDkF5Qr3pQD54dSgYQ6a74GYshsHrr5iK1KucChzztIf’: {“devices”:{“thermostats”:{“jUZGXwXrPwWEj5BmRfus4tejP_wQBaDt”:{“humidity”:60,“locale”:“en-US”,“temperature_scale”:“F”,“is_using_emergency_heat”:false,“has_fan”:false,“software_version”:“5.6-7”,“has_leaf”:true,“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WHzTvFoD1LOQ”,“device_id”:“jUZGXwXrPwWEj5BmRfus4tejP_wQBaDt”,“name”:“Family Room”,“can_heat”:true,“can_cool”:false,“target_temperature_c”:19.0,“target_temperature_f”:66,“target_temperature_high_c”:24.0,“target_temperature_high_f”:75,“target_temperature_low_c”:20.0,“target_temperature_low_f”:68,“ambient_temperature_c”:19.0,“ambient_temperature_f”:66,“away_temperature_high_c”:24.0,“away_temperature_high_f”:76,“away_temperature_low_c”:4.5,“away_temperature_low_f”:40,“eco_temperature_high_c”:24.0,“eco_temperature_high_f”:76,“eco_temperature_low_c”:4.5,“eco_temperature_low_f”:40,“is_locked”:false,“locked_temp_min_c”:20.0,“locked_temp_min_f”:68,“locked_temp_max_c”:22.0,“locked_temp_max_f”:72,“sunlight_correction_active”:false,“sunlight_correction_enabled”:true,“structure_id”:"_gRS102MrZ8VY7bA4D5fI4zbl8iD7rrg-O27YGyUd2hAUzI2gyJuAA",“fan_timer_active”:false,“fan_timer_timeout”:“1970-01-01T00:00:00.000Z”,“fan_timer_duration”:15,“previous_hvac_mode”:“heat”,“hvac_mode”:“eco”,“time_to_target”:"~0",“time_to_target_training”:“ready”,“where_name”:“Family Room”,“label”:"",“name_long”:“Family Room Thermostat”,“is_online”:true,“last_connection”:“2016-11-09T16:07:41.078Z”,“hvac_state”:“off”}}},“structures”:{"_gRS102MrZ8VY7bA4D5fI4zbl8iD7rrg-O27YGyUd2hAUzI2gyJuAA":{“name”:“Mattams House”,“country_code”:“US”,“postal_code”:“17603”,“time_zone”:“America/New_York”,“away”:“away”,“thermostats”:[“jUZGXwXrPwWEj5BmRfus4tejP_wQBaDt”],“structure_id”:"_gRS102MrZ8VY7bA4D5fI4zbl8iD7rrg-O27YGyUd2hAUzI2gyJuAA",“rhr_enrollment”:false,“wheres”:{“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6Uuskp_fyqLbQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6Uuskp_fyqLbQ”,“name”:“Backyard”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XGaLPIfP2BqQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XGaLPIfP2BqQ”,“name”:“Basement”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VlLZjfNGefJw”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VlLZjfNGefJw”,“name”:“Bedroom”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VJmKPQIub_ZA”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VJmKPQIub_ZA”,“name”:“Den”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XSK4t3EKn30Q”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XSK4t3EKn30Q”,“name”:“Dining Room”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6USfvMfhedXuA”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6USfvMfhedXuA”,“name”:“Downstairs”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WAoqSUHzpYcg”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WAoqSUHzpYcg”,“name”:“Driveway”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6UVptJdJRIOYQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6UVptJdJRIOYQ”,“name”:“Entryway”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WHzTvFoD1LOQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WHzTvFoD1LOQ”,“name”:“Family Room”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VOGxU5LDmvfg”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VOGxU5LDmvfg”,“name”:“Front Yard”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VIFrFlXtAhhA”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VIFrFlXtAhhA”,“name”:“Hallway”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6U7rgAueQz1CQ”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6U7rgAueQz1CQ”,“name”:“Kids Room”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6Xe2l4Cf7dQpw”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6Xe2l4Cf7dQpw”,“name”:“Kitchen”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XqkWWHQWF8Jw”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6XqkWWHQWF8Jw”,“name”:“Living Room”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WfqrdOcdTH_g”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WfqrdOcdTH_g”,“name”:“Master Bedroom”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6UuP-DYOWg35w”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6UuP-DYOWg35w”,“name”:“Office”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VryH_4DzyD7Q”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6VryH_4DzyD7Q”,“name”:“Outside”},“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WMVLWOX1qJuw”:{“where_id”:“tSJsf0hlW5NlAw3teBOr92sQQtxcqcCk3R00xWAD_6WMVLWOX1qJuw”,“name”:“Upstairs”}}}},“metadata”:{“access_token”:“c.faWd2dn4TXKPVw0du719CYYHgJ3bVcoAN3nABdPdw7bQzGr0juBaEpvIAhvT5NvlGah03X6K6qgjt4uCxUg4eqmzcCxbgLmXMObYhDkF5Qr3pQD54dSgYQ6a74GYshsHrr5iK1KucChzztIf”,“client_version”:5}}
at org.openhab.binding.nest.internal.messages.AbstractRequest.newException(AbstractRequest.java:88)
at org.openhab.binding.nest.internal.messages.DataModelRequest.execute(DataModelRequest.java:66)
at org.openhab.binding.nest.internal.NestBinding.readNest(NestBinding.java:189)
at org.openhab.binding.nest.internal.NestBinding.execute(NestBinding.java:168)
at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:156)
at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:173)
Caused by: org.codehaus.jackson.map.JsonMappingException: Invalid hvac_mode: eco (through reference chain: org.openhab.binding.nest.internal.messages.DataModelResponse[“devices”]->org.openhab.binding.nest.internal.messages.Devices[“thermostats”]->org.openhab.binding.nest.internal.messages.Thermostat[“hvac_mode”])
at org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:218)
at org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:183)
at org.codehaus.jackson.map.deser.BeanDeserializer.wrapAndThrow(BeanDeserializer.java:1462)
at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:637)
at org.codehaus.jackson.map.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:917)
at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObjectUsingNonDefault(BeanDeserializer.java:733)
Caused by: java.lang.IllegalArgumentException: Invalid hvac_mode: eco
at org.openhab.binding.nest.internal.messages.Thermostat$HvacMode.forValue(Thermostat.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.jackson.map.deser.std.EnumDeserializer$FactoryBasedDeserializer.deserialize(EnumDeserializer.java:132)
Has anyone seen this yet? Is this a change in the NEST API or something that didn’t get updated in the binding yet?
Thanks,
Matt