Skip to content

Commit

Permalink
Convert powerstrip to expose its sensors
Browse files Browse the repository at this point in the history
  • Loading branch information
rytilahti committed Aug 13, 2022
1 parent 0d8014c commit 4f712f1
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion miio/powerstrip.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import click

from .click_common import EnumType, command, format_output
from .device import Device, DeviceStatus
from .device import Device, DeviceStatus, sensor
from .exceptions import DeviceException
from .utils import deprecated

Expand Down Expand Up @@ -65,16 +65,19 @@ def power(self) -> str:
return self.data["power"]

@property
@sensor(name="Power")
def is_on(self) -> bool:
"""True if the device is turned on."""
return self.power == "on"

@property
@sensor(name="Temperature", unit="C", icon="mdi:thermometer")
def temperature(self) -> float:
"""Current temperature."""
return self.data["temperature"]

@property
@sensor(name="Current", unit="A", icon="mdi:current-ac")
def current(self) -> Optional[float]:
"""Current, if available.
Expand All @@ -85,6 +88,7 @@ def current(self) -> Optional[float]:
return None

@property
@sensor(name="Load power", unit="W")
def load_power(self) -> Optional[float]:
"""Current power load, if available."""
if self.data["power_consume_rate"] is not None:
Expand All @@ -105,6 +109,7 @@ def wifi_led(self) -> Optional[bool]:
return self.led

@property
@sensor(name="LED", icon="mdi:led-outline")
def led(self) -> Optional[bool]:
"""True if the wifi led is turned on."""
if "wifi_led" in self.data and self.data["wifi_led"] is not None:
Expand All @@ -119,20 +124,23 @@ def power_price(self) -> Optional[int]:
return None

@property
@sensor(name="Leakage current", unit="A")
def leakage_current(self) -> Optional[int]:
"""The leakage current, if available."""
if "elec_leakage" in self.data and self.data["elec_leakage"] is not None:
return self.data["elec_leakage"]
return None

@property
@sensor(name="Voltage", unit="V")
def voltage(self) -> Optional[float]:
"""The voltage, if available."""
if "voltage" in self.data and self.data["voltage"] is not None:
return self.data["voltage"] / 100.0
return None

@property
@sensor(name="Power Factor", unit="%")
def power_factor(self) -> Optional[float]:
"""The power factor, if available."""
if "power_factor" in self.data and self.data["power_factor"] is not None:
Expand Down

0 comments on commit 4f712f1

Please sign in to comment.