from caspia.gateway.services import GatewayService
from caspia.meadow.services import TemperatureSensorBase
[docs]class TemperatureSensor(GatewayService, TemperatureSensorBase):
def __new__(cls, config, network, storage):
if cls != TemperatureSensor:
return super().__new__(cls, config, network, storage)
if 'mcp980x' in config:
from .mcp980x import MCP980XTemperatureSensor as cls
elif 'analog' in config:
from .analog import AnalogTemperatureSensor as cls
elif 'sht2x' in config:
from .sht2x import SHT2XTemperatureSensor as cls
elif 'scd30' in config:
from .scd30 import SCD30TemperatureSensor as cls
else:
raise RuntimeError('invalid temperature sensor config')
return cls(config=config, network=network, storage=storage)