# pylint: disable=no-value-for-parameter
import logging
from aiohap import Accessory, Category, services
from .base import Link
logger = logging.getLogger(__name__)
[docs]class TemperatureSensorAccessory(Accessory):
category = Category.SENSOR
info = services.AccessoryInformation
temp = services.TemperatureSensor
[docs]class TemperatureSensorLink(Link):
meadow_service_type = 'temperature-sensor'
def _create_link(self):
super()._create_link()
self._md_sensor = self._md_service
self._hk_sensor = TemperatureSensorAccessory(self._md_sensor.name,
include='temp:status_active')
self._fill_accessory_info(self._hk_sensor)
self._hk_sensor.temp.set(current_temperature=0.0, status_active=False)
self.bridge.accessory_server.add_accessory(self._hk_sensor)
async def _setup(self):
self._md_sensor.temp.subscribe(self._handle_meadow_notification)
async def _reload_state(self):
await self._md_sensor.temp.enable_notifications()
async def _handle_meadow_notification(self, value, **kwargs):
self._hk_sensor.temp.set(current_temperature=float(round(value, 0)), status_active=True)