Fix netatmo media browser of outdoor events (#40079)
* Fix outdoor events * Fix test data * Increase coveragepull/40179/head
parent
3ef821d62f
commit
99a8604601
|
@ -284,9 +284,9 @@ class NetatmoCamera(NetatmoBase, Camera):
|
|||
self._data.events.get(self._id, {})
|
||||
)
|
||||
elif self._model == "NOC": # Smart Outdoor Camera
|
||||
self.hass.data[DOMAIN][DATA_EVENTS][
|
||||
self._id
|
||||
] = self._data.outdoor_events.get(self._id, {})
|
||||
self.hass.data[DOMAIN][DATA_EVENTS][self._id] = self.process_events(
|
||||
self._data.outdoor_events.get(self._id, {})
|
||||
)
|
||||
|
||||
def process_events(self, events):
|
||||
"""Add meta data to events."""
|
||||
|
|
|
@ -80,8 +80,20 @@ class NetatmoSource(MediaSource):
|
|||
) -> BrowseMediaSource:
|
||||
if event_id and event_id in self.events[camera_id]:
|
||||
created = dt.datetime.fromtimestamp(event_id)
|
||||
thumbnail = self.events[camera_id][event_id].get("snapshot", {}).get("url")
|
||||
message = remove_html_tags(self.events[camera_id][event_id]["message"])
|
||||
if self.events[camera_id][event_id]["type"] == "outdoor":
|
||||
thumbnail = (
|
||||
self.events[camera_id][event_id]["event_list"][0]
|
||||
.get("snapshot", {})
|
||||
.get("url")
|
||||
)
|
||||
message = remove_html_tags(
|
||||
self.events[camera_id][event_id]["event_list"][0]["message"]
|
||||
)
|
||||
else:
|
||||
thumbnail = (
|
||||
self.events[camera_id][event_id].get("snapshot", {}).get("url")
|
||||
)
|
||||
message = remove_html_tags(self.events[camera_id][event_id]["message"])
|
||||
title = f"{created} - {message}"
|
||||
else:
|
||||
title = self.hass.data[DOMAIN][DATA_CAMERAS].get(camera_id, MANUFACTURER)
|
||||
|
|
|
@ -18,6 +18,7 @@ async def test_async_browse_media(hass):
|
|||
"12:34:56:78:90:ab": {
|
||||
1599152672: {
|
||||
"id": "12345",
|
||||
"type": "person",
|
||||
"time": 1599152672,
|
||||
"camera_id": "12:34:56:78:90:ab",
|
||||
"snapshot": {
|
||||
|
@ -30,6 +31,7 @@ async def test_async_browse_media(hass):
|
|||
},
|
||||
1599152673: {
|
||||
"id": "12346",
|
||||
"type": "person",
|
||||
"time": 1599152673,
|
||||
"camera_id": "12:34:56:78:90:ab",
|
||||
"snapshot": {
|
||||
|
@ -37,9 +39,47 @@ async def test_async_browse_media(hass):
|
|||
},
|
||||
"message": "<b>Tobias</b> seen",
|
||||
},
|
||||
1599152674: {
|
||||
"id": "12347",
|
||||
"type": "outdoor",
|
||||
"time": 1599152674,
|
||||
"camera_id": "12:34:56:78:90:ac",
|
||||
"snapshot": {
|
||||
"url": "https://netatmocameraimage",
|
||||
},
|
||||
"video_id": "98766",
|
||||
"video_status": "available",
|
||||
"event_list": [
|
||||
{
|
||||
"type": "vehicle",
|
||||
"time": 1599152674,
|
||||
"id": "12347-0",
|
||||
"offset": 0,
|
||||
"message": "Vehicle detected",
|
||||
"snapshot": {
|
||||
"url": "https://netatmocameraimage",
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "human",
|
||||
"time": 1599152674,
|
||||
"id": "12347-1",
|
||||
"offset": 8,
|
||||
"message": "Person detected",
|
||||
"snapshot": {
|
||||
"url": "https://netatmocameraimage",
|
||||
},
|
||||
},
|
||||
],
|
||||
"media_url": "http:///files/high/index.m3u8",
|
||||
},
|
||||
}
|
||||
}
|
||||
hass.data[DOMAIN][DATA_CAMERAS] = {"12:34:56:78:90:ab": "MyCamera"}
|
||||
|
||||
hass.data[DOMAIN][DATA_CAMERAS] = {
|
||||
"12:34:56:78:90:ab": "MyCamera",
|
||||
"12:34:56:78:90:ac": "MyOutdoorCamera",
|
||||
}
|
||||
|
||||
assert await async_setup_component(hass, const.DOMAIN, {})
|
||||
await hass.async_block_till_done()
|
||||
|
|
Loading…
Reference in New Issue