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.

An active subscription

The integration is part of Leak Detection. A lapse stops the connection until it is renewed.

A Home Assistant instance

OS, Container, Supervised or Core all work. Home Assistant Cloud is not required.

The MQTT integration

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.

Every cistern
EntityTypeWhat it tells you
Tank LevelSensor · %Current fill percentage
VolumeSensor · galCurrent volume in gallons
CapacitySensor · galTotal tank capacity (diagnostic)
Low WaterBinary sensorOn below your low-water threshold
Sensor FaultBinary sensorOn when the level sensor stops reporting
ConnectivityBinary sensorWhether the cistern is online
Wi-Fi SignalSensor · dBmSignal strength (diagnostic)
Water TemperatureSensor · °COnly on models with a temperature sensor
Valve-equipped models add
EntityTypeWhat it tells you
ValveValveOpen and close control
Valve ModeSensorCurrent operating mode (diagnostic)
Valve FaultBinary sensorOn when the valve reports an error
Valve Open LimitBinary sensorOpen limit switch engaged
Valve Closed LimitBinary sensorClosed limit switch engaged

Setting it up

Do these in order — step 3 will not find anything until steps 1 and 2 are done.

  1. 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 now

    It 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. 2

    Add the MQTT integration

    1. In Home Assistant, go to Settings → Devices & Services → Add Integration.
    2. Search for and choose MQTT.
    3. Enter the broker host, port, username and password from step 1.
    4. 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.
    5. Submit, then open the MQTT integration’s Configure page.
    6. Change Discovery prefix from its default to your own:
    cms/ha/<your-account-id>/discovery
    The step people miss

    Home 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. 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_valve

Apple 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