Testers needed for Netatmo climate (multiple thermostats or valves)

The first one is for generic Netatmo components, in this file, for the camera especially.

The second one is the override for Netatmo thermostats. In fact it could be more frequent I think.

Thanks for your help on testing :slight_smile:

I don’t think it is because docker, because I myself am using docker. Either it is a temporary communication issue, or something related to the special characters. It would be helpful if you turn on DEBUG output and send me the detailed log.

Thank you for your quick answer !

I restarted it with debug :

logger:
  default: debug


2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event platform_discovered[L]: service=load_platform.binary_sensor, platform=netatmo, discovered=>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event platform_discovered[L]: service=load_platform.climate, platform=netatmo, discovered=>

2018-12-20 09:33:43 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.netatmo

2018-12-20 09:33:43 INFO (MainThread) [homeassistant.loader] Loaded binary_sensor.netatmo from homeassistant.components.binary_sensor.netatmo

2018-12-20 09:33:43 INFO (MainThread) [homeassistant.loader] Loaded climate.netatmo from custom_components.climate.netatmo

2018-12-20 09:33:43 WARNING (MainThread) [homeassistant.loader] You are using a custom component for climate.netatmo which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event platform_discovered[L]: service=load_platform.camera, platform=netatmo, discovered=>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=group.weather, old_state=None, new_state=<state group.weather=unknown; entity_id=('sensor.date', 'sensor.time', 'sensor.weather_symbol', 'sensor.netatmo_outdoor_temperature', 'sensor.netatmo_outdoor_max_temp', 'sensor.netatmo_outdoor_min_temp', 'sensor.netatmo_outdoor_humidity', 'sensor.weather_precipitation', 'sensor.weather_wind_speed', 'sun.sun'), order=10, friendly_name=Météo @ 2018-12-20T09:33:43.052673+01:00>>

2018-12-20 09:33:43 INFO (MainThread) [homeassistant.loader] Loaded camera.netatmo from homeassistant.components.camera.netatmo

2018-12-20 09:33:43 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up binary_sensor.netatmo

2018-12-20 09:33:43 INFO (MainThread) [homeassistant.components.climate] Setting up climate.netatmo

2018-12-20 09:33:43 DEBUG (SyncWorker_19) [custom_components.climate.netatmo] Starting to setup platform climate.netatmo...

2018-12-20 09:33:43 INFO (MainThread) [homeassistant.components.camera] Setting up camera.netatmo

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=group.netatmo, old_state=<state group.netatmo=unknown; entity_id=('climate.thermostat', 'sensor.netatmo_indoor_temperature', 'automation.famille_away_set_planning', 'automation.famille_home_set_on'), order=8, control=hidden, friendly_name=Thermostat @ 2018-12-20T09:33:43.030347+01:00>, new_state=<state group.netatmo=off; entity_id=('climate.thermostat', 'sensor.netatmo_indoor_temperature', 'automation.famille_away_set_planning', 'automation.famille_home_set_on'), order=8, control=hidden, friendly_name=Thermostat @ 2018-12-20T09:33:43.166869+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=group.default_view, old_state=<state group.default_view=unknown; entity_id=('group.tv_salon', 'group.grenier', 'group.lights', 'group.netatmo'), order=0, view=True, friendly_name=default_view, icon=mdi:home, hidden=True @ 2018-12-20T09:33:42.931087+01:00>, new_state=<state group.default_view=off; entity_id=('group.tv_salon', 'group.grenier', 'group.lights', 'group.netatmo'), order=0, view=True, friendly_name=default_view, icon=mdi:home, hidden=True @ 2018-12-20T09:33:43.170928+01:00>>

2018-12-20 09:33:43 DEBUG (SyncWorker_12) [homeassistant.components.sensor.netatmo] WeatherStationData detected!

2018-12-20 09:33:43 INFO (SyncWorker_12) [homeassistant.components.sensor.netatmo] NetAtmo refresh interval reset to 348 seconds

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_indoor_pressure, old_state=None, new_state=<state sensor.netatmo_indoor_pressure=1021.8; unit_of_measurement=mbar, friendly_name=Pression Atmosphérique, icon=mdi:gauge @ 2018-12-20T09:33:43.361675+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_outdoor_max_temp, old_state=None, new_state=<state sensor.netatmo_outdoor_max_temp=6.8; unit_of_measurement=°C, friendly_name=Température Max., icon=mdi:thermometer @ 2018-12-20T09:33:43.363244+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_indoor_humidity, old_state=None, new_state=<state sensor.netatmo_indoor_humidity=51; unit_of_measurement=%, friendly_name=Humidité Ambiante, device_class=humidity @ 2018-12-20T09:33:43.364709+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_outdoor_humidity, old_state=None, new_state=<state sensor.netatmo_outdoor_humidity=100; unit_of_measurement=%, friendly_name=Taux d'humidité, device_class=humidity @ 2018-12-20T09:33:43.366772+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_indoor_wifi, old_state=None, new_state=<state sensor.netatmo_indoor_wifi=High; unit_of_measurement=, friendly_name=Netatmo Indoor Wifi, icon=mdi:wifi @ 2018-12-20T09:33:43.368304+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_indoor_min_temp, old_state=None, new_state=<state sensor.netatmo_indoor_min_temp=18.3; unit_of_measurement=°C, friendly_name=Netatmo Indoor Min Temp., icon=mdi:thermometer @ 2018-12-20T09:33:43.369717+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_indoor_temperature, old_state=None, new_state=<state sensor.netatmo_indoor_temperature=18.3; unit_of_measurement=°C, friendly_name=Température, device_class=temperature @ 2018-12-20T09:33:43.371227+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_outdoor_temperature, old_state=None, new_state=<state sensor.netatmo_outdoor_temperature=6.6; unit_of_measurement=°C, friendly_name=Température Extérieure, device_class=temperature @ 2018-12-20T09:33:43.373276+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_outdoor_radio, old_state=None, new_state=<state sensor.netatmo_outdoor_radio=High; unit_of_measurement=, friendly_name=Netatmo Outdoor Radio, icon=mdi:signal @ 2018-12-20T09:33:43.375679+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_indoor_max_temp, old_state=None, new_state=<state sensor.netatmo_indoor_max_temp=20.8; unit_of_measurement=°C, friendly_name=Netatmo Indoor Max Temp., icon=mdi:thermometer @ 2018-12-20T09:33:43.378928+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_outdoor_battery, old_state=None, new_state=<state sensor.netatmo_outdoor_battery=Full; unit_of_measurement=, friendly_name=Netatmo Outdoor Battery, icon=mdi:battery @ 2018-12-20T09:33:43.382697+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_outdoor_min_temp, old_state=None, new_state=<state sensor.netatmo_outdoor_min_temp=5; unit_of_measurement=°C, friendly_name=Température Min., icon=mdi:thermometer @ 2018-12-20T09:33:43.383985+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_indoor_noise, old_state=None, new_state=<state sensor.netatmo_indoor_noise=35; unit_of_measurement=dB, friendly_name=Bruit Ambiant, icon=mdi:volume-high @ 2018-12-20T09:33:43.385349+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.netatmo_indoor_co2, old_state=None, new_state=<state sensor.netatmo_indoor_co2=640; unit_of_measurement=ppm, friendly_name=Taux de Co2, icon=mdi:cloud @ 2018-12-20T09:33:43.386773+01:00>>

2018-12-20 09:33:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event platform_discovered[L]: service=load_platform.sensor, platform=netatmo, discovered=>

2018-12-20 09:33:43 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.netatmo

2018-12-20 09:33:43 ERROR (MainThread) [homeassistant.components.climate] Error while setting up platform netatmo

File "/config/custom_components/climate/netatmo.py", line 71, in setup_platform

File "/config/custom_components/climate/netatmo.py", line 291, in get_home_names

File "/config/custom_components/climate/netatmo.py", line 301, in setup

Excuse me because the thread is really long but do I need to update pyatmo too ?

Edit : Tested with pyatmo 1.5 and same issue
Edit2 : As the key Error is KeyError: ‘therm_schedules’ I tried the following :

  • Set my language to English US on Netatmo website : Not OK
  • I had 2 custom temperature set with a space in their name and renamed those without space or special char : Not OK

If you have any idea of test I could try, please share with me :slight_smile:

Please try to download and run the testing python script, and paste me the output.

Don’t forget to replace in the script your username/password/client_id/client_secret.

Thank you !

Here is the result (launched from within my PRD docker without your files but pyatmo 1.5)

FYI I have 1 Thermostat, 6 valves, 1 weather station and 2 presence cameras from Netatmo

As the error mention “KeyError: ‘therm_schedules’” perhaps it’s the length of that value returned ?

root@a06cce66a6f4:/config# python testnetatmoapi.py
Your access token is: 542452ee1c7759b05253f648|c9afb859cc5d13e70e54072237f05a91
Your refresh token is: 542452ee1c7759b05253f648|ab75fccea0220104e7187f8e7e969725
Your scopes are: ['read_station', 'read_camera', 'access_camera', 'read_thermostat', 'write_thermostat', 'read_presence', 'access_presence']
{'access_token': '542452ee1c7759b05253f648|c9afb859cc5d13e70e54072237f05a91'}
{'homes': [{'id': '5851438b2b2b468cee8bbbd3', 'name': 'Cambron', 'altitude': 108, 'coordinates': [5.5666999816895, 50.63330078125], 'country': 'BE', 'timezone': 'Europe/Brussels', 'rooms': [{'id': '1080857', 'name': 'Porte dâentrée', 'type': 'custom', 'module_ids': ['70:ee:50:26:d5:72'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 0}, {'id': '2897875409', 'name': 'Buanderie', 'type': 'custom', 'module_ids': ['70:ee:50:27:bf:4e'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 0}], 'modules': [{'id': '70:ee:50:26:d5:72', 'type': 'NOC', 'name': 'Porte Entree', 'setup_date': 1481720715, 'room_id': '1080857'}, {'id': '70:ee:50:27:bf:4e', 'type': 'NOC', 'name': 'Porte Buanderie', 'setup_date': 1483041679, 'room_id': '2897875409'}], 'therm_setpoint_default_duration': 180, 'therm_mode': 'schedule'}, {'id': '597b5f25e8ede14e278b602f', 'name': 'Cambron', 'altitude': 65, 'coordinates': [3.9344523348877, 50.579109246332], 'country': 'BE', 'timezone': 'Europe/Brussels', 'rooms': [{'id': '1942610123', 'name': 'SDB', 'type': 'bathroom', 'module_ids': ['09:00:00:01:1d:9f'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 1}, {'id': '3401426623', 'name': 'Salon', 'type': 'livingroom', 'module_ids': ['04:00:00:0d:51:04', '09:00:00:01:1a:3c', '09:00:00:01:1a:b0', '09:00:00:01:1b:5f'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 1}, {'id': '577576931', 'name': 'Entrée', 'type': 'lobby', 'module_ids': ['09:00:00:00:2d:76'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 1}, {'id': '2882922966', 'name': 'Théo', 'type': 'bedroom', 'module_ids': ['09:00:00:03:df:8e'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 1}, {'id': '38075077', 'name': 'Julien', 'type': 'bedroom', 'module_ids': ['09:00:00:03:db:25'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 1}, {'id': '3156509982', 'name': 'Parents', 'type': 'bedroom', 'module_ids': ['09:00:00:04:20:3f'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 1}, {'id': '879663239', 'name': 'Palier', 'type': 'custom', 'module_ids': ['09:00:00:03:d5:3c'], 'measure_offset_NAPlug_temperature': 0, 'measure_offset_NAPlug_estimated_temperature': 1}], 'modules': [{'id': '70:ee:50:0d:25:c8', 'type': 'NAPlug', 'name': 'Relais', 'setup_date': 1517659811, 'modules_bridged': ['04:00:00:0d:51:04', '09:00:00:00:2d:76', '09:00:00:01:1a:3c', '09:00:00:01:1a:b0', '09:00:00:01:1b:5f', '09:00:00:01:1d:9f', '09:00:00:03:df:8e', '09:00:00:03:db:25', '09:00:00:04:20:3f', '09:00:00:03:d5:3c']}, {'id': '04:00:00:0d:51:04', 'type': 'NATherm1', 'name': 'Thermostat', 'setup_date': 1517659811, 'room_id': '3401426623', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:00:2d:76', 'type': 'NRV', 'name': 'Vanne Entrée', 'setup_date': 1517664303, 'room_id': '577576931', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:01:1a:3c', 'type': 'NRV', 'name': 'Vanne Cuisine', 'setup_date': 1517660913, 'room_id': '3401426623', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:01:1a:b0', 'type': 'NRV', 'name': 'Vanne Salon', 'setup_date': 1517660910, 'room_id': '3401426623', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:01:1b:5f', 'type': 'NRV', 'name': 'Vanne Bureau', 'setup_date': 1517660865, 'room_id': '3401426623', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:01:1d:9f', 'type': 'NRV', 'name': 'Vanne SDB', 'setup_date': 1517661184, 'room_id': '1942610123', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:03:df:8e', 'type': 'NRV', 'name': 'Vanne Théo', 'setup_date': 1538559879, 'room_id': '2882922966', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:03:db:25', 'type': 'NRV', 'name': 'Vanne Julien', 'setup_date': 1538562060, 'room_id': '38075077', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:04:20:3f', 'type': 'NRV', 'name': 'Vanne Parents', 'setup_date': 1538562965, 'room_id': '3156509982', 'bridge': '70:ee:50:0d:25:c8'}, {'id': '09:00:00:03:d5:3c', 'type': 'NRV', 'name': 'Vanne Palier', 'setup_date': 1538563680, 'room_id': '879663239', 'bridge': '70:ee:50:0d:25:c8'}], 'therm_schedules': [{'timetable': [{'zone_id': 1, 'm_offset': 0}, {'zone_id': 3, 'm_offset': 360}, {'zone_id': 2, 'm_offset': 435}, {'zone_id': 0, 'm_offset': 1110}, {'zone_id': 1, 'm_offset': 1350}, {'zone_id': 3, 'm_offset': 1800}, {'zone_id': 2, 'm_offset': 1875}, {'zone_id': 0, 'm_offset': 2550}, {'zone_id': 1, 'm_offset': 2790}, {'zone_id': 3, 'm_offset': 3240}, {'zone_id': 2, 'm_offset': 3315}, {'zone_id': 0, 'm_offset': 3990}, {'zone_id': 1, 'm_offset': 4230}, {'zone_id': 3, 'm_offset': 4680}, {'zone_id': 2, 'm_offset': 4755}, {'zone_id': 0, 'm_offset': 5430}, {'zone_id': 1, 'm_offset': 5670}, {'zone_id': 3, 'm_offset': 6120}, {'zone_id': 2, 'm_offset': 6195}, {'zone_id': 0, 'm_offset': 6870}, {'zone_id': 1, 'm_offset': 7110}, {'zone_id': 3, 'm_offset': 7560}, {'zone_id': 2, 'm_offset': 7635}, {'zone_id': 0, 'm_offset': 8310}, {'zone_id': 1, 'm_offset': 8550}, {'zone_id': 3, 'm_offset': 9000}, {'zone_id': 2, 'm_offset': 9075}, {'zone_id': 0, 'm_offset': 9750}, {'zone_id': 1, 'm_offset': 9990}], 'zones': [{'name': 'Confort', 'id': 0, 'type': 0, 'rooms_temp': [{'room_id': '577576931', 'temp': 16}, {'room_id': '3401426623', 'temp': 19}, {'room_id': '2882922966', 'temp': 16}, {'room_id': '38075077', 'temp': 16}, {'room_id': '3156509982', 'temp': 16}, {'room_id': '879663239', 'temp': 16}, {'room_id': '1942610123', 'temp': 16}]}, {'name': 'Nuit', 'id': 1, 'type': 1, 'rooms_temp': [{'room_id': '577576931', 'temp': 15}, {'room_id': '38075077', 'temp': 16}, {'room_id': '3156509982', 'temp': 16}, {'room_id': '1942610123', 'temp': 16}, {'room_id': '2882922966', 'temp': 16}, {'room_id': '879663239', 'temp': 16}, {'room_id': '3401426623', 'temp': 16}]}, {'name': 'Jour', 'id': 2, 'type': 4, 'rooms_temp': [{'room_id': '577576931', 'temp': 10}, {'room_id': '3401426623', 'temp': 15}, {'room_id': '2882922966', 'temp': 10}, {'room_id': '38075077', 'temp': 10}, {'room_id': '3156509982', 'temp': 10}, {'room_id': '879663239', 'temp': 10}, {'room_id': '1942610123', 'temp': 10}]}, {'name': 'Matin', 'id': 3, 'type': 4, 'rooms_temp': [{'room_id': '38075077', 'temp': 19}, {'room_id': '577576931', 'temp': 16}, {'room_id': '879663239', 'temp': 19}, {'room_id': '1942610123', 'temp': 19}, {'room_id': '2882922966', 'temp': 19}, {'room_id': '3156509982', 'temp': 19}, {'room_id': '3401426623', 'temp': 19}]}, {'name': 'Ãco', 'id': 5, 'type': 5, 'rooms_temp': [{'room_id': '3401426623', 'temp': 16}, {'room_id': '1942610123', 'temp': 16}, {'room_id': '577576931', 'temp': 16}, {'room_id': '2882922966', 'temp': 16}, {'room_id': '38075077', 'temp': 16}, {'room_id': '3156509982', 'temp': 16}, {'room_id': '879663239', 'temp': 16}]}], 'name': 'Standard', 'default': False, 'away_temp': 15, 'hg_temp': 7, 'id': '559e41b7fe775917598b7032', 'selected': True, 'type': 'therm'}], 'therm_setpoint_default_duration': 30, 'schedules': [{'timetable': [{'zone_id': 1, 'm_offset': 0}, {'zone_id': 3, 'm_offset': 360}, {'zone_id': 2, 'm_offset': 435}, {'zone_id': 0, 'm_offset': 1110}, {'zone_id': 1, 'm_offset': 1350}, {'zone_id': 3, 'm_offset': 1800}, {'zone_id': 2, 'm_offset': 1875}, {'zone_id': 0, 'm_offset': 2550}, {'zone_id': 1, 'm_offset': 2790}, {'zone_id': 3, 'm_offset': 3240}, {'zone_id': 2, 'm_offset': 3315}, {'zone_id': 0, 'm_offset': 3990}, {'zone_id': 1, 'm_offset': 4230}, {'zone_id': 3, 'm_offset': 4680}, {'zone_id': 2, 'm_offset': 4755}, {'zone_id': 0, 'm_offset': 5430}, {'zone_id': 1, 'm_offset': 5670}, {'zone_id': 3, 'm_offset': 6120}, {'zone_id': 2, 'm_offset': 6195}, {'zone_id': 0, 'm_offset': 6870}, {'zone_id': 1, 'm_offset': 7110}, {'zone_id': 3, 'm_offset': 7560}, {'zone_id': 2, 'm_offset': 7635}, {'zone_id': 0, 'm_offset': 8310}, {'zone_id': 1, 'm_offset': 8550}, {'zone_id': 3, 'm_offset': 9000}, {'zone_id': 2, 'm_offset': 9075}, {'zone_id': 0, 'm_offset': 9750}, {'zone_id': 1, 'm_offset': 9990}], 'zones': [{'name': 'Confort', 'id': 0, 'type': 0, 'rooms_temp': [{'room_id': '577576931', 'temp': 16}, {'room_id': '3401426623', 'temp': 19}, {'room_id': '2882922966', 'temp': 16}, {'room_id': '38075077', 'temp': 16}, {'room_id': '3156509982', 'temp': 16}, {'room_id': '879663239', 'temp': 16}, {'room_id': '1942610123', 'temp': 16}], 'rooms': [{'id': '577576931', 'therm_setpoint_temperature': 16}, {'id': '3401426623', 'therm_setpoint_temperature': 19}, {'id': '2882922966', 'therm_setpoint_temperature': 16}, {'id': '38075077', 'therm_setpoint_temperature': 16}, {'id': '3156509982', 'therm_setpoint_temperature': 16}, {'id': '879663239', 'therm_setpoint_temperature': 16}, {'id': '1942610123', 'therm_setpoint_temperature': 16}]}, {'name': 'Nuit', 'id': 1, 'type': 1, 'rooms_temp': [{'room_id': '577576931', 'temp': 15}, {'room_id': '38075077', 'temp': 16}, {'room_id': '3156509982', 'temp': 16}, {'room_id': '1942610123', 'temp': 16}, {'room_id': '2882922966', 'temp': 16}, {'room_id': '879663239', 'temp': 16}, {'room_id': '3401426623', 'temp': 16}], 'rooms': [{'id': '577576931', 'therm_setpoint_temperature': 15}, {'id': '38075077', 'therm_setpoint_temperature': 16}, {'id': '3156509982', 'therm_setpoint_temperature': 16}, {'id': '1942610123', 'therm_setpoint_temperature': 16}, {'id': '2882922966', 'therm_setpoint_temperature': 16}, {'id': '879663239', 'therm_setpoint_temperature': 16}, {'id': '3401426623', 'therm_setpoint_temperature': 16}]}, {'name': 'Jour', 'id': 2, 'type': 4, 'rooms_temp': [{'room_id': '577576931', 'temp': 10}, {'room_id': '3401426623', 'temp': 15}, {'room_id': '2882922966', 'temp': 10}, {'room_id': '38075077', 'temp': 10}, {'room_id': '3156509982', 'temp': 10}, {'room_id': '879663239', 'temp': 10}, {'room_id': '1942610123', 'temp': 10}], 'rooms': [{'id': '577576931', 'therm_setpoint_temperature': 10}, {'id': '3401426623', 'therm_setpoint_temperature': 15}, {'id': '2882922966', 'therm_setpoint_temperature': 10}, {'id': '38075077', 'therm_setpoint_temperature': 10}, {'id': '3156509982', 'therm_setpoint_temperature': 10}, {'id': '879663239', 'therm_setpoint_temperature': 10}, {'id': '1942610123', 'therm_setpoint_temperature': 10}]}, {'name': 'Matin', 'id': 3, 'type': 4, 'rooms_temp': [{'room_id': '38075077', 'temp': 19}, {'room_id': '577576931', 'temp': 16}, {'room_id': '879663239', 'temp': 19}, {'room_id': '1942610123', 'temp': 19}, {'room_id': '2882922966', 'temp': 19}, {'room_id': '3156509982', 'temp': 19}, {'room_id': '3401426623', 'temp': 19}], 'rooms': [{'id': '38075077', 'therm_setpoint_temperature': 19}, {'id': '577576931', 'therm_setpoint_temperature': 16}, {'id': '879663239', 'therm_setpoint_temperature': 19}, {'id': '1942610123', 'therm_setpoint_temperature': 19}, {'id': '2882922966', 'therm_setpoint_temperature': 19}, {'id': '3156509982', 'therm_setpoint_temperature': 19}, {'id': '3401426623', 'therm_setpoint_temperature': 19}]}, {'name': 'Ãco', 'id': 5, 'type': 5, 'rooms_temp': [{'room_id': '3401426623', 'temp': 16}, {'room_id': '1942610123', 'temp': 16}, {'room_id': '577576931', 'temp': 16}, {'room_id': '2882922966', 'temp': 16}, {'room_id': '38075077', 'temp': 16}, {'room_id': '3156509982', 'temp': 16}, {'room_id': '879663239', 'temp': 16}], 'rooms': [{'id': '3401426623', 'therm_setpoint_temperature': 16}, {'id': '1942610123', 'therm_setpoint_temperature': 16}, {'id': '577576931', 'therm_setpoint_temperature': 16}, {'id': '2882922966', 'therm_setpoint_temperature': 16}, {'id': '38075077', 'therm_setpoint_temperature': 16}, {'id': '3156509982', 'therm_setpoint_temperature': 16}, {'id': '879663239', 'therm_setpoint_temperature': 16}]}], 'name': 'Standard', 'default': False, 'away_temp': 15, 'hg_temp': 7, 'id': '559e41b7fe775917598b7032', 'selected': True, 'type': 'therm'}], 'therm_mode': 'schedule'}], 'user': {'email': '[email protected]', 'language': 'en-US', 'locale': 'fr-FR', 'feel_like_algorithm': 0, 'unit_pressure': 0, 'unit_system': 0, 'unit_wind': 0, 'id': '542452ee1c7759b05253f648'}}
5851438b2b2b468cee8bbbd3

I understand the reason: you have two homes, one of them is for thermostat/valves, and the other is not, which caused the key error. I need to patch this in the pyatmo module. Stay tuned.

Strange I shouldn’t have two homes.
Thank you for pointing that and for the time you are spending on this !!

Let’s make a first try. Please try to download the following:

Replace the file: config/deps/lib/python3.6/site-packages/smart_home/Thermostat.py, remove the directory /config/deps/lib/python3.6/site-packages/smart_home/__pycache__/, and restart your HA to see what will happen.

Thanks!

Ok, the Key Error is now on rooms :

 Log Details (ERROR)
Thu Dec 20 2018 23:03:20 GMT+0100 (heure normale d’Europe centrale)

Error while setting up platform netatmo
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 128, in _async_setup_platform
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)
  File "/usr/local/lib/python3.6/asyncio/tasks.py", line 358, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/climate/netatmo.py", line 74, in setup_platform
    for room_id in room_data.get_room_ids():
  File "/config/custom_components/climate/netatmo.py", line 327, in get_room_ids
    if self.setup():
  File "/config/custom_components/climate/netatmo.py", line 338, in setup
    self.homestatus = pyatmo.HomeStatus(self.auth, home=self.home)
  File "/config/deps/lib/python3.6/site-packages/smart_home/Thermostat.py", line 127, in __init__
    for r in self.rawData['rooms']:
KeyError: 'rooms'

Not surprising, since that home is only for presence cameras. Now please keep the previous changed Thermostat.py and update config/custom_components/climate/netatmo.py with the new revision of:

To be safe, remove config/custom_components/climate/__pycache__ and restart HA.

Hmmm looks like same error :

Log Details (ERROR)
Fri Dec 21 2018 10:38:44 GMT+0100 (Central European Standard Time)

Error while setting up platform netatmo
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 128, in _async_setup_platform
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)
  File "/usr/local/lib/python3.6/asyncio/tasks.py", line 358, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/climate/netatmo.py", line 74, in setup_platform
    for room_id in room_data.get_room_ids():
  File "/config/custom_components/climate/netatmo.py", line 327, in get_room_ids
    if self.setup():
  File "/config/custom_components/climate/netatmo.py", line 338, in setup
    self.homestatus = pyatmo.HomeStatus(self.auth, home=self.home)
  File "/config/deps/lib/python3.6/site-packages/smart_home/Thermostat.py", line 127, in __init__
    for r in self.rawData['rooms']:
KeyError: 'rooms'

Hmm, it was because your two homes share the same name…

Now, please update config/deps/lib/python3.6/site-packages/smart_home/Thermostat.py to the new revision, clear the cache, and restart HA to try again.

In the train on an Android phone with termius to do copy/paste in vi but after a restart it seems to work !

All valves an thermostat detected and they seems to have the correct parameters.

I will play more with it when I am at home but thank you again for this tremendous work !!!

Cool! I am happy we found this hidden issue and got it fixed. Thank you for reporting this!

**EDIT : NEVERMIND, it’s just takes some times to update **
** NO ISSUE SO FAR :slight_smile: **

Hi,

About to switch off the radiators when windows is opened, you used automation or script?

thanks

As an automation.
Be aware, that since the last update the operation modes changed!

You can find an example of my window automation in one of my posts above.