Per-automation webhook URL with auto-generated 128-bit hex token.
External services (Home Assistant, IFTTT, curl) can POST to
/api/v1/webhooks/{token} with {"action": "activate"|"deactivate"}
to control automation state — no API key required (token is auth).
Backend: WebhookCondition model, engine state tracking with
immediate evaluation, webhook endpoint, schema/route updates.
Frontend: webhook option in condition editor, URL display with
copy button, card badge, i18n for en/ru/zh.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
"""API routes and schemas."""
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from .routes.system import router as system_router
|
|
from .routes.devices import router as devices_router
|
|
from .routes.templates import router as templates_router
|
|
from .routes.postprocessing import router as postprocessing_router
|
|
from .routes.picture_sources import router as picture_sources_router
|
|
from .routes.pattern_templates import router as pattern_templates_router
|
|
from .routes.picture_targets import router as picture_targets_router
|
|
from .routes.color_strip_sources import router as color_strip_sources_router
|
|
from .routes.audio import router as audio_router
|
|
from .routes.audio_sources import router as audio_sources_router
|
|
from .routes.audio_templates import router as audio_templates_router
|
|
from .routes.value_sources import router as value_sources_router
|
|
from .routes.automations import router as automations_router
|
|
from .routes.scene_presets import router as scene_presets_router
|
|
from .routes.webhooks import router as webhooks_router
|
|
|
|
router = APIRouter()
|
|
router.include_router(system_router)
|
|
router.include_router(devices_router)
|
|
router.include_router(templates_router)
|
|
router.include_router(postprocessing_router)
|
|
router.include_router(pattern_templates_router)
|
|
router.include_router(picture_sources_router)
|
|
router.include_router(color_strip_sources_router)
|
|
router.include_router(audio_router)
|
|
router.include_router(audio_sources_router)
|
|
router.include_router(audio_templates_router)
|
|
router.include_router(value_sources_router)
|
|
router.include_router(picture_targets_router)
|
|
router.include_router(automations_router)
|
|
router.include_router(scene_presets_router)
|
|
router.include_router(webhooks_router)
|
|
|
|
__all__ = ["router"]
|