Home Assistant Integration
The Icelake HACS integration lets you ship every entity in Home Assistant — sensors, climate, switches, binary sensors — straight into Icelake’s S3-backed data lakehouse. Under the hood it uses Home Assistant’s state-change events and pushes them to Icelake’s Prometheus-compatible remote write endpoint, so what you get back is a full metric history you can query with PromQL, LogQL, SQL, or AI MasterMind.
No Node-RED, no InfluxDB, no long-term storage add-on. Your data lives on your own S3 bucket, retained as long as you want, priced by the byte.
Before you start
Section titled “Before you start”- A running Home Assistant instance (Supervised, Container, or OS)
- HACS installed
- An Icelake account and an API key (client ID +
ilk_…secret) from the admin dashboard under Data In → API Keys
1. Install the integration
Section titled “1. Install the integration”- Open HACS → Integrations → ⋮ → Custom repositories.
- Add
https://github.com/icelake-eu/hacs-icelakewith category Integration. - Search HACS for Icelake and install.
- Restart Home Assistant so the new integration registers.
2. Configure in the UI
Section titled “2. Configure in the UI”- Go to Settings → Devices & Services → Add Integration → Icelake.
- Enter:
- Icelake URL —
https://api.icelake.eu - Client ID — from the API key you created.
- API Key — the
ilk_…secret.
- Icelake URL —
- Optionally configure entity filtering on the next screen (see below).
- Submit. The integration validates credentials and starts pushing on the next state change.
3. Filter what you send
Section titled “3. Filter what you send”By default every numeric and boolean entity is shipped. Smart-home setups can have thousands of entities, so you usually want to scope this:
| Option | What it does |
|---|---|
| Include domains | Only ship entities from listed domains, e.g. sensor, climate, binary_sensor, switch |
| Exclude entities | Block specific entity IDs (sensor.noisy_one) |
| Include areas | Only ship entities in the listed Home Assistant areas |
| Minimum interval | Coalesce rapid state changes (default: 5s) |
Change these at any time under Settings → Devices & Services → Icelake → Configure.
4. Verify ingestion
Section titled “4. Verify ingestion”After a couple of state changes, metrics should appear. Query via MasterMind:
“Show me the living room temperature over the last 24 hours”
Or via PromQL in Grafana (see Query Interfaces for the datasource setup):
ha_sensor_temperature{entity="sensor.living_room_temperature"}How entities map to metrics
Section titled “How entities map to metrics”Metric names follow the ha_<domain>_<object_id> convention:
| Home Assistant entity | Icelake metric |
|---|---|
sensor.living_room_temperature | ha_sensor_living_room_temperature |
climate.kitchen (current temp) | ha_climate_kitchen_current_temperature |
binary_sensor.front_door | ha_binary_sensor_front_door (0 or 1) |
switch.office_lights | ha_switch_office_lights (0 or 1) |
Each metric carries labels for area, device_class, friendly_name, and unit_of_measurement where available, so you can slice dashboards by room or sensor type.
Troubleshooting
Section titled “Troubleshooting”| Symptom | What to check |
|---|---|
| No data arriving | Confirm client ID + API key in the integration options. Try the Prometheus verify step. |
| Only some entities | Check include/exclude filters under Configure |
| 401 in logs | API key was revoked or rotated — create a new one and update the integration |
| High cardinality warning | Tighten filters; prefer areas or domains over shipping everything |
| HA restart loses config | The integration persists via Home Assistant’s config entry system; restart doesn’t wipe it, but a HACS reinstall does |
Related docs
Section titled “Related docs”- Prometheus — the underlying protocol and remote write mechanics
- Query Interfaces — configure Grafana or pgwire against HA metrics
- Quickstart — send your first signal to Icelake and view it in Grafana