How pqpxo/ha-notify-studio works
Notify Studio is an admin-only Home Assistant integration for composing, auditing, organizing, and operating Companion notifications. The main workflow runs from the sidebar panel through authenticated WebSocket requests to backend validation, preview, test-send, YAML generation, and UI-managed automation saving. Separate branches cover Device Watch, templates, notification-source audits, custom groups, runnable controls, and operational logs. Backend details are only partially sampled; documented capabilities are retained, while uncertain internal call links are omitted.
Main entry points: websocket_api.py WebSocket handlers · App.tsx Studio interface · notify_scanner.py Merged YAML audit · main.tsx Panel element
Components 21
Admin panel
- Panel element
panel-src/src/main.tsx - Studio interface
panel-src/src/App.tsx - WebSocket client
panel-src/src/api.ts - Panel styling
panel-src/src/styles.ts
Integration API
- WebSocket handlers
custom_components/notify_studio/websocket_api.py - Integration setup
custom_components/notify_studio/__init__.py - Integration config
custom_components/notify_studio/config_flow.py - Integration constants
custom_components/notify_studio/const.py
Notification workflows
- Notifier discovery
custom_components/notify_studio/notifier_registry.py - Payload validation
custom_components/notify_studio/notification_schema.py - Automation writer
custom_components/notify_studio/automation_writer.py - Template drafts
custom_components/notify_studio/template_store.py
Organization and operations
- Merged YAML audit
custom_components/notify_studio/notify_scanner.py - Runnable registry
custom_components/notify_studio/runnable_registry.py - Custom categories and areas
custom_components/notify_studio/custom_group_store.py - Activity logs
custom_components/notify_studio/log_store.py
Other components
- Administrator
- Home Assistant
- Companion notify services
- Merged HA YAML
- HA automation editor
Connections 25
- Administrator → Panel element: opens panel
README.md - Panel element → Studio interface: renders
panel-src/src/main.tsx - Studio interface → Panel styling: uses styles
panel-src/src/App.tsx - Studio interface → WebSocket client: sends requests
panel-src/src/App.tsx - WebSocket client → Home Assistant: uses authenticated WebSocket
README.md - Home Assistant → WebSocket handlers: routes requests
- Integration setup → WebSocket handlers: registers handlers
custom_components/notify_studio/__init__.py - Administrator → Integration config: adds integration
README.md - WebSocket handlers → Notifier discovery: discovers targets
custom_components/notify_studio/websocket_api.py - WebSocket handlers → Payload validation: validates payload
custom_components/notify_studio/websocket_api.py - WebSocket handlers → Companion notify services: sends test notification
README.md - WebSocket handlers → Automation writer: generates notification YAML
custom_components/notify_studio/websocket_api.py - WebSocket handlers → HA automation editor: saves UI automations
custom_components/notify_studio/websocket_api.py - HA automation editor → Administrator: opens editor
README.md - WebSocket handlers → Template drafts: manages drafts
README.md - WebSocket handlers → Merged YAML audit: scans notification usage
custom_components/notify_studio/websocket_api.py - Merged YAML audit → Merged HA YAML: audits merged YAML
custom_components/notify_studio/notify_scanner.py - Merged YAML audit → Notifier discovery: resolves device names
custom_components/notify_studio/notify_scanner.py - WebSocket handlers → Runnable registry: lists runnable entities
custom_components/notify_studio/websocket_api.py - WebSocket handlers → Custom categories and areas: manages memberships
custom_components/notify_studio/websocket_api.py - WebSocket handlers → Activity logs: records activity
custom_components/notify_studio/websocket_api.py - Administrator → Studio interface: composes and audits
README.md - Studio interface → WebSocket handlers: requests previews and saves
README.md - WebSocket handlers → Home Assistant: renders templates
custom_components/notify_studio/websocket_api.py - WebSocket handlers → Home Assistant: controls automations
custom_components/notify_studio/websocket_api.py