Warum überhaupt ein Mähroboter?
Die Antwort ist einfach: großes Grundstück, keine Zeit. Wer schon mal einen großen Rasen von Hand oder mit dem Aufsitzmäher gepflegt hat weiß wie viel Zeit das frisst – vor allem wenn man es regelmäßig machen will. Der Gardena smart SILENO Free war da die logische Lösung.
Was ich nicht wollte: einen Roboter der einfach nach Zeitplan fährt, egal was draußen passiert. Nasses Gras, brütende Hitze, strömender Regen – das ist schlecht für den Rasen und für den Roboter. Also habe ich ihn in Home Assistant eingebunden und mit meiner Ecowitt Wetterstation verknüpft.
Die drei Bedingungen für das Mähen
Meine Automation prüft vor jedem Mähstart drei Dinge. Nur wenn alle drei erfüllt sind fährt Robbie los – sonst bleibt er in der Station.
1. Kein Regen – aktuell und in der Vergangenheit
Die einfachste Bedingung: Wenn es gerade regnet fährt Robbie nicht. Dafür schaue ich auf den Sensor sensor.gw1100a_rain_rate meiner Wetterstation. Ist der Wert größer als 0 – kein Mähen.
Aber Regen allein reicht nicht. Auch nach einem Regenschauer ist das Gras noch nass und ein Schnitt wäre schlecht. Deshalb prüfe ich zusätzlich den Taupunkt.
2. Taupunkt niedrig genug – Gras ist trocken
Der Taupunkt ist der entscheidende Wert. Liegt die Außentemperatur nah am Taupunkt ist die Luft gesättigt und Oberflächen wie Gras sind feucht – auch ohne sichtbaren Regen. Mein Sensor dafür ist sensor.gw1100a_dewpoint.
Ich habe empirisch herausgefunden: Wenn die Differenz zwischen Außentemperatur und Taupunkt weniger als 3 Grad beträgt ist das Gras in der Regel noch zu feucht. Erst ab einer Differenz von 4 Grad oder mehr gebe ich Robbie die Freigabe.
3. Nicht zu heiß – die Hitze-Bremse
Das war eine Erkenntnis aus der Praxis: Bei großer Hitze sollte man den Rasen nicht mähen.
Der Schnitt kombiniert mit praller Sonne stresst das Gras, und auch dem Akku des Roboters
tut extreme Hitze nicht gut. Deshalb gilt bei mir: Über 30 °C startet Robbie nicht –
es sei denn, es hat in der letzten Woche genug geregnet (mindestens 5 mm,
gemessen am Sensor sensor.gw1100a_weekly_rain). Nach einer feuchten Woche ist der
Rasen robuster, und ich will nicht, dass er in einem langen Hitzesommer gar nicht mehr gemäht wird.
4. Genug Licht und ein voller Akku
Zwei weitere Bedingungen haben sich bewährt: Die Solarstrahlung muss über 150 W/m² liegen (damit er nicht im Dämmerlicht oder bei dichtem Nebel losfährt), und der Akku muss über 80 % haben, sonst bricht er mitten im Schnitt ab und lädt wieder.
Die komplette Entscheidung auf einen Blick
Die Automation im Detail
Die Automation läuft alle 15 Minuten, handelt aber nur innerhalb eines Zeitfensters:
frühestens eine Stunde nach Sonnenaufgang, spätestens sieben Stunden danach. So ist der Tau weg,
und Robbie fährt nicht in die heiße Nachmittagssonne. Ein Input Boolean
(input_boolean.mahroboter_heute_gestartet) verhindert, dass er mehrfach am Tag
gestartet wird; ein zweiter Boolean sorgt dafür, dass ich pro Tag nur eine Meldung
bekomme, wenn der Start blockiert ist – sonst würde mein Handy alle 15 Minuten klingeln.
Dazu kommen kleine Helfer-Automationen: bei Sonnenuntergang stoppen, nach dem Laden fortsetzen,
bei Echtzeit-Regen stoppen, das Tages-Flag nachts zurücksetzen und eine Fehlermeldung
als Push (und auf den Lautsprecher), wenn Robbie irgendwo hängen bleibt.
Das ist die Kernlogik (Namen von Helfern und dem Benachrichtigungsdienst angepasst):
triggers:
- trigger: time_pattern
minutes: "/15"
conditions:
- condition: sun
after: sunrise
after_offset: "+01:00:00"
before: sunrise
before_offset: "+07:00:00"
- condition: state
entity_id: input_boolean.mahroboter_heute_gestartet
state: "off"
- condition: state
entity_id: lawn_mower.robbie_lawn_mower
state: ["docked", "paused"]
- condition: numeric_state
entity_id: sensor.robbie_battery_level
above: 80
actions:
- variables:
regen: "{{ states('sensor.gw1100a_rain_rate') | float(0) >= 0.1 }}"
regen_stunde: "{{ states('sensor.gw1100a_hourly_rain') | float(0) >= 0.5 }}"
regen_tag: "{{ states('sensor.gw1100a_daily_rain') | float(0) >= 5 }}"
hitze: >
{{ states('sensor.gw1100a_outdoor_temperature') | float(0) > 30
and states('sensor.gw1100a_weekly_rain') | float(0) < 5 }}
hell_genug: "{{ states('sensor.gw1100a_solar_radiation') | float(0) > 150 }}"
tau_weg: >
{{ states('sensor.gw1100a_outdoor_temperature') | float(0)
> states('sensor.gw1100a_dewpoint') | float(0) + 4 }}
- if:
- condition: template
value_template: >
{{ not (regen or regen_stunde or regen_tag or hitze) and hell_genug and tau_weg }}
then:
- action: button.press
target:
entity_id: button.robbie_start_mowing_now
- action: input_boolean.turn_on
target:
entity_id: input_boolean.mahroboter_heute_gestartet
- action: notify.mobile_app_dein_handy
data:
title: "🌿 Robbie startet"
message: >
Temperatur {{ states('sensor.gw1100a_outdoor_temperature') }} °C,
Taupunkt {{ states('sensor.gw1100a_dewpoint') }} °C
Im Original gibt es im else-Zweig noch eine Push-Meldung mit dem konkreten Grund
(„zu viel Regen in der letzten Stunde“, „zu heiß & zu trocken“ …) – gekürzt habe ich sie hier,
damit das Beispiel lesbar bleibt. Die Entity-Namen musst du für deine Wetterstation und deinen
Mähroboter anpassen.
Tipp: Teste neue Schwellenwerte zuerst mit einer reinen Push-Meldung statt dem echten Startbefehl. So siehst du ein paar Tage lang, wann die Automation starten würde, ohne dass der Roboter wirklich fährt.
Das Ergebnis: Robbie fährt wenn es sinnvoll ist
Seit diese Automation läuft habe ich Robbie kaum noch manuell gestartet. Er fährt selbstständig an trockenen Tagen, spart sich heiße Mittagsstunden und bleibt bei Regen brav in seiner Station. Der Rasen sieht besser aus als vorher – und ich muss mich um nichts kümmern.
Die Kombination aus Mähroboter und Wetterstation ist für mich eines der besten Beispiele was ein Smart Home leisten kann wenn die richtigen Sensoren vorhanden sind.