Add entity CRUD events over WebSocket with auto-refresh
Broadcast entity_changed and device_health_changed events via the event bus so the frontend can auto-refresh cards without polling. Adds exponential backoff on WS reconnect. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ from fastapi import APIRouter, Depends, HTTPException, Request
|
||||
|
||||
from wled_controller.api.auth import AuthRequired
|
||||
from wled_controller.api.dependencies import (
|
||||
fire_entity_event,
|
||||
get_automation_engine,
|
||||
get_automation_store,
|
||||
get_scene_preset_store,
|
||||
@@ -174,6 +175,7 @@ async def create_automation(
|
||||
if automation.enabled:
|
||||
await engine.trigger_evaluate()
|
||||
|
||||
fire_entity_event("automation", "created", automation.id)
|
||||
return _automation_to_response(automation, engine, request)
|
||||
|
||||
|
||||
@@ -273,6 +275,7 @@ async def update_automation(
|
||||
if automation.enabled:
|
||||
await engine.trigger_evaluate()
|
||||
|
||||
fire_entity_event("automation", "updated", automation_id)
|
||||
return _automation_to_response(automation, engine, request)
|
||||
|
||||
|
||||
@@ -296,6 +299,8 @@ async def delete_automation(
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=404, detail=str(e))
|
||||
|
||||
fire_entity_event("automation", "deleted", automation_id)
|
||||
|
||||
|
||||
# ===== Enable/Disable =====
|
||||
|
||||
|
||||
Reference in New Issue
Block a user