# pylint: disable=no-value-for-parameter
import logging
from aiohap import Accessory, Category, services
from .base import Link
logger = logging.getLogger(__name__)
[docs]class HumiditySensorAccessory(Accessory):
category = Category.SENSOR
info = services.AccessoryInformation
humidity = services.HumiditySensor
[docs]class HumiditySensorLink(Link):
meadow_service_type = 'humidity-sensor'
def _create_link(self):
super()._create_link()
self._md_sensor = self._md_service # type: service.HumiditySensorBase
self._hk_sensor = HumiditySensorAccessory(self._md_sensor.name,
include='humidity:status_active')
self._hk_sensor.humidity.set(current_humidity=50, status_active=False)
self._fill_accessory_info(self._hk_sensor)
self.bridge.accessory_server.add_accessory(self._hk_sensor)
async def _setup(self):
self._md_sensor.humidity.subscribe(self._handle_meadow_notification)
async def _reload_state(self):
await self._md_sensor.humidity.enable_notifications()
async def _handle_meadow_notification(self, value, **kwargs):
self._hk_sensor.humidity.set(current_humidity=int(value), status_active=True)