Added battery sensor backend
This commit is contained in:
parent
6738ff832a
commit
9d592fe370
3 changed files with 33 additions and 3 deletions
30
platypush/backend/sensor/battery.py
Normal file
30
platypush/backend/sensor/battery.py
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
from platypush.backend.sensor import SensorBackend
|
||||||
|
from platypush.context import get_plugin
|
||||||
|
|
||||||
|
|
||||||
|
class SensorBatteryBackend(SensorBackend):
|
||||||
|
"""
|
||||||
|
This backend listens for battery full/connect/disconnect/below/above threshold events.
|
||||||
|
The sensor events triggered by this backend will include any of the following fields:
|
||||||
|
|
||||||
|
- ``battery_percent``
|
||||||
|
- ``battery_secs_left``
|
||||||
|
- ``battery_power_plugged``
|
||||||
|
|
||||||
|
Requires:
|
||||||
|
|
||||||
|
- **psutil** (``pip install psutil``) for CPU load and stats.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
|
def get_measurement(self):
|
||||||
|
plugin = get_plugin('system')
|
||||||
|
return {
|
||||||
|
'battery_' + name: value
|
||||||
|
for name, value in plugin.sensors_battery().output.items()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# vim:sw=4:ts=4:et:
|
|
@ -384,13 +384,13 @@ class SensorFanResponse(SensorResponse):
|
||||||
class SensorBatteryResponse(SensorResponse):
|
class SensorBatteryResponse(SensorResponse):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
percent: float,
|
percent: float,
|
||||||
secsleft: int,
|
secs_left: int,
|
||||||
power_plugged: bool,
|
power_plugged: bool,
|
||||||
*args, **kwargs):
|
*args, **kwargs):
|
||||||
super().__init__(
|
super().__init__(
|
||||||
*args, output={
|
*args, output={
|
||||||
'percent': percent,
|
'percent': percent,
|
||||||
'secsleft': secsleft,
|
'secs_left': secs_left,
|
||||||
'power_plugged': power_plugged,
|
'power_plugged': power_plugged,
|
||||||
}, **kwargs
|
}, **kwargs
|
||||||
)
|
)
|
||||||
|
|
|
@ -544,7 +544,7 @@ class SystemPlugin(Plugin):
|
||||||
|
|
||||||
return SensorBatteryResponse(
|
return SensorBatteryResponse(
|
||||||
percent=stats.percent,
|
percent=stats.percent,
|
||||||
secsleft=stats.secsleft,
|
secs_left=stats.secsleft,
|
||||||
power_plugged=stats.power_plugged,
|
power_plugged=stats.power_plugged,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue