import logging
from caspia.meadow.services import BlindsBase
from .base import MockService
status = logging.getLogger('mock-status')
[docs]class Blinds(MockService, BlindsBase):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._tilt = 0.0
self._blind = 0.0
self._movement = 'steady'
[docs] async def characteristic_read(self, characteristic, **kwargs):
if characteristic is self.tilt:
return self._tilt
elif characteristic is self.blind:
return self._blind
elif characteristic is self.target_blind:
return self._blind
elif characteristic is self.target_tilt:
return self._tilt
elif characteristic is self.movement:
return self._movement
else:
raise NotImplementedError
[docs] async def characteristic_write(self, characteristic, value, **kwargs):
if characteristic is self.target_tilt:
self._tilt = value
elif characteristic is self.target_blind:
self._blind = value
else:
raise NotImplementedError
await self.notify(self.target_blind, self._blind, if_changed=True)
await self.notify(self.target_tilt, self._tilt, if_changed=True)
await self.notify(self.blind, self._blind, if_changed=True)
await self.notify(self.tilt, self._tilt, if_changed=True)
await self.notify(self.movement, self._movement, if_changed=True)