Compare commits

...

2 Commits

2 changed files with 36 additions and 10 deletions

View File

@ -74,9 +74,7 @@ class DisplayBrightnessManager():
return self.brightness_value
def set_brightness_value(self, number: float):
res = subprocess.run(['light', '-S', f'{ number }%'])
if res.returncode != 0:
logger.warn(f'failed to set brightness: exit code { res.returncode }')
self.brightness_value_new = number
def set_mode(self, mode: BrightnessMode):
self.brightness_mode_new = mode
@ -163,7 +161,7 @@ class DisplayBrightnessManager():
await self.dim_screen(50)
self.brightness_level = BrightnessLevel.LEVEL_BRIGHT
await asyncio.sleep(0.1)
await asyncio.sleep(0.05)
async def run(self):
tasks = [self.brightness_loop()]

View File

@ -15,13 +15,24 @@ from paho.mqtt.client import Client, MQTTMessage
class BatterySensor():
charging_status = False
level = -1
charger_connected = None
charging_status = None
level = None
charging_entity = None
connected_entity = None
level_entity = None
def __init__(self, device: Device):
# Battery charger connected
charger_connected_info = ha_mqtt_discoverable.sensors.BinarySensorInfo(
name="Battery charger connected",
device=device.get_mqtt_device(),
unique_id=f'{device.get_device_id()}_battery_charger_connected')
charger_connected_settings = ha_mqtt_discoverable.Settings(mqtt=device.get_mqtt_settings(), entity=charger_connected_info, manual_availability=True)
self.connected_entity = ha_mqtt_discoverable.sensors.BinarySensor(charger_connected_settings)
self.connected_entity.set_availability(True)
# Battery charging
battery_charging_info = ha_mqtt_discoverable.sensors.BinarySensorInfo(
name="Battery charging",
@ -49,17 +60,34 @@ class BatterySensor():
logger.warn(f'failed to get battery state')
return
if self.charging_status != blevel.power_plugged:
if blevel.power_plugged:
chc = False
chs = False
if blevel.power_plugged == True:
chc = True
if blevel.secsleft != psutil.POWER_TIME_UNLIMITED and blevel.secsleft != psutil.POWER_TIME_UNKNOWN:
chs = True
elif blevel.power_plugged is None and blevel.secsleft == psutil.POWER_TIME_UNKNOWN:
chc = True
chs = False
if self.charger_connected is None or self.charger_connected != chc:
if chc:
self.connected_entity.on()
else:
self.connected_entity.off()
if self.charging_status is None or self.charging_status != chs:
if chs:
self.charging_entity.on()
else:
self.charging_entity.off()
newLevel = "{:.0f}".format(blevel.percent)
if self.level != newLevel:
if self.level is None or self.level != newLevel:
self.level_entity.set_state(newLevel)
self.charging_status = blevel.power_plugged
self.charging_status = chs
self.charger_connected = chc
self.level = newLevel