# Monitor a water tank remotely (https://logable.app/docs/guides/equipment/monitor-a-water-tank-remotely)

Put water tank level on a live dashboard, and alert before a tank runs dry, overflows, or drains faster than it should.



A water tank in Logable stores one reading: level, as a percentage of full. This guide covers the six steps from an empty account to an alert on a phone.

## 1. Add the tank as a device [#1-add-the-tank-as-a-device]

Open **Devices**, select **Add Device**, and pick the **Water tank** type. Name it after the asset, such as "Dust Suppression Tank".

The configuration is short:

* **Capacity**, the volume the tank holds when full.
* **Capacity unit**, litres or kilolitres.

Level itself is a percentage, so the tank presets need no threshold of their own.

<Figure src="/docs/captures/first-device.webp" alt="The Devices page with a water tank added, showing its live level" width="1400" height="743" sizes="(min-width: 1280px) 860px, (min-width: 640px) 90vw, 100vw" caption="One tank, added and reporting." />

## 2. Copy the credentials [#2-copy-the-credentials]

Step 4 shows the **Device ID** and the **Device Token**, once. Copy both into the gateway's MQTT client, or select **Download Credentials**.

<Figure src="/docs/captures/add-device-credentials.webp" alt="The Credentials step of the Add Device wizard, showing the Device ID and Device Token fields" width="1344" height="1620" sizes="(min-width: 1280px) 860px, (min-width: 640px) 90vw, 100vw" caption="Device id and token go straight into the gateway." />

## 3. Send the level [#3-send-the-level]

A water tank sends one metric, `level`, as a percentage.

```json
{
  "timestamp": "2026-09-12T08:30:00.000Z",
  "status": "online",
  "data": { "level": 62 }
}
```

Send a reading every minute. A tank moves slowly, and a minute is fast enough for the draining preset to see an hour of change.

An ultrasonic or a submersible pressure sensor gives a distance or a head, not a percentage. Convert it to a percentage of full **before** the reading reaches Logable, at the sensor's transmitter or in the gateway. That keeps one number on the platform, and every tank preset then reads the same thing.

## 4. Put it on a dashboard [#4-put-it-on-a-dashboard]

Open **Dashboards**, select **Create dashboard**, then **Create from template**, and choose **Tank**. It lays out the level widget and the history together.

<Figure src="/docs/captures/first-dashboard.webp" alt="A dashboard created from a template, showing a water tank level widget and its history" width="1400" height="743" sizes="(min-width: 1280px) 860px, (min-width: 640px) 90vw, 100vw" caption="Level now, and level over the week." />

## 5. Add the alerts [#5-add-the-alerts]

Open the tank's **Triggers** tab and select **Browse presets**.

| Preset                      | Fires at                                                                           | What you do                             |
| --------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------- |
| Running low                 | 20 percent full                                                                    | Refill, or switch the source            |
| Nearly full                 | 90 percent full                                                                    | Stop the inflow before it overflows     |
| Draining faster than normal | A fall of 15 percent within an hour                                                | Check for a burst line or an open valve |
| Not reporting               | Five minutes of silence, or three times the reporting interval when that is longer | Check the gateway and the power         |

<Figure src="/docs/captures/presets-sheet.webp" alt="The preset sheet listing ready made alerts for a device, each with its severity" width="1400" height="681" sizes="(min-width: 1280px) 860px, (min-width: 640px) 90vw, 100vw" caption="Ready made alerts for a tank." />

> **What the alert says**

The push banner reads the device name and the preset's own sentence. A tank under a fifth reads "Dust Suppression Tank running low". A tank passing 90 percent reads "Dust Suppression Tank nearly full".

If a preset does not fit, select **Create Trigger** on the same tab instead. Set the metric, the operator, the threshold, and a recovery condition that clears the alert when the reading passes back over it.

<Figure src="/docs/captures/rule-threshold.webp" alt="The trigger rule form, with a metric, an operator, a threshold, and a recovery condition" width="1344" height="1620" sizes="(min-width: 1280px) 860px, (min-width: 640px) 90vw, 100vw" caption="A rule built by hand, with its own threshold and recovery condition." />

## 6. Check it arrived [#6-check-it-arrived]

Open the tank's **Connection** tab and read the device log. A level sent as a string, a wrong topic or an expired token each show as a row with the reason and the fix.

<Figure src="/docs/captures/device-connection-tab.webp" alt="The Connection tab showing the device log with accepted and rejected messages" width="1400" height="681" sizes="(min-width: 1280px) 860px, (min-width: 640px) 90vw, 100vw" caption="Every message, accepted or rejected, with the reason." />

## Read next [#read-next]

* [Water tank monitoring](/solutions/water-tank-monitoring), the whole picture.
* [Water tank device type reference](/docs/reference/device-types/water-tank), every metric and configuration field.
* [Monitor a pump remotely](/docs/guides/equipment/monitor-a-pump-remotely), the pump at the other end of the pipe.
