Viele smarte Gärtnerinnen und Gärtner kennen das Problem: Die Pflanzen sehen plötzlich schlapp aus, obwohl im Smart Home schon massenhaft Daten anfallen. Xiaomi Miflora Pflanzensensoren messen Feuchtigkeit, Leitfähigkeit (Dünger), Temperatur und Helligkeit – aber die Werte bleiben oft unsichtbar in Home Assistant und lösen keine echte Aktion aus.
Gerade wenn mehrere Pflanzen im Haushalt verteilt sind, ist es mühsam, regelmäßig alle Werte zu prüfen. Wer nicht ständig Dashboards kontrollieren möchte, braucht eine aktive Benachrichtigung, am besten direkt auf dem Smartphone. Genau hier kommt n8n mit einem Webhook und einer Telegram-Benachrichtigung ins Spiel.
Diese Anleitung zeigt, wie Xiaomi Miflora Daten aus Home Assistant gezielt zu einem n8n-Webhook geschickt werden können, wenn bestimmte Schwellenwerte unterschritten werden. Jede Pflanze kann eigene Grenzen, Namen und Räume haben. n8n verarbeitet die Daten und sendet daraus automatisch eine schön formatierte Telegram-Nachricht. So entsteht ein eleganter, erweiterbarer Workflow für smarte Pflanzenüberwachung.
Voraussetzungen und Architektur im Überblick
Das Setup basiert auf vier Bausteinen:
- Xiaomi Miflora Pflanzensensoren (affiliate link), bereits in Home Assistant eingebunden
- Home Assistant als Zentrale, die Sensorwerte überwacht und bei Alarm einen HTTP-Request (Webhook) auslöst
- n8n als Automatisierungsplattform mit einem Webhook-Workflow
- Telegram-Bot, der über n8n Nachrichten verschickt
Der Datenfluss sieht so aus:
Miflora Sensor ? Home Assistant (Sensor-Entities) ? Automation mit rest_command ? n8n Webhook ? Telegram-Node ? Nachricht auf dem Smartphone.
Die Anleitung setzt voraus, dass die Miflora-Sensoren in Home Assistant bereits als Entities sichtbar sind, etwa sensor.miflora_monstera_moisture und sensor.miflora_monstera_conductivity.
Schritt 1: n8n Webhook-Workflow vorbereiten
Zuerst wird ein n8n-Workflow angelegt, der einen Webhook entgegennimmt und eine Telegram-Nachricht versendet.
- In n8n einen neuen Workflow erstellen.
- Als erste Node einen „Webhook“-Node hinzufügen.
- Methode POST wählen und den Pfad definieren, zum Beispiel /plant-alert.
- Test-URL notieren (z. B. https://deine-n8n-domain.tld/webhook/plant-alert).
Als zweite Node wird eine „Telegram“ ? „Send Message“-Node hinzugefügt. Diese Node wird mit dem Webhook verbunden und später mit einer schön formatierten Nachricht gefüllt. Die eigentliche Formatierung folgt weiter unten, wenn der Datenfluss aus Home Assistant steht.
Der Workflow wird aktiviert, sobald Home Assistant die ersten Requests schickt.
Schritt 2: rest_command in Home Assistant für den n8n Webhook definieren
Um aus Home Assistant heraus einen HTTP-Call zu n8n zu senden, bietet sich ein rest_command an. Er wird einmal zentral in der configuration.yaml definiert und kann später von beliebig vielen Automatisierungen genutzt werden.
In der configuration.yaml:
rest_command:
plant_alert_webhook:
url: "https://deine-n8n-domain.tld/webhook/plant-alert"
method: POST
headers:
Content-Type: "application/json"
payload: >
{
"plant_name": "{{ plant_name }}",
"room": "{{ room }}",
"custom_name": "{{ custom_name }}",
"sensor_entity_moisture": "{{ sensor_entity_moisture }}",
"sensor_entity_conductivity": "{{ sensor_entity_conductivity }}",
"moisture": "{{ moisture }}",
"conductivity": "{{ conductivity }}",
"triggered_by": "{{ triggered_by }}",
"time": "{{ now().isoformat() }}"
}
Die Platzhalter wie plant_name, room oder moisture werden später von der jeweiligen Automation übergeben. Die Zeit wird automatisch im ISO-Format mit now().isoformat() erzeugt, sodass n8n und Telegram direkt eine lesbare Zeitangabe erhalten.
Nach Anpassung der Datei sollte die Konfiguration über „Einstellungen ? Entwicklerwerkzeuge ? YAML ? Konfiguration prüfen“ validiert und Home Assistant neu gestartet oder die relevanten Integrationen neu geladen werden.
Schritt 3: Erste Pflanze mit individuell definierten Schwellenwerten anlegen
Nun wird eine erste Automation erstellt, die für eine bestimmte Pflanze die Schwellenwerte überwacht und bei Unter- oder Überschreitung einen Webhook an n8n schickt.
Als Beispiel dient eine Monstera im Wohnzimmer mit zwei relevanten Entities:
- sensor.miflora_monstera_moisture
- sensor.miflora_monstera_conductivity
Die Automation kommt in die automations.yaml (ohne zusätzlichen automation:-Block):
- id: plant_monstera_alert
alias: "Pflanzenalarm Monstera an n8n"
description: "Sendet einen Webhook an n8n, wenn Monstera zu trocken ist oder zu wenig Dünger im Substrat ist."
trigger:
- platform: numeric_state
entity_id: sensor.miflora_monstera_moisture
below: 30
id: moisture_low
- platform: numeric_state
entity_id: sensor.miflora_monstera_conductivity
below: 500
id: conductivity_low
variables:
plant_name: "Monstera deliciosa"
room: "Wohnzimmer"
custom_name: "Fensterbank links"
sensor_entity_moisture: "sensor.miflora_monstera_moisture"
sensor_entity_conductivity: "sensor.miflora_monstera_conductivity"
moisture: "{{ states(sensor_entity_moisture) }}"
conductivity: "{{ states(sensor_entity_conductivity) }}"
triggered_by: "{{ trigger.id }}"
action:
- service: rest_command.plant_alert_webhook
data:
plant_name: "{{ plant_name }}"
room: "{{ room }}"
custom_name: "{{ custom_name }}"
sensor_entity_moisture: "{{ sensor_entity_moisture }}"
sensor_entity_conductivity: "{{ sensor_entity_conductivity }}"
moisture: "{{ moisture }}"
conductivity: "{{ conductivity }}"
triggered_by: "{{ triggered_by }}"
mode: single
Diese Automation überwacht zwei Werte:
- Feuchtigkeit unter 30 Prozent
- Leitfähigkeit unter 500 µS/cm
Wenn einer der Trigger feuert, werden die aktuellen Sensorwerte sowie Name, Raum und ein frei definierbarer „Custom Name“ per rest_command an den n8n Webhook geschickt. Das Feld triggered_by zeigt an, ob der Alarm durch Feuchtigkeit oder Leitfähigkeit ausgelöst wurde.
Schritt 4: Skalierung für weitere Miflora-Sensoren mit eigenen Schwellenwerten
Sobald die erste Pflanze funktioniert, lässt sich das System leicht auf weitere Xiaomi Miflora Sensoren übertragen. Jede Pflanze erhält eine eigene Automation mit individuellen Grenzwerten, Namen und Räumen.
Beispiel: Ficus im Schlafzimmer mit anderen Schwellenwerten.
- id: plant_ficus_alert
alias: "Pflanzenalarm Ficus an n8n"
description: "Sendet einen Webhook an n8n, wenn der Ficus zu trocken ist oder die Leitfähigkeit zu niedrig ist."
trigger:
- platform: numeric_state
entity_id: sensor.miflora_ficus_moisture
below: 25
id: moisture_low
- platform: numeric_state
entity_id: sensor.miflora_ficus_conductivity
below: 400
id: conductivity_low
variables:
plant_name: "Ficus benjamina"
room: "Schlafzimmer"
custom_name: "Nachttisch rechts"
sensor_entity_moisture: "sensor.miflora_ficus_moisture"
sensor_entity_conductivity: "sensor.miflora_ficus_conductivity"
moisture: "{{ states(sensor_entity_moisture) }}"
conductivity: "{{ states(sensor_entity_conductivity) }}"
triggered_by: "{{ trigger.id }}"
action:
- service: rest_command.plant_alert_webhook
data:
plant_name: "{{ plant_name }}"
room: "{{ room }}"
custom_name: "{{ custom_name }}"
sensor_entity_moisture: "{{ sensor_entity_moisture }}"
sensor_entity_conductivity: "{{ sensor_entity_conductivity }}"
moisture: "{{ moisture }}"
conductivity: "{{ conductivity }}"
triggered_by: "{{ triggered_by }}"
mode: single
Jede weitere Pflanze wird mit eigenen entity_ids, Grenzwerten und Beschreibungen versehen. Alle nutzen denselben rest_command.plant_alert_webhook und denselben n8n-Workflow. Das macht die Lösung sehr gut skalierbar, auch für mehrere Räume und viele Sensoren.
Wer die Anzahl der Alarme begrenzen möchte, kann zusätzlich Bedingungen oder for: Zeiten einsetzen, etwa um nur zu alarmieren, wenn der Wert eine bestimmte Dauer lang unter dem Schwellenwert liegt. Das reduziert spontane Ausreißer und vermeidet zu häufige Benachrichtigungen.
Schritt 5: n8n-Workflow mit Telegram-Benachrichtigung einrichten
Nachdem Home Assistant zuverlässig Webhooks sendet, verarbeitet n8n die Daten und schickt eine Telegram-Nachricht.
Im Webhook-Node von n8n stehen die Daten typischerweise unter {{$json.body}}. Folgende Felder kommen an:
- plant_name
- room
- custom_name
- moisture
- conductivity
- triggered_by
- time
In der Telegram „Send Message“-Node kann eine gut lesbare Nachricht im Telegram-kompatiblen Markdown-Format definiert werden. Der Nachrichteninhalt könnte zum Beispiel so aussehen:
*Pflanzenalarm!*
*Pflanze:* {{ $json.body.plant_name }}
*Raum:* {{ $json.body.room }}
*Standort:* {{ $json.body.custom_name }}
*Feuchtigkeit:* {{ $json.body.moisture }} %
*Leitfähigkeit:* {{ $json.body.conductivity }} µS/cm
*Auslöser:* {{ $json.body.triggered_by }}
*Zeit:* {{ $json.body.time }}
In der Telegram-Node sollte als Parse Modus „Markdown“ oder „MarkdownV2“ verwendet werden, je nach Konfiguration. So entsteht eine strukturierte Nachricht mit Emojis, die wichtige Informationen auf einen Blick zeigt.
Optional können in n8n weitere Schritte ergänzt werden, etwa das Loggen der Werte in einer Datenbank, das Aggregieren mehrerer Meldungen oder das Versenden zusätzlicher Nachrichten über andere Kanäle wie E-Mail oder Slack.
Schritt 6: Testen und Simulation der Webhook-Aufrufe
Um das Setup zu testen, ohne auf reale Grenzwertverletzungen warten zu müssen, gibt es mehrere Möglichkeiten direkt in Home Assistant.
Ein Test ist besonders hilfreich:
Über die Developer Tools kann der entsprechende rest_command manuell aufgerufen werden. Dabei werden Testdaten übergeben, die n8n genau so erhält, wie sie später von den Automationen gesendet werden. Zusätzlich lässt sich im Bereich „Zustände“ der Wert eines Miflora-Sensors temporär unter den Schwellenwert setzen, um die Automation auszulösen.
Sobald der Webhook in n8n ankommt und der Telegram-Bot die Nachricht versendet, ist das System betriebsbereit. Die weitere Pflege beschränkt sich auf das Anpassen von Grenzwerten oder das Hinzufügen neuer Pflanzensensoren.
Fazit: Xiaomi Miflora, Home Assistant, n8n und Telegram als eleganter Einstieg in Webhooks
Die Kombination aus Xiaomi Miflora Pflanzensensoren (Affiliate Link), Home Assistant, einem n8n Webhook und Telegram-Nachrichten ist ein praxisnahes Beispiel für moderne Smart-Home-Automatisierung. Sensorwerte bleiben nicht mehr passiv im Dashboard, sondern werden aktiv in benutzerdefinierte Workflows eingebunden.
Mit einem zentralen rest_command und klar strukturierten Automationen können beliebig viele Pflanzen mit eigenen Schwellenwerten und individuellen Bezeichnungen überwacht werden. n8n übernimmt die flexible Weiterverarbeitung und schickt gut lesbare Telegram-Benachrichtigungen direkt aufs Smartphone.
Die Einrichtung zeigt, dass Webhooks in n8n kein kompliziertes Thema sein müssen, sondern sich ideal für konkrete Alltagsszenarien wie die Überwachung von Pflanzen eignen. Wer dieses Setup einmal umgesetzt hat, hat eine solide Basis geschaffen, um weitere Home-Assistant-Daten in n8n-Workflows einzubinden und das Smart Home Schritt für Schritt intelligenter zu machen.
