mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 01:07:10 +00:00
Add exception handling for Netatmo climate (#24311)
* Add exception handling * Make pylint happy
This commit is contained in:
parent
6cc1bf37cc
commit
9ca5bdda7f
@ -344,8 +344,8 @@ class ThermostatData:
|
||||
"""Return all module available on the API as a list."""
|
||||
if not self.setup():
|
||||
return []
|
||||
for key in self.homestatus.rooms:
|
||||
self.room_ids.append(key)
|
||||
for room in self.homestatus.rooms:
|
||||
self.room_ids.append(room)
|
||||
return self.room_ids
|
||||
|
||||
def setup(self):
|
||||
@ -365,6 +365,7 @@ class ThermostatData:
|
||||
def update(self):
|
||||
"""Call the NetAtmo API to update the data."""
|
||||
import pyatmo
|
||||
|
||||
try:
|
||||
self.homestatus = pyatmo.HomeStatus(self.auth, home=self.home)
|
||||
except TypeError:
|
||||
@ -372,40 +373,52 @@ class ThermostatData:
|
||||
return
|
||||
_LOGGER.debug("Following is the debugging output for homestatus:")
|
||||
_LOGGER.debug(self.homestatus.rawData)
|
||||
for key in self.homestatus.rooms:
|
||||
roomstatus = {}
|
||||
homestatus_room = self.homestatus.rooms[key]
|
||||
homedata_room = self.homedata.rooms[self.home][key]
|
||||
roomstatus['roomID'] = homestatus_room['id']
|
||||
roomstatus['roomname'] = homedata_room['name']
|
||||
roomstatus['target_temperature'] = \
|
||||
homestatus_room['therm_setpoint_temperature']
|
||||
roomstatus['setpoint_mode'] = \
|
||||
homestatus_room['therm_setpoint_mode']
|
||||
roomstatus['current_temperature'] = \
|
||||
homestatus_room['therm_measured_temperature']
|
||||
roomstatus['module_type'] = \
|
||||
self.homestatus.thermostatType(self.home, key)
|
||||
roomstatus['module_id'] = None
|
||||
roomstatus['heating_status'] = None
|
||||
roomstatus['heating_power_request'] = None
|
||||
for module_id in homedata_room['module_ids']:
|
||||
if self.homedata.modules[self.home][module_id]['type'] == \
|
||||
NA_THERM or roomstatus['module_id'] is None:
|
||||
roomstatus['module_id'] = module_id
|
||||
if roomstatus['module_type'] == NA_THERM:
|
||||
self.boilerstatus = self.homestatus.boilerStatus(
|
||||
rid=roomstatus['module_id'])
|
||||
roomstatus['heating_status'] = self.boilerstatus
|
||||
elif roomstatus['module_type'] == NA_VALVE:
|
||||
roomstatus['heating_power_request'] = \
|
||||
homestatus_room['heating_power_request']
|
||||
roomstatus['heating_status'] = \
|
||||
roomstatus['heating_power_request'] > 0
|
||||
if self.boilerstatus is not None:
|
||||
roomstatus['heating_status'] = \
|
||||
self.boilerstatus and roomstatus['heating_status']
|
||||
self.room_status[key] = roomstatus
|
||||
for room in self.homestatus.rooms:
|
||||
try:
|
||||
roomstatus = {}
|
||||
homestatus_room = self.homestatus.rooms[room]
|
||||
homedata_room = self.homedata.rooms[self.home][room]
|
||||
roomstatus["roomID"] = homestatus_room["id"]
|
||||
roomstatus["roomname"] = homedata_room["name"]
|
||||
roomstatus["target_temperature"] = homestatus_room[
|
||||
"therm_setpoint_temperature"
|
||||
]
|
||||
roomstatus["setpoint_mode"] = homestatus_room[
|
||||
"therm_setpoint_mode"
|
||||
]
|
||||
roomstatus["current_temperature"] = homestatus_room[
|
||||
"therm_measured_temperature"
|
||||
]
|
||||
roomstatus["module_type"] = self.homestatus.thermostatType(
|
||||
self.home, room
|
||||
)
|
||||
roomstatus["module_id"] = None
|
||||
roomstatus["heating_status"] = None
|
||||
roomstatus["heating_power_request"] = None
|
||||
for module_id in homedata_room["module_ids"]:
|
||||
if (self.homedata.modules[self.home][module_id]["type"]
|
||||
== NA_THERM
|
||||
or roomstatus["module_id"] is None):
|
||||
roomstatus["module_id"] = module_id
|
||||
if roomstatus["module_type"] == NA_THERM:
|
||||
self.boilerstatus = self.homestatus.boilerStatus(
|
||||
rid=roomstatus["module_id"]
|
||||
)
|
||||
roomstatus["heating_status"] = self.boilerstatus
|
||||
elif roomstatus["module_type"] == NA_VALVE:
|
||||
roomstatus["heating_power_request"] = homestatus_room[
|
||||
"heating_power_request"
|
||||
]
|
||||
roomstatus["heating_status"] = (
|
||||
roomstatus["heating_power_request"] > 0
|
||||
)
|
||||
if self.boilerstatus is not None:
|
||||
roomstatus["heating_status"] = (
|
||||
self.boilerstatus and roomstatus["heating_status"]
|
||||
)
|
||||
self.room_status[room] = roomstatus
|
||||
except KeyError as err:
|
||||
_LOGGER.error("Update of room %s failed. Error: %s", room, err)
|
||||
self.away_temperature = self.homestatus.getAwaytemp(self.home)
|
||||
self.hg_temperature = self.homestatus.getHgtemp(self.home)
|
||||
self.setpoint_duration = self.homedata.setpoint_duration[self.home]
|
||||
|
Loading…
x
Reference in New Issue
Block a user