A Home Assistant custom integration for Husqvarna smart garden devices — supporting both the Gardena Smart System API and the Automower Connect API through a single integration. Real-time WebSocket push with automatic polling fallback.
📖 Full documentation lives in the Wiki — available in English and German / Vollständige Dokumentation im Wiki — auf Englisch und Deutsch.
⚠️ Breaking change in v2.0.0 — the integration domain was renamedgardena_smart_system→gardena_smart_system_ng(required for HACS default-catalog inclusion; the old domain is taken by another integration). There is no automatic migration: delete the old entry, update to 2.0.0, delete the orphanedcustom_components/gardena_smart_system/folder, restart, and re-add the integration with the same credentials. Full steps in the CHANGELOG.
⚠️ Breaking Change in v2.0.0 — die Integrations-Domain wurde umbenannt vongardena_smart_systemzugardena_smart_system_ng(erforderlich für die Aufnahme in den HACS-Default-Katalog; die alte Domain ist von einer anderen Integration belegt). Es gibt keine automatische Migration: alten Eintrag löschen, auf 2.0.0 aktualisieren, den verwaisten Ordnercustom_components/gardena_smart_system/löschen, neu starten und die Integration mit denselben Zugangsdaten neu hinzufügen. Vollständige Schritte im CHANGELOG.
- Get Husqvarna API credentials. Go to the Husqvarna Developer Portal, create an Application (redirect URI
https://localhost), and enable the Gardena Smart System API and/or Automower Connect API. Note the Application Key and Application Secret. - Install via HACS. Open HACS → Integrations → search for Gardena Smart System → Download → restart Home Assistant. (If not listed: add
https://github.com/kayloehmann/ha-gardena-smart-systemas a custom repository, category Integration.) - Add the integration. Go to Settings → Devices & Services → Add Integration → search Gardena Smart System → enter your Application Key and Secret → choose the API (Gardena or Automower).
To use both APIs, add the integration twice with the same credentials.
| Topic | Link |
|---|---|
| Installation | Wiki / Installation |
| Configuration | Wiki / Configuration |
| Supported Devices | Wiki / Supported Devices |
| Entities & Services | Wiki / Entities and Services |
| API Rate Limits | Wiki / API Rate Limits |
| MQTT Bridge | Wiki / MQTT Bridge |
| Automation Examples | Wiki / Automation Examples |
| Limitations | Wiki / Limitations |
| Troubleshooting | Wiki / Troubleshooting |
| Contributing | Wiki / Contributing |
Talk to the GARDENA smart Gateway directly over your LAN, alongside the cloud. When enabled and reachable, local state takes precedence over the cloud and commands are sent locally first (the cloud stays as the fallback) — lower latency, and monitoring/control keep working during a cloud or internet outage. Built on the official gardena-smart-local-api (GARDENA GmbH).
One-time gateway setup (required). The gateway's local WebSocket service is off by default and can only be enabled via shell on the gateway itself — the integration cannot do it. After enabling SSH on the gateway:
touch /etc/enable-websocketd # survives reboots and firmware updates
systemctl restart firewall # opens 8443/TCP — easy to forget!
systemctl start websocketdIntegration setup. Settings → Devices & Services → Gardena → Configure, then set Enable local gateway access, the host/IP (e.g. 10.0.0.5 or GARDENA-xxxxxx.local), the password (the first 8 characters of the gateway's device id, printed on the underside), and the port (default 8443).
Two entities surface the behaviour: a Local gateway connected binary sensor and a per-device Last command via (local/cloud) diagnostic sensor.
Notes: the gateway uses a self-signed certificate (verification is disabled for it) and sends no initial state snapshot, so the cloud still provides the initial device state after a restart. If Home Assistant sits on a different VLAN than the gateway, allow it to reach the gateway on TCP 8443.
- Husqvarna-API-Zugangsdaten anlegen. Auf das Husqvarna Developer Portal gehen, eine Application erstellen (Redirect-URI
https://localhost) und die Gardena Smart System API und/oder die Automower Connect API aktivieren. Application Key und Application Secret notieren. - Über HACS installieren. HACS → Integrationen → nach Gardena Smart System suchen → Herunterladen → Home Assistant neu starten. (Nicht gelistet?
https://github.com/kayloehmann/ha-gardena-smart-systemals Custom Repository der Kategorie Integration hinzufügen.) - Integration hinzufügen. Einstellungen → Geräte & Dienste → Integration hinzufügen → Gardena Smart System suchen → Application Key und Secret eingeben → API auswählen (Gardena oder Automower).
Um beide APIs zu nutzen, die Integration zweimal mit denselben Zugangsdaten hinzufügen.
| Thema | Link |
|---|---|
| Installation | Wiki / Installation |
| Konfiguration | Wiki / Konfiguration |
| Unterstützte Geräte | Wiki / Unterstützte Geräte |
| Entities & Services | Wiki / Entities und Services |
| API-Rate-Limits | Wiki / API-Rate-Limits |
| MQTT-Bridge | Wiki / MQTT-Bridge |
| Automatisierungsbeispiele | Wiki / Automatisierungsbeispiele |
| Einschränkungen | Wiki / Einschränkungen |
| Fehlerbehebung | Wiki / Fehlerbehebung |
| Mitwirken | Wiki / Mitwirken |
Direkt mit dem GARDENA smart Gateway über das LAN kommunizieren, parallel zur Cloud. Wenn aktiviert und erreichbar, hat der lokale Zustand Vorrang vor der Cloud und Befehle gehen zuerst lokal raus (die Cloud bleibt Fallback) — geringere Latenz, und Überwachung/Steuerung funktionieren auch bei Cloud- oder Internet-Ausfall weiter. Basiert auf der offiziellen gardena-smart-local-api (GARDENA GmbH).
Einmalige Gateway-Einrichtung (erforderlich). Der lokale WebSocket-Dienst des Gateways ist standardmäßig aus und lässt sich nur per Shell am Gateway selbst aktivieren — die Integration kann das nicht. Nach dem Aktivieren von SSH am Gateway:
touch /etc/enable-websocketd # übersteht Reboots und Firmware-Updates
systemctl restart firewall # gibt 8443/TCP frei — leicht zu vergessen!
systemctl start websocketdEinrichtung in der Integration. Einstellungen → Geräte & Dienste → Gardena → Konfigurieren, dann Lokalen Gateway-Zugriff aktivieren, Host/IP (z. B. 10.0.0.5 oder GARDENA-xxxxxx.local), Passwort (die ersten 8 Zeichen der Geräte-ID vom Aufkleber) und Port (Standard 8443) setzen.
Zwei Entitäten machen das sichtbar: ein Binary-Sensor Lokales Gateway verbunden und ein Diagnose-Sensor Letzter Befehl über (local/cloud) je Gerät.
Hinweise: Das Gateway nutzt ein selbstsigniertes Zertifikat (Verifikation dafür deaktiviert) und sendet keinen initialen Zustands-Snapshot — der Anfangszustand kommt nach einem Neustart weiter aus der Cloud. Liegt Home Assistant in einem anderen VLAN als das Gateway, muss der Zugriff auf TCP 8443 freigegeben werden.
This project is licensed under the MIT License. See LICENSE for details.