Add versioned HTTP API routes

This commit is contained in:
2026-06-07 10:24:08 -06:00
parent ec39182bbd
commit d87080d23f
11 changed files with 226 additions and 137 deletions
+6 -5
View File
@@ -1,16 +1,17 @@
import json
class HttpClient:
def __init__(self, requests_module, base_url="http://192.168.4.1"):
self.requests = requests_module
self.base_url = base_url.rstrip("/")
if not self.base_url.endswith("/api/v1"):
self.base_url = f"{self.base_url}/api/v1"
def get_status(self):
response = self.requests.get(f"{self.base_url}/status")
return response.json()
def set_relay(self, relay, enabled):
state = "on" if enabled else "off"
response = self.requests.get(f"{self.base_url}/relay/{relay}/{state}")
response = self.requests.post(
f"{self.base_url}/relay/set",
json={"id": relay, "state": enabled},
)
return response.json()
+4 -2
View File
@@ -24,6 +24,8 @@ class AppState:
}
self.relays = {
"relay_1": False,
"relay_2": False,
"starlink": False,
"fridge": False,
}
@@ -51,8 +53,8 @@ class AppState:
self.network.update(message.get("network", {}))
def update_from_relay_response(self, message):
relay = message.get("relay")
enabled = message.get("enabled")
relay = message.get("relay", message.get("id"))
enabled = message.get("enabled", message.get("state"))
if relay in self.relays and enabled is not None:
self.relays[relay] = bool(enabled)