import asyncio
import logging
import random
from caspia.meadow.services import TemperatureSensorBase
from .base import MockService
logger = logging.getLogger('mock-status')
[docs]class TemperatureSensor(MockService, TemperatureSensorBase):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._generate_temp()
asyncio.ensure_future(self._temp_generator_loop())
def _generate_temp(self):
self.temp.value = 21.5 + random.uniform(-2.5, 2.5)
@property
def interval(self):
for value in self.config.values():
if hasattr(value, 'interval'):
return value.interval
return 0
async def _temp_generator_loop(self):
interval = self.interval
if interval > 0:
while True:
self._generate_temp()
await asyncio.sleep(interval + random.uniform(-1, 1))