Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def current(self):
"""Current."""
return self.raw["state"].get("current")
@property
def power(self):
"""Power."""
return self.raw["state"].get("power")
@property
def voltage(self):
"""Voltage."""
return self.raw["state"].get("voltage")
class Presence(DeconzSensor):
"""Presence detector."""
BINARY = True
ZHATYPE = ("ZHAPresence", "CLIPPresence")
@property
def state(self):
"""Main state of sensor."""
return self.is_tripped
@property
def dark(self):
"""If the area near the sensor is light or not."""
return self.raw["state"].get("dark")
@property
def duration(self):
"""Minimum duration which presence will be true."""
return self.raw["config"].get("duration")
@property
def is_tripped(self):
"""Sensor is tripped."""
return self.presence
@property
def presence(self):
"""Motion detected."""
return self.raw["state"].get("presence")
class Pressure(DeconzSensor):
"""Pressure sensor."""
BINARY = False
ZHATYPE = ("ZHAPressure", "CLIPPressure")
@property
def state(self):
"""Main state of sensor."""
return self.pressure
@property
def pressure(self):
"""Pressure."""
return self.raw["state"].get("pressure")
def state(self):
"""Main state of switch."""
return self.buttonevent
@property
def buttonevent(self):
"""Button press."""
return self.raw["state"].get("buttonevent")
@property
def gesture(self):
"""Gesture used for Xiaomi magic cube."""
return self.raw["state"].get("gesture")
class Temperature(DeconzSensor):
"""Temperature sensor."""
BINARY = False
ZHATYPE = ("ZHATemperature", "CLIPTemperature")
@property
def state(self):
"""Main state of sensor."""
return self.temperature
@property
def temperature(self):
"""Temperature."""
return self.convert_temperature(self.raw["state"].get("temperature"))
@staticmethod
@property
def state(self):
"""Main state of sensor."""
if self.humidity is None:
return None
return round(float(self.humidity) / 100, 1)
@property
def humidity(self):
"""Humidity level."""
return self.raw["state"].get("humidity")
class LightLevel(DeconzSensor):
"""Light level sensor."""
BINARY = False
ZHATYPE = ("ZHALightLevel", "CLIPLightLevel")
@property
def state(self):
"""Main state of sensor."""
if self.lightlevel is None:
return None
return round(10 ** (float(self.lightlevel - 1) / 10000), 1)
@property
def dark(self):
"""If the area near the sensor is light or not."""
BINARY = False
ZHATYPE = ("CLIPGenericStatus",)
@property
def state(self):
"""Main state of sensor."""
return self.status
@property
def status(self):
"""Status."""
return self.raw["state"].get("status")
class Humidity(DeconzSensor):
"""Humidity sensor."""
BINARY = False
ZHATYPE = ("ZHAHumidity", "CLIPHumidity")
@property
def state(self):
"""Main state of sensor."""
if self.humidity is None:
return None
return round(float(self.humidity) / 100, 1)
@property
def humidity(self):
"""Humidity level."""
def tiltangle(self) -> int:
"""Tilt angle."""
return self.raw["state"].get("tiltangle")
@property
def vibration(self) -> bool:
"""Vibration."""
return self.raw["state"].get("vibration")
@property
def vibrationstrength(self) -> int:
"""Strength of vibration."""
return self.raw["state"].get("vibrationstrength")
class Water(DeconzSensor):
"""Water sensor."""
BINARY = True
ZHATYPE = ("ZHAWater",)
@property
def state(self):
"""Main state of sensor."""
return self.is_tripped
@property
def is_tripped(self):
"""Sensor is tripped."""
return self.water
@property
def state(self):
"""Main state of sensor."""
return self.is_tripped
@property
def is_tripped(self):
"""Sensor is tripped."""
return self.open
@property
def open(self):
"""Door open."""
return self.raw["state"].get("open")
class Power(DeconzSensor):
"""Power sensor."""
BINARY = False
ZHATYPE = ("ZHAPower",)
@property
def state(self):
"""Main state of sensor."""
return self.power
@property
def current(self):
"""Current."""
return self.raw["state"].get("current")
@property
BINARY = False
ZHATYPE = ("ZHAPressure", "CLIPPressure")
@property
def state(self):
"""Main state of sensor."""
return self.pressure
@property
def pressure(self):
"""Pressure."""
return self.raw["state"].get("pressure")
class Switch(DeconzSensor):
"""Switch sensor."""
BINARY = False
ZHATYPE = ("ZHASwitch", "ZGPSwitch", "CLIPSwitch")
@property
def state(self):
"""Main state of switch."""
return self.buttonevent
@property
def buttonevent(self):
"""Button press."""
return self.raw["state"].get("buttonevent")
@property
def create_sensor(sensor_id, raw, request):
"""Simplify creating sensor by not needing to know type."""
for sensor_class in SENSOR_CLASSES:
if raw["type"] in sensor_class.ZHATYPE:
return sensor_class(sensor_id, raw, request)
_LOGGER.info("Unsupported sensor type %s (%s)", raw["type"], raw["name"])
return DeconzSensor(sensor_id, raw, request)
def lux(self):
"""Lux."""
return self.raw["state"].get("lux")
@property
def tholddark(self):
"""Threshold to hold dark."""
return self.raw["config"].get("tholddark")
@property
def tholdoffset(self):
"""Offset for threshold to hold dark."""
return self.raw["config"].get("tholdoffset")
class OpenClose(DeconzSensor):
"""Door/Window sensor."""
BINARY = True
ZHATYPE = ("ZHAOpenClose", "CLIPOpenClose")
@property
def state(self):
"""Main state of sensor."""
return self.is_tripped
@property
def is_tripped(self):
"""Sensor is tripped."""
return self.open
@property