Files
2026-06-03 02:57:25 -06:00

78 lines
1.8 KiB
Python

import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / "pico-dashboard"))
from state.app_state import AppState
from alarms.alarm_manager import AlarmManager
from ui.dashboard_view_model import DashboardViewModel
from ui.detail_view_models import (
BatteryViewModel,
TempsViewModel,
PowerViewModel,
SystemViewModel,
)
from ui.alarm_view_model import AlarmViewModel
def main():
state = AppState()
state.update_from_status({
"timestamp": 12345,
"battery": {
"soc": 82,
"voltage": 13.2,
"current": -6.4,
"remaining_ah": 82,
"runtime_hours": 12.0,
"temperature_f": 76,
},
"temps": {
"fridge_zone_1": 34.5,
"fridge_zone_2": 36.0,
"rear_seat": 72.0,
"outside": 88.0,
},
"sensor_health": {
"fridge_zone_1": True,
"fridge_zone_2": True,
"rear_seat": True,
"outside": True,
},
"relays": {
"starlink": False,
"fridge": True,
},
"network": {
"uart_connected": True,
"wifi_enabled": True,
},
})
alarms = AlarmManager().evaluate(state)
print("\n=== DASHBOARD ===")
print(DashboardViewModel(state, alarms).as_dict())
print("\n=== BATTERY ===")
print(BatteryViewModel(state).as_dict())
print("\n=== TEMPERATURES ===")
for row in TempsViewModel(state).as_list():
print(row)
print("\n=== POWER ===")
print(PowerViewModel(state).as_dict())
print("\n=== SYSTEM ===")
print(SystemViewModel(state).as_dict())
print("\n=== ALARMS ===")
print(AlarmViewModel(alarms).as_list())
if __name__ == "__main__":
main()