Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
class IPSmoke(SensorHmIPNoVoltage):
"""HomeMatic IP Smoke sensor."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata
self.SENSORNODE.update({"SMOKE_DETECTOR_ALARM_STATUS": self.ELEMENT})
@property
def ELEMENT(self):
return [1]
class GongSensor(SensorHm):
"""Wireless Gong Sensor."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
self.EVENTNODE.update({"PRESS_SHORT": self.ELEMENT})
class WiredSensor(SensorHmW, HelperWired):
"""Wired binary Sensor."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
self.BINARYNODE.update({"SENSOR": self.ELEMENT})
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata
self.BINARYNODE.update({"STATE": self.ELEMENT})
def is_motion(self, channel=None):
""" Return True if motion is detected """
return bool(self.getBinaryData("STATE", channel))
@property
def ELEMENT(self):
return [1]
class MotionV2(SensorHm, HelperSabotage):
"""Motion detection version 2.
This is a binary sensor."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata
self.BINARYNODE.update({"MOTION": self.ELEMENT})
self.SENSORNODE.update({"BRIGHTNESS": self.ELEMENT})
def is_motion(self, channel=None):
""" Return True if motion is detected """
return bool(self.getBinaryData("MOTION", channel))
def get_brightness(self, channel=None):
""" Return brightness from 0 (dark ) to 255 (bright) """
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata
self.SENSORNODE.update({"FILLING_LEVEL": self.ELEMENT})
def get_level(self, channel=None):
""" Return filling level from 0 to 100 % """
return int(self.getSensorData("FILLING_LEVEL", channel))
@property
def ELEMENT(self):
return [1]
class ValveDrive(SensorHm):
"""Valve drive HM-CC-VD."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata
self.SENSORNODE.update({"VALVE_STATE": self.ELEMENT})
def get_level(self, channel=None):
""" Return valve state from 0% to 99% """
return int(self.getSensorData("VALVE_STATE", channel))
@property
def ELEMENT(self):
return [1]
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata
self.SENSORNODE.update({"ACTUAL_TEMPERATURE": [1],
"HUMIDITY": [1]})
def get_temperature(self, channel=None):
return float(self.getSensorData("ACTUAL_TEMPERATURE", channel))
def get_humidity(self, channel=None):
return int(self.getSensorData("HUMIDITY", channel))
class TemperatureSensor(SensorHm):
"""Temperature Sensor."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata (HB-UNI-Sen-TEMP-DS18B20 has 8 temperature values)
if "HB-UNI-Sen-TEMP-DS18B20" in self._TYPE:
self.SENSORNODE.update({"TEMPERATURE": [1, 2, 3, 4, 5, 6, 7, 8]})
else:
self.SENSORNODE.update({"TEMPERATURE": self.ELEMENT})
def get_temperature(self, channel=None):
return float(self.getSensorData("TEMPERATURE", channel))
class HBUNISenWEA(TemperatureSensor):
"""Window handle contact."""
def is_open(self, channel=None):
""" Returns True if the handle is set to open. """
return self.get_state(channel) == 2
def is_closed(self, channel=None):
""" Returns True if the handle is set to closed. """
return self.get_state(channel) == 0
def is_tilted(self, channel=None):
""" Returns True if the handle is set to tilted. """
return self.get_state(channel) == 1
class CO2Sensor(SensorHm, HelperSensorState):
"""CO2 Sensor"""
def is_normal(self, channel=None):
""" Returns True if CO2 state is normal. """
return self.get_state(channel) == 0
def is_added(self, channel=None):
""" Returns True if CO2 state is added. """
return self.get_state(channel) == 1
def is_added_strong(self, channel=None):
""" Returns True if CO2 state is added strong. """
return self.get_state(channel) == 2
class WaterSensor(SensorHm, HelperSensorState):
super().__init__(device_description, proxy, resolveparamsets)
self.SENSORNODE.update({"AIR_PRESSURE": self.ELEMENT,
"HUMIDITY": self.ELEMENT,
"LUX": self.ELEMENT,
"RAIN_COUNTER": self.ELEMENT,
"WIND_SPEED": self.ELEMENT,
"WIND_DIRECTION": self.ELEMENT,
"WIND_DIRECTION_RANGE": self.ELEMENT,
"GUST_SPEED": self.ELEMENT,
"UVINDEX": self.ELEMENT,
"LIGHTNING_COUNTER": self.ELEMENT,
"LIGHNTING_DISTANCE": self.ELEMENT})
class TemperatureDiffSensor(SensorHm):
"""Temperature difference Sensor."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata
self.SENSORNODE.update({"TEMPERATURE": [1, 2, 3, 4]})
def get_temperature(self, channel=None):
return float(self.getSensorData("TEMPERATURE", channel))
class WeatherSensor(SensorHm):
"""Weather sensor.
This is a binary sensor."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
self.BINARYNODE.update({"SENSOR": self.ELEMENT})
@property
def ELEMENT(self):
return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
def get_state(self, channel=None):
""" Returns current state of sensor """
return bool(self.getBinaryData("SENSOR", channel))
class FillingLevel(SensorHm):
"""Filling level sensor."""
def __init__(self, device_description, proxy, resolveparamsets=False):
super().__init__(device_description, proxy, resolveparamsets)
# init metadata
self.SENSORNODE.update({"FILLING_LEVEL": self.ELEMENT})
def get_level(self, channel=None):
""" Return filling level from 0 to 100 % """
return int(self.getSensorData("FILLING_LEVEL", channel))
@property
def ELEMENT(self):
return [1]