Home Assistant & Apple Home
Your cisterns, in your smart home.
Bring live tank levels, low-water alarms and valve control into Home Assistant as native devices — then on into automations, dashboards, Apple Home and Siri. Readings refresh about every 20 seconds, and setup takes roughly five minutes.
Included with a Leak Detection subscription.
Before you start
Three things — and you almost certainly have the last one already.
The integration is part of Leak Detection. A lapse stops the connection until it is renewed.
OS, Container, Supervised or Core all work. Home Assistant Cloud is not required.
It ships with Home Assistant. No Mosquitto, no broker of your own — you point it at ours.
What shows up
Each cistern arrives as one device, named as you named it in the CMS app.
| Entity | Type | What it tells you |
|---|---|---|
| Tank Level | Sensor · % | Current fill percentage |
| Volume | Sensor · gal | Current volume in gallons |
| Capacity | Sensor · gal | Total tank capacity (diagnostic) |
| Low Water | Binary sensor | On below your low-water threshold |
| Sensor Fault | Binary sensor | On when the level sensor stops reporting |
| Connectivity | Binary sensor | Whether the cistern is online |
| Wi-Fi Signal | Sensor · dBm | Signal strength (diagnostic) |
| Water Temperature | Sensor · °C | Only on models with a temperature sensor |
| Entity | Type | What it tells you |
|---|---|---|
| Valve | Valve | Open and close control |
| Valve Mode | Sensor | Current operating mode (diagnostic) |
| Valve Fault | Binary sensor | On when the valve reports an error |
| Valve Open Limit | Binary sensor | Open limit switch engaged |
| Valve Closed Limit | Binary sensor | Closed limit switch engaged |
Setting it up
Do these in order — step 3 will not find anything until steps 1 and 2 are done.
- 1
Get your connection details
Sign in at your dashboard, open Home Assistant in the sidebar, and click Generate password. The page then shows everything below.
- Broker host
- cms.yourideasvi.com
- Port
- 8883
- Transport
- TLS / SSL — enabled
- Username
- your account ID, e.g. 9b57e82d-aa26-…
- Password
- Generated on the page
- Discovery prefix
- cms/ha/<your-account-id>/discovery
Copy the password nowIt is shown once and stored only as a one-way hash, so we cannot look it up or send it to you later. Lost it? Generate a new one — that instantly invalidates the old password.
Your username is the account ID, not your email address. Using your email will fail to connect.
- 2
Add the MQTT integration
- In Home Assistant, go to Settings → Devices & Services → Add Integration.
- Search for and choose MQTT.
- Enter the broker host, port, username and password from step 1.
- Enable TLS if your version shows the option. Leave “ignore broker certificate validation” switched off — our broker uses a standard publicly trusted certificate, so validation simply succeeds.
- Submit, then open the MQTT integration’s Configure page.
- Change Discovery prefix from its default to your own:
cms/ha/<your-account-id>/discoveryThe step people missHome Assistant defaults the discovery prefix to
homeassistant. With that default it connects perfectly and then never finds your cisterns. If your devices do not appear, check this before anything else.Save, then restart Home Assistant.
- 3
Confirm your cisterns appeared
Go to Settings → Devices & Services → MQTT → devices. Each cistern should be listed by name with its entities beneath it.
If a cistern is offline right now, its entities read Unavailable — except Connectivity, which stays readable on purpose, so you can build automations that fire when a cistern drops off the network.
Two automations to start from
Entity IDs follow your cistern names — copy the real ones from the device page.
Tell me when a cistern runs low
automation:
- alias: "Cistern low water"
trigger:
- platform: state
entity_id: binary_sensor.main_cistern_low_water
to: "on"
action:
- service: notify.mobile_app_my_phone
data:
title: "Low water"
message: >-
Main cistern is at
{{ states('sensor.main_cistern_tank_level') }}%Protect the reserve overnight (valve models)
automation:
- alias: "Protect reserve overnight"
trigger:
- platform: numeric_state
entity_id: sensor.main_cistern_tank_level
below: 10
condition:
- condition: time
after: "22:00:00"
before: "06:00:00"
action:
- service: valve.close_valve
target:
entity_id: valve.main_cistern_valveApple Home and Siri
You do not need a separate bridge. Once your cisterns are in Home Assistant, turn on Home Assistant’s built-in HomeKit Bridge integration and pick which cistern entities to expose. They then appear in the Apple Home app and answer to Siri.
What your login can and cannot do
- Only your own cisterns. The broker enforces this per account. There is no path to another customer’s data, and none to the raw device command channel.
- Read-only, except valve control. A valve request is re-checked on our side to confirm you own that cistern before it is acted on.
- Encrypted in transit. TLS on port 8883.
- Revocable at any time. Turn it off from the Home Assistant page in your dashboard. Generating a new password also immediately invalidates the previous one.
- Treat the password as a credential. Anyone holding it and your account ID can read your cistern data and operate your valves.
If something is not working
In rough order of how often each one turns out to be the cause.
Connects, but no devices ever appear
- Almost always the discovery prefix. It must be cms/ha/<your-account-id>/discovery, not homeassistant.
- Restart Home Assistant after changing it — the prefix is only read at startup.
“Connection refused: not authorised”
- Check the username is your account ID, not your email address.
- Re-copy the password. A truncated paste or a trailing space produces exactly this error.
- Check your Leak Detection subscription is active — a lapse blocks the next connection attempt.
- Still stuck? Generate a fresh password and try once more.
Certificate or TLS errors
- Confirm the port is 8883 and TLS is enabled. Port 1883 is not open for customer connections.
- A very old Home Assistant install may carry a stale root certificate store; updating Home Assistant resolves it.
A cistern reads 0% and is permanently in low water
- That cistern has no tank dimensions saved. Set its height, width and length in the CMS app and the readings correct themselves.
Entities show as Unavailable
- The cistern is offline. Check its Connectivity entity, and its last-seen time in the CMS app.
Need a hand?
Contact support and include your account ID — safe to share, it is not a secret — along with the exact error Home Assistant showed. Never send us your integration password: we cannot use it, and you should rotate it if it has been shared anywhere.
Open my integration settings