Add sensor fault simulation and health display

This commit is contained in:
root
2026-06-03 00:22:57 -06:00
parent fbac6063b9
commit cdff42ddd4
4 changed files with 134 additions and 31 deletions
+32 -8
View File
@@ -13,6 +13,7 @@ class ESP32Simulator:
self.wifi_override_until = 0
self.ignition_on = True
self.failed_sensors = set()
self.soc = 82.0
self.last_update = time.time()
@@ -43,18 +44,23 @@ class ESP32Simulator:
starlink_on = self.relays["starlink"]
wifi_override_active = time.time() < self.wifi_override_until
sensor_names = [
"fridge_zone_1",
"fridge_zone_2",
"rear_seat",
"outside"
]
temps = {
"fridge_zone_1": self.sensor(36, 2),
"fridge_zone_2": self.sensor(12, 3),
"rear_seat": self.sensor(78, 8),
"outside": self.sensor(88, 8)
"fridge_zone_1": None if "fridge_zone_1" in self.failed_sensors else self.sensor(36, 2),
"fridge_zone_2": None if "fridge_zone_2" in self.failed_sensors else self.sensor(12, 3),
"rear_seat": None if "rear_seat" in self.failed_sensors else self.sensor(78, 8),
"outside": None if "outside" in self.failed_sensors else self.sensor(88, 8)
}
sensor_health = {
"fridge_zone_1": True,
"fridge_zone_2": True,
"rear_seat": True,
"outside": True
name: name not in self.failed_sensors
for name in sensor_names
}
remaining_ah = round(self.soc, 1)
@@ -108,5 +114,23 @@ class ESP32Simulator:
self.ignition_on = not self.ignition_on
return self.ignition_on
def toggle_sensor_fault(self, name):
valid = {
"fridge_zone_1",
"fridge_zone_2",
"rear_seat",
"outside"
}
if name not in valid:
return None
if name in self.failed_sensors:
self.failed_sensors.remove(name)
return False
self.failed_sensors.add(name)
return True
esp32 = ESP32Simulator()