Adds a self-contained omni-pca/grafana/ bundle (InfluxDB v2 + Grafana with pre-provisioned datasource and dashboard) plus dev-stack wiring so iterating against the mock or real panel is one docker-compose-up. The dashboard has four rows plus an insights row: System health AC, battery, trouble, 24h event count Security area arming state, recent events table, zone trips Climate thermostat temperatures, HVAC mode Activity event rate by type, top toggled units Insights active zone bypasses, button press log, event distribution Color-coded event_type tags persist across panels (alarms red, restores green, batteries orange, etc.); explicit no-purple palette per CLAUDE.md. The bundle is portable: any HA install can use it by running grafana/ docker compose up -d and pasting ha-snippet.yaml into configuration.yaml. For the dev stack, dev/docker-compose.yml mounts the same provisioning files so dev and prod stay in lockstep. Verified end-to-end against the real Our House.pca panel (192.168.1.9): the dashboard fills with live zone trips, X-10 unit toggles, and push-event traffic within 30s of HA bootup.
52 lines
1.7 KiB
YAML
52 lines
1.7 KiB
YAML
# Paste this block into your Home Assistant configuration.yaml.
|
|
#
|
|
# Prerequisites:
|
|
# 1. The grafana stack from this directory is running:
|
|
# cd grafana/ && cp .env.example .env && docker compose up -d
|
|
# 2. Your HA instance can reach the influxdb container on port 8086.
|
|
# Common patterns:
|
|
# - HA and InfluxDB on the same compose stack: use host=influxdb
|
|
# - HA and InfluxDB on different hosts: use host=<your-influx-ip>
|
|
# - HA on the host network, InfluxDB in docker: use
|
|
# host=host.docker.internal or the host's LAN IP
|
|
# 3. Add `influxdb_token: <your INFLUX_TOKEN from .env>` to your
|
|
# secrets.yaml. Restart HA after editing both files.
|
|
#
|
|
# What this ships:
|
|
# - All state changes from omni_pca entities (alarm_control_panel,
|
|
# binary_sensor, climate, event, light, sensor, switch).
|
|
# - Event entity attributes carried as fields, including the typed
|
|
# event_class and event_data payload — so Flux queries can filter
|
|
# by alarm_type, zone_index, etc.
|
|
#
|
|
# Adjust the entity_globs filter if you also want non-omni entities in
|
|
# the dashboard, or tighten it further to scope by area / device.
|
|
|
|
influxdb:
|
|
api_version: 2
|
|
host: influxdb # change to match your network layout
|
|
port: 8086
|
|
ssl: false
|
|
verify_ssl: false
|
|
token: !secret influxdb_token
|
|
organization: omni-pca
|
|
bucket: ha
|
|
precision: s
|
|
|
|
# Tag the typed event kind so Flux queries can filter by it cheaply.
|
|
tags_attributes:
|
|
- event_type
|
|
- event_class
|
|
|
|
include:
|
|
domains:
|
|
- alarm_control_panel
|
|
- binary_sensor
|
|
- climate
|
|
- event
|
|
- light
|
|
- sensor
|
|
- switch
|
|
entity_globs:
|
|
- "*omni*" # scope to omni_pca entities only
|