MQTT Frontend¶
Parallel path alongside Matter — your GARDENA devices publish their sensor values to any MQTT broker. Home Assistant picks them up via auto-discovery; Node-RED, Grafana, ioBroker, and openHAB work too.
Status
The MQTT frontend is in active development. The Matter bridge (the main path) is fully functional today. The MQTT publisher is shipped as part of the HA add-on once the add-on is released. Manual deploy is described below for people who want to test early.
Why MQTT?¶
Matter handles standard device profiles well (sensors, valves, plugs). Diagnostic values
that do not fit a Matter cluster — radio link quality, mower runtime, error codes — are
visible in HA as MQTT sensor entities instead.
Both paths can run at the same time: the bridge does not know about the publisher, and the publisher does not touch the bridge.
How it works¶
GARDENA devices ──868 MHz──▶ lemonbeatd ──(writes LsDL files)──▶ /var/lib/lemonbeatd/
│
gardena-mqtt-publisher
(polls every 30 s via
inotify, no IPC)
│
MQTT broker (your network)
│
Home Assistant MQTT integration
The publisher reads the same device-description files that the Matter bridge uses. There is no shared socket, no shared process — coexistence is structurally guaranteed.
Home Assistant auto-discovery: the publisher sends retained config messages on
homeassistant/<component>/gardena_<hash>/<id>/config. Home Assistant picks them up
automatically. No manual entity configuration needed.
What you get per device¶
| GARDENA device | MQTT entities |
|---|---|
| smart Sensor / Sensor II | soil temperature, battery |
| SILENO robotic mower | status (mowing / parked / charging), battery, RF link quality, runtime, error code |
| Water Control / Irrigation Control | battery, RF link quality |
| smart Power | battery, RF link quality |
| Pump | battery, RF link quality |
Entities marked as diagnostic (RF link quality, runtime, error code) appear under "Diagnostic" in the HA device card — they do not show up on dashboards by default.
Home Assistant add-on path (recommended)¶
Once the HA add-on is available, the MQTT publisher is wired up through the add-on options.
In the add-on configuration:
| Option | Example | Description |
|---|---|---|
enable_mqtt |
true |
Enable the MQTT publisher. Default: false. |
mqtt_broker_host |
homeassistant.local |
Hostname or IP of your MQTT broker. |
mqtt_broker_port |
1883 |
Broker port. Default: 1883. |
mqtt_broker_user |
mqttuser |
Broker username (leave empty if your broker needs no auth). |
mqtt_broker_password |
(your password) | Broker password — stored encrypted, never logged. |
mqtt_topic_prefix |
gardena |
Prefix for state topics (gardena/<hash>/<resource>/state). |
mqtt_ha_prefix |
homeassistant |
Prefix for discovery topics — match your HA MQTT integration. |
Set enable_mqtt: true, fill in your broker details, and click Save → Restart. The
publisher will be deployed to the gateway and started automatically.
Mosquitto in Home Assistant
If you use the Mosquitto add-on in HA, the broker host is usually
homeassistant.local (port 1883). Create a dedicated MQTT user in the
Mosquitto add-on settings for the GARDENA publisher.
Gateway web UI¶
The gateway web UI (accessible at http://<gateway-ip>:8099/matter.html) shows the MQTT
publisher status and lets you change the broker settings directly on the gateway:
- Open
http://<gateway-ip>:8099/matter.htmlin your browser. - The MQTT card shows the current publisher status (active / inactive).
- Click the Settings disclosure to expand the broker configuration form.
- Fill in host, port, username, and password — then click Save.
- The gateway writes the configuration to
/etc/gardena-matter/mqtt.env(owner-read-only) and restarts the publisher service.
The password is never shown in the UI — only whether one has been set.
Manual install (without HA add-on)¶
For testing before the add-on is released, you can install the publisher directly via SSH.
Prerequisites: The GARDENA Matter Bridge must already be installed on the gateway.
# 1. Copy the publisher binary to the gateway
scp gardena-mqtt-publisher root@<gateway-ip>:/usr/local/lib/gardena-matter/
# 2. Copy the systemd service unit
scp mqtt-publisher/gardena-mqtt-publisher.service \
root@<gateway-ip>:/etc/systemd/system/
# 3. Create the configuration file
ssh root@<gateway-ip> "mkdir -p /etc/gardena-matter && cat > /etc/gardena-matter/mqtt.env" <<'EOF'
MQTT_BROKER_HOST=homeassistant.local
MQTT_BROKER_PORT=1883
MQTT_BROKER_USER=mqttuser
MQTT_BROKER_PASS=<your-password>
MQTT_TOPIC_PREFIX=gardena
MQTT_HA_PREFIX=homeassistant
EOF
ssh root@<gateway-ip> "chmod 600 /etc/gardena-matter/mqtt.env"
# 4. Enable and start the service
ssh root@<gateway-ip> "systemctl daemon-reload && \
systemctl enable gardena-mqtt-publisher.service && \
systemctl start gardena-mqtt-publisher.service"
# 5. Check the status
ssh root@<gateway-ip> "systemctl status gardena-mqtt-publisher.service"
Replace <gateway-ip> with your gateway's IP address and <your-password> with your MQTT
broker password.
Password hygiene
Keep /etc/gardena-matter/mqtt.env owner-read-only (chmod 600). The file contains
your broker password in plain text — it must not be world-readable.
Verify in Home Assistant¶
After the publisher starts, it takes up to 30 seconds for the first values to arrive.
- In HA, go to Settings → Devices & Services → MQTT.
- A device "GARDENA smart Gateway" should appear with the configured entities.
- Check Developer Tools → States and filter by
gardenato see raw state values.
If no entities appear, check the broker logs — the publisher logs connection attempts to
journalctl -u gardena-mqtt-publisher.
Uninstall¶
ssh root@<gateway-ip> "systemctl stop gardena-mqtt-publisher.service && \
systemctl disable gardena-mqtt-publisher.service && \
rm /etc/systemd/system/gardena-mqtt-publisher.service && \
rm -f /etc/gardena-matter/mqtt.env && \
rm -f /usr/local/lib/gardena-matter/gardena-mqtt-publisher && \
systemctl daemon-reload"
This does not touch the Matter bridge — it keeps running as before.
Topic reference¶
State topics follow the pattern <prefix>/<hash>/<resource>/state, where <hash> is a
stable 4-hex-character identifier for the device (derived from its Lemonbeat ID — no
personal data).
Discovery topics follow <ha-prefix>/sensor/gardena_<hash>/<object-id>/config.
Example (soil temperature sensor, device hash a1b2):
State: gardena/a1b2/temperature/state → 18.5
Discovery: homeassistant/sensor/gardena_a1b2/soil_temperature/config → { ... }