Skip to content

Commit

Permalink
update integration to handle exceptions better
Browse files Browse the repository at this point in the history
  • Loading branch information
chilikla committed Jan 27, 2022
1 parent 4f5b31f commit a757ed3
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 13 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Yerushamayim
## Unofficial Yerushamayim Home Assistant integration and Lovelace card

### :hammer_and_wrench: Integration version: 0.0.12
### :hammer_and_wrench: Integration version: 0.0.13
### :camping: Card version: 0.0.80
<br/>

Expand Down
2 changes: 1 addition & 1 deletion custom_components/yerushamayim/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
"requirements": ["beautifulsoup4==4.10.0"],
"after_dependencies": ["rest"],
"iot_class": "local_polling",
"version": "0.0.12"
"version": "0.0.13"
}
26 changes: 15 additions & 11 deletions custom_components/yerushamayim/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,14 +103,18 @@ def _extract_value(self):
it_feels_css_selector = "#itfeels span.value"
elif len(it_feels_anchor_children) == 0:
it_feels_css_selector = None
if it_feels_css_selector and len(it_feels_css_selector) > 0:
feels_like_temp = latest_now.select(it_feels_css_selector)[0].get_text().replace("°", "")
data["feels_like_temp"] = feels_like_temp
if (len(latest_now.select("#itfeels #itfeels_thsw")) > 0):
feels_like_temp_sun = latest_now.select("#itfeels #itfeels_thsw span.value")[0].get_text()
data["feels_like_temp_sun"] = feels_like_temp_sun

if self.api.data is not None:
if it_feels_css_selector:
try:
feels_like_temp = latest_now.select(it_feels_css_selector)[0].get_text().replace("°", "")
data["feels_like_temp"] = feels_like_temp
if (len(latest_now.select("#itfeels #itfeels_thsw")) > 0):
feels_like_temp_sun = latest_now.select("#itfeels #itfeels_thsw span.value")[0].get_text()
data["feels_like_temp_sun"] = feels_like_temp_sun
except IndexError:
# no feels like attributes
_LOGGER.debug("Feels like attributes could not retrieved in Yerushamayim")

if self.api is not None and self.api.data:
coldmeter = json.loads(self.api.data)
data["status_title"] = coldmeter["coldmeter"]["current_feeling"]
data["status_icon"] = URL + "images/clothes/" + coldmeter["coldmeter"]["cloth_name"]
Expand All @@ -134,8 +138,8 @@ def _extract_value(self):

async def async_update(self):
"""Get the latest data from the source and updates the state."""
await self.site.async_update()
await self.api.async_update()
await self.site.async_update(False)
await self.api.async_update(False)
await self._async_update_from_rest_data()

async def async_added_to_hass(self):
Expand All @@ -145,7 +149,7 @@ async def async_added_to_hass(self):
async def _async_update_from_rest_data(self):
"""Update state from the rest data."""
if self.site.data is None:
_LOGGER.error("Unable to retrieve data for Yerushamayim")
_LOGGER.error("Yerushamayim wasn't available")
return

try:
Expand Down

0 comments on commit a757ed3

Please sign in to comment.