1. MQTT API
The device is capable to register to a MQTT broker to publish data and subscribe to specific topics.
Note
Only MQTT v3.1.1 is supported.
The MQTT service has to be enabled and configured properly in the device configuration via web interface (Settings
-> Configuration
-> section MQTT
)
The following parameters have to be defined:
* URI
* MainTopic (optional, if not set, the hostname is used)
* ClientID (optional, if not set, AIOTED-
+ the MAC address gets used to make sure the ID is unique)
* User (optional)
* Password (optional)
* RetainFlag (optional)
1.1 Published topics
1.1.1 Status
The following overhead data are available under the main topic (i.e. watermeter
):
Topic | Description |
---|---|
watermeter/MAC |
The MAC address of the ESP module. |
watermeter/IP |
The IP address of the ESP module. |
watermeter/Hostname |
The network host name of the ESP module. |
watermeter/Interval |
The round interval as configured during setup or in Parameters -> Interval. |
watermeter/Connection |
Network connection status. |
watermeter/Uptime |
Seconds up since last boot. |
watermeter/FreeMem |
Free memory in kB. |
watermeter/wifiRSSI |
Quality of WiFi signal. |
watermeter/CPUTemp |
Temperature of the ESP CPU in degrees celsius. |
1.1.2 Result
The following calculation data are available under the sup-topic main
(i.e. watermeter/main
):
Topic | Description |
---|---|
watermeter/main/error |
Informs about the flow status. On success, the value is no error . |
watermeter/main/raw |
The value before performing post processing. |
watermeter/main/value |
The value after performing post processing. |
watermeter/main/rate |
How much flow was consumed in one minute. |
watermeter/main/rate_per_time_unit |
How much flow was consumed in one minute. The time unit gets set with the Home Assistant Discovery, e.g. h (hours) or m (minutes). |
watermeter/main/changeabsolut |
Difference between the previous and actual read value. |
watermeter/main/rate_per_digitization_round |
How much flow was consumed in one minute. |
watermeter/main/timestamp |
Timestamp of the last valid reading (equal to timestamp of previous value) |
watermeter/main/Status |
Informs about the last performed step of the watermeter (i.e. Flow finished ). |
watermeter/main/json |
This is a JSON formatted object containing the following values: value , raw , pre , error , rate , timestamp . |
1.1.3 GPIO
MainTopic
/{GPIO topic}, e.g. watermeter/GPIO/GPIO12
1.1.3.1 GPIO/GPIO{PinNumber}
Depending on device configuration (Settings
--> Configuration
--> section GPIO
)
1.2 Subscribed topics
MainTopic
/{subscribed topic}, e.g. watermeter/ctrl/flow_start
1.2.1 Control
1.2.1.1 ctrl/flow_start
Trigger a flow start by publishing to this topic.
Payload:
- any character, length > 0
1.2.1.2 ctrl/set_prevalue
Note
This feature is available since version 15.2.0.
Set the last valid value (previous value) to given value or the actual RAW value. Payload needs to be provided in JSON notation.
Payload:
-
Set to given value (value >= 0):
{"numbersname": "<NUMBERSNAME>", "value": <VALUE>}
"numbersname":
Provide name of number sequence, e.g."main"
"value":
provide the value to be set, eg.12345.67890
-
Set to actual RAW value (value < 0, a valid RAW value is mandatory):
{"numbersname": "<NUMBERSNAME>", "value": -1}
"numbersname":
Provide name of number sequence, e.g."main"
"value":
Provide any negative number
1.2.1.3 GPIO/GPIO{PinNumber}
Depending on device configuration (Settings
--> Configuration
--> section GPIO
)