add entity for temperature

main
Hendrik Sokolowski 2024-03-21 13:54:43 +01:00
parent 411a0b8570
commit f6586cb0d5
1 changed files with 29 additions and 0 deletions

View File

@ -17,6 +17,13 @@ coloredlogs.install()
logger = logging.getLogger("HA kiosk agent")
logger.setLevel(logging.INFO)
def get_temperature() -> float:
temp = psutil.sensors_temperatures()
if not temp or not temp['acpitz']:
return -1
return ("{:.2f}".format(temp['acpitz'][0].current))
def get_battery_level() -> float:
blevel = psutil.sensors_battery()
if not blevel:
@ -113,6 +120,18 @@ display_brightness_info = NumberInfo(
display_brightness_settings = Settings(mqtt=mqtt_settings, entity=display_brightness_info)
display_brightness = Number(display_brightness_settings, display_brightness_callback)
# Temperature
temperature_info = SensorInfo(
name="Temperature",
device=device_info,
unique_id=f'{args.device_id}_temperature',
device_class='temperature',
unit_of_measurement='°C')
temperature_settings = Settings(mqtt=mqtt_settings, entity=temperature_info)
temperature = Sensor(temperature_settings)
logger.info('finished setup')
lastBattery = get_battery_level()
@ -127,6 +146,10 @@ lastBrightness = get_display_brightness()
logger.info(f'current brightness: { lastBrightness }')
display_brightness.set_value(lastBrightness)
lastTemperature = get_temperature()
logger.info(f'current temperature: { temperature }')
temperature.set_state(lastTemperature)
while True:
newBrightness = get_display_brightness()
if newBrightness != lastBrightness:
@ -147,4 +170,10 @@ while True:
battery_charging.off()
lastBattery = newBattery
newTemperature = get_temperature()
if newTemperature != lastTemperature:
logger.info(f'updating value for temperature to { newTemperature }')
temperature.set_state(newTemperature)
lastTemperature = newTemperature
time.sleep(5)