Home Assistant light
Home Assistant REST service call
Expresses Signal Contract hue, intensity, pulse, and ttl only.
Browser-local preview
Map the same governed event to Home Assistant light and speaker payloads. Nothing connects to a device from this page; a local bridge is required to execute the staged requests.
Broadcast event
Home Assistant light
75%{
"trace_id": "room-poc-agent-trace-01",
"event": {
"schema_version": "1.0",
"id": "sig_station_source_confidence_drop_004",
"occurred_at": "2026-05-06T00:13:00.000Z",
"producer": "vibenet.station_builder",
"entity": "user_trace",
"event": "source_confidence_drop",
"channel": "warning",
"valence": 0.25,
"energy": 0.7,
"tension": 0.8,
"intensity": 0.75,
"hue": 35,
"pulse": 0.65,
"confidence": 0.82,
"ttl_ms": 15000,
"metadata": {
"source_sample_mode": "pasted_text",
"source_adapter": "station_builder_preview",
"renderer_policy": "renderers_may_not_mutate_truth",
"station_event_offset_sec": 780
}
},
"renderer_targets": [
"home_assistant_light",
"home_assistant_speaker"
],
"issued_at": "2026-05-06T00:00:00.000Z",
"ack_url": "/connect/send-to-room#acknowledge"
}[
{
"target": "home_assistant",
"method": "POST",
"path": "/api/services/light/turn_on",
"body": {
"entity_id": "light.vibenet_room",
"hs_color": [
35,
80
],
"brightness_pct": 75,
"transition": 0.7
}
},
{
"target": "home_assistant",
"method": "POST",
"path": "/api/services/tts/speak",
"body": {
"entity_id": "tts.vibenet_voice",
"media_player_entity_id": "media_player.google_home",
"message": "attention recommended: user_trace source confidence drop",
"cache": true
}
}
]Home Assistant REST service call
Expresses Signal Contract hue, intensity, pulse, and ttl only.
Home Assistant TTS service call
Speaks a short renderer cue from channel, entity, and event.
Local runner
The preview above never stores Home Assistant credentials. On the Mac or inside the home network, export the local variables and run the bridge in dry-run mode first.
export VIBENET_HA_URL="http://homeassistant.local:8123" export VIBENET_HA_TOKEN="[redacted]" export VIBENET_HA_LIGHT_ENTITY="light.office" export VIBENET_HA_MEDIA_PLAYER_ENTITY="media_player.office_speaker" export VIBENET_HA_TTS_ENTITY="tts.piper" npm run device-renderer:dry-run npx tsx scripts/run_device_renderer.ts --sample --execute --target all