Add Pico dashboard core state and alarm logic
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
class AppState:
|
||||
def __init__(self):
|
||||
self.battery = {
|
||||
"soc": None,
|
||||
"voltage": None,
|
||||
"current": None,
|
||||
"remaining_ah": None,
|
||||
"runtime_hours": None,
|
||||
"temperature_f": None,
|
||||
}
|
||||
|
||||
self.temps = {
|
||||
"fridge_zone_1": None,
|
||||
"fridge_zone_2": None,
|
||||
"rear_seat": None,
|
||||
"outside": None,
|
||||
}
|
||||
|
||||
self.sensor_health = {
|
||||
"fridge_zone_1": False,
|
||||
"fridge_zone_2": False,
|
||||
"rear_seat": False,
|
||||
"outside": False,
|
||||
}
|
||||
|
||||
self.relays = {
|
||||
"starlink": False,
|
||||
"fridge": False,
|
||||
}
|
||||
|
||||
self.vehicle = {
|
||||
"ignition_on": False,
|
||||
}
|
||||
|
||||
self.network = {
|
||||
"uart_connected": False,
|
||||
"wifi_enabled": False,
|
||||
}
|
||||
|
||||
self.last_error = None
|
||||
self.last_status_timestamp = None
|
||||
|
||||
def update_from_status(self, message):
|
||||
self.last_status_timestamp = message.get("timestamp")
|
||||
|
||||
self.battery.update(message.get("battery", {}))
|
||||
self.temps.update(message.get("temps", {}))
|
||||
self.sensor_health.update(message.get("sensor_health", {}))
|
||||
self.relays.update(message.get("relays", {}))
|
||||
self.vehicle.update(message.get("vehicle", {}))
|
||||
self.network.update(message.get("network", {}))
|
||||
|
||||
def update_from_relay_response(self, message):
|
||||
relay = message.get("relay")
|
||||
enabled = message.get("enabled")
|
||||
|
||||
if relay in self.relays and enabled is not None:
|
||||
self.relays[relay] = bool(enabled)
|
||||
|
||||
def set_error(self, message):
|
||||
self.last_error = message
|
||||
|
||||
Reference in New Issue
Block a user