class MessageType: STATUS_REQUEST = "status_request" STATUS_RESPONSE = "status_response" SET_RELAY = "set_relay" RELAY_RESPONSE = "relay_response" ENABLE_WIFI = "enable_wifi" WIFI_RESPONSE = "wifi_response" TOGGLE_IGNITION = "toggle_ignition" IGNITION_RESPONSE = "ignition_response" TOGGLE_SENSOR_FAULT = "toggle_sensor_fault" SENSOR_FAULT_RESPONSE = "sensor_fault_response" def status_request(): return {"type": MessageType.STATUS_REQUEST} def status_response(data): return { "type": MessageType.STATUS_RESPONSE, "data": data } def set_relay_request(relay, state): return { "type": MessageType.SET_RELAY, "relay": relay, "state": bool(state) } def relay_response(success, relay=None, state=None, error=None): return { "type": MessageType.RELAY_RESPONSE, "success": success, "relay": relay, "state": state, "error": error } def enable_wifi_request(minutes): return { "type": MessageType.ENABLE_WIFI, "minutes": int(minutes) } def wifi_response(success, expires_minutes=None): return { "type": MessageType.WIFI_RESPONSE, "success": success, "expires_minutes": expires_minutes } def toggle_ignition_request(): return {"type": MessageType.TOGGLE_IGNITION} def ignition_response(success, ignition_on): return { "type": MessageType.IGNITION_RESPONSE, "success": success, "ignition_on": ignition_on } def toggle_sensor_fault_request(sensor): return { "type": MessageType.TOGGLE_SENSOR_FAULT, "sensor": sensor } def sensor_fault_response(success, sensor=None, failed=None, error=None): return { "type": MessageType.SENSOR_FAULT_RESPONSE, "success": success, "sensor": sensor, "failed": failed, "error": error }