Fixed the Wind sensor following new release of netatmo-api-python (#8030)
* Fixed the Wind sensor following new release of netatmo-api-python The NetAtmo PR was at: https://github.com/jabesq/netatmo-api-python/pull/5 Essentially, this commit adds a protection when adding an incorrect monitored conditions to avoid to fail the entire NetAtmo component, plus for consistency reasons all conditions are now in lower case. * Fixes following the CI tests
This commit is contained in:
parent
74cc675a38
commit
09ca440c20
3 changed files with 37 additions and 33 deletions
|
@ -18,7 +18,7 @@ from homeassistant.util import Throttle
|
|||
|
||||
REQUIREMENTS = [
|
||||
'https://github.com/jabesq/netatmo-api-python/archive/'
|
||||
'v0.9.1.zip#lnetatmo==0.9.1']
|
||||
'v0.9.2.zip#lnetatmo==0.9.2']
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
|
|
@ -41,12 +41,12 @@ SENSOR_TYPES = {
|
|||
'battery_lvl': ['Battery_lvl', '', 'mdi:battery'],
|
||||
'min_temp': ['Min Temp.', TEMP_CELSIUS, 'mdi:thermometer'],
|
||||
'max_temp': ['Max Temp.', TEMP_CELSIUS, 'mdi:thermometer'],
|
||||
'WindAngle': ['Angle', '', 'mdi:compass'],
|
||||
'WindAngle_value': ['Angle Value', 'º', 'mdi:compass'],
|
||||
'WindStrength': ['Strength', 'km/h', 'mdi:weather-windy'],
|
||||
'GustAngle': ['Gust Angle', '', 'mdi:compass'],
|
||||
'GustAngle_value': ['Gust Angle Value', 'º', 'mdi:compass'],
|
||||
'GustStrength': ['Gust Strength', 'km/h', 'mdi:weather-windy'],
|
||||
'windangle': ['Angle', '', 'mdi:compass'],
|
||||
'windangle_value': ['Angle Value', 'º', 'mdi:compass'],
|
||||
'windstrength': ['Strength', 'km/h', 'mdi:weather-windy'],
|
||||
'gustangle': ['Gust Angle', '', 'mdi:compass'],
|
||||
'gustangle_value': ['Gust Angle Value', 'º', 'mdi:compass'],
|
||||
'guststrength': ['Gust Strength', 'km/h', 'mdi:weather-windy'],
|
||||
'rf_status': ['Radio', '', 'mdi:signal'],
|
||||
'rf_status_lvl': ['Radio_lvl', '', 'mdi:signal'],
|
||||
'wifi_status': ['Wifi', '', 'mdi:wifi'],
|
||||
|
@ -87,7 +87,11 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||
for module_name in data.get_module_names():
|
||||
for variable in\
|
||||
data.station_data.monitoredConditions(module_name):
|
||||
dev.append(NetAtmoSensor(data, module_name, variable))
|
||||
if variable in SENSOR_TYPES.keys():
|
||||
dev.append(NetAtmoSensor(data, module_name, variable))
|
||||
else:
|
||||
_LOGGER.warning("Ignoring unknown var %s for mod %s",
|
||||
variable, module_name)
|
||||
except lnetatmo.NoDevice:
|
||||
return None
|
||||
|
||||
|
@ -214,51 +218,51 @@ class NetAtmoSensor(Entity):
|
|||
self._state = data['min_temp']
|
||||
elif self.type == 'max_temp':
|
||||
self._state = data['max_temp']
|
||||
elif self.type == 'WindAngle_value':
|
||||
elif self.type == 'windangle_value':
|
||||
self._state = data['WindAngle']
|
||||
elif self.type == 'WindAngle':
|
||||
elif self.type == 'windangle':
|
||||
if data['WindAngle'] >= 330:
|
||||
self._state = "North (%d\xb0)" % data['WindAngle']
|
||||
self._state = "N (%d\xb0)" % data['WindAngle']
|
||||
elif data['WindAngle'] >= 300:
|
||||
self._state = "North-West (%d\xb0)" % data['WindAngle']
|
||||
self._state = "NW (%d\xb0)" % data['WindAngle']
|
||||
elif data['WindAngle'] >= 240:
|
||||
self._state = "West (%d\xb0)" % data['WindAngle']
|
||||
self._state = "W (%d\xb0)" % data['WindAngle']
|
||||
elif data['WindAngle'] >= 210:
|
||||
self._state = "South-West (%d\xb0)" % data['WindAngle']
|
||||
self._state = "SW (%d\xb0)" % data['WindAngle']
|
||||
elif data['WindAngle'] >= 150:
|
||||
self._state = "South (%d\xb0)" % data['WindAngle']
|
||||
self._state = "S (%d\xb0)" % data['WindAngle']
|
||||
elif data['WindAngle'] >= 120:
|
||||
self._state = "South-East (%d\xb0)" % data['WindAngle']
|
||||
self._state = "SE (%d\xb0)" % data['WindAngle']
|
||||
elif data['WindAngle'] >= 60:
|
||||
self._state = "East (%d\xb0)" % data['WindAngle']
|
||||
self._state = "E (%d\xb0)" % data['WindAngle']
|
||||
elif data['WindAngle'] >= 30:
|
||||
self._state = "North-East (%d\xb0)" % data['WindAngle']
|
||||
self._state = "NE (%d\xb0)" % data['WindAngle']
|
||||
elif data['WindAngle'] >= 0:
|
||||
self._state = "North (%d\xb0)" % data['WindAngle']
|
||||
elif self.type == 'WindStrength':
|
||||
self._state = "N (%d\xb0)" % data['WindAngle']
|
||||
elif self.type == 'windstrength':
|
||||
self._state = data['WindStrength']
|
||||
elif self.type == 'GustAngle_value':
|
||||
elif self.type == 'gustangle_value':
|
||||
self._state = data['GustAngle']
|
||||
elif self.type == 'GustAngle':
|
||||
elif self.type == 'gustangle':
|
||||
if data['GustAngle'] >= 330:
|
||||
self._state = "North (%d\xb0)" % data['GustAngle']
|
||||
self._state = "N (%d\xb0)" % data['GustAngle']
|
||||
elif data['GustAngle'] >= 300:
|
||||
self._state = "North-West (%d\xb0)" % data['GustAngle']
|
||||
self._state = "NW (%d\xb0)" % data['GustAngle']
|
||||
elif data['GustAngle'] >= 240:
|
||||
self._state = "West (%d\xb0)" % data['GustAngle']
|
||||
self._state = "W (%d\xb0)" % data['GustAngle']
|
||||
elif data['GustAngle'] >= 210:
|
||||
self._state = "South-West (%d\xb0)" % data['GustAngle']
|
||||
self._state = "SW (%d\xb0)" % data['GustAngle']
|
||||
elif data['GustAngle'] >= 150:
|
||||
self._state = "South (%d\xb0)" % data['GustAngle']
|
||||
self._state = "S (%d\xb0)" % data['GustAngle']
|
||||
elif data['GustAngle'] >= 120:
|
||||
self._state = "South-East (%d\xb0)" % data['GustAngle']
|
||||
self._state = "SE (%d\xb0)" % data['GustAngle']
|
||||
elif data['GustAngle'] >= 60:
|
||||
self._state = "East (%d\xb0)" % data['GustAngle']
|
||||
self._state = "E (%d\xb0)" % data['GustAngle']
|
||||
elif data['GustAngle'] >= 30:
|
||||
self._state = "North-East (%d\xb0)" % data['GustAngle']
|
||||
self._state = "NE (%d\xb0)" % data['GustAngle']
|
||||
elif data['GustAngle'] >= 0:
|
||||
self._state = "North (%d\xb0)" % data['GustAngle']
|
||||
elif self.type == 'GustStrength':
|
||||
self._state = "N (%d\xb0)" % data['GustAngle']
|
||||
elif self.type == 'guststrength':
|
||||
self._state = data['GustStrength']
|
||||
elif self.type == 'rf_status_lvl':
|
||||
self._state = data['rf_status']
|
||||
|
|
|
@ -283,7 +283,7 @@ https://github.com/aparraga/braviarc/archive/0.3.7.zip#braviarc==0.3.7
|
|||
https://github.com/happyleavesaoc/spotipy/archive/544614f4b1d508201d363e84e871f86c90aa26b2.zip#spotipy==2.4.4
|
||||
|
||||
# homeassistant.components.netatmo
|
||||
https://github.com/jabesq/netatmo-api-python/archive/v0.9.1.zip#lnetatmo==0.9.1
|
||||
https://github.com/jabesq/netatmo-api-python/archive/v0.9.2.zip#lnetatmo==0.9.2
|
||||
|
||||
# homeassistant.components.neato
|
||||
https://github.com/jabesq/pybotvac/archive/v0.0.3.zip#pybotvac==0.0.3
|
||||
|
|
Loading…
Add table
Reference in a new issue