STATUS_REQUEST = "status_request" STATUS_RESPONSE = "status_response" SET_RELAY = "set_relay" RELAY_RESPONSE = "relay_response" ERROR = "error" VALID_RELAYS = {"starlink", "fridge"} def make_status_request(): return {"type": STATUS_REQUEST} def make_set_relay(relay, enabled): if relay not in VALID_RELAYS: raise ValueError(f"Invalid relay: {relay}") return { "type": SET_RELAY, "relay": relay, "enabled": bool(enabled), } def is_status_response(message): return message.get("type") == STATUS_RESPONSE def is_relay_response(message): return message.get("type") == RELAY_RESPONSE def is_error(message): return message.get("type") == ERROR