1
0
mirror of https://github.com/natekspencer/hacs-oasis_mini.git synced 2025-11-08 05:03:52 -05:00
Files
hacs-oasis_mini/custom_components/oasis_mini/image.py
Nathan Spencer e3d8ac927b Initial commit
2024-07-06 18:37:00 -06:00

56 lines
1.7 KiB
Python

"""Oasis Mini image entity."""
from __future__ import annotations
from datetime import datetime
from homeassistant.components.image import ImageEntity, ImageEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN
from .coordinator import OasisMiniCoordinator
from .entity import OasisMiniEntity
from .pyoasismini.utils import draw_svg
IMAGE = ImageEntityDescription(key="image", name=None)
class OasisMiniImageEntity(OasisMiniEntity, ImageEntity):
"""Oasis Mini image entity."""
_attr_content_type = "image/svg+xml"
def __init__(
self,
coordinator: OasisMiniCoordinator,
entry_id: str,
description: ImageEntityDescription,
) -> None:
"""Initialize the entity."""
super().__init__(coordinator, entry_id, description)
ImageEntity.__init__(self, coordinator.hass)
@property
def image_last_updated(self) -> datetime | None:
"""The time when the image was last updated."""
return self.coordinator.last_updated
def image(self) -> bytes | None:
"""Return bytes of image."""
return draw_svg(
self.device._current_track_details,
self.device.progress,
"1",
)
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Set up Oasis Mini camera using config entry."""
coordinator: OasisMiniCoordinator = hass.data[DOMAIN][entry.entry_id]
if coordinator.device.access_token:
async_add_entities([OasisMiniImageEntity(coordinator, entry, IMAGE)])