Mähroboter steuern

Auch wenn so ein Mähroboter in der Regel nicht wirklich von außen gesteuert werden kann: Zumindest die Regenerkennung der HomeMatic kann man nutzen

Mit der Rasenpflege habe ich es ja nicht so. Nachdem nun auch mein geerbter Rasenmäher anfing, Lack- und Roststücke gleichmäßig auf dem Rasen zu verteilen, habe ich mir einen Mähroboter zugelegt.

Geniales Teil, aber leider keine Regenerkennung. Eigentlich hat der Roboter auch keine Möglichkeit, von außen gesteuert zu werden – sein interner Timer steuert, wann er losfährt und wann er wieder zum Laden eindockt. Einstellen kann man das nur über das Bedienfeld am Gerät.

Allerdings braucht der Mähroboter das Steuersignal von der Ladestation, die auch den Begrenzungsdraht versorgt. Ohne Signal fährt er nicht los. Und das mache ich mir mit einem kleinen Programm auf der CCU zu Nutze. Ich brauche dafür nicht mal ein Script, nur eine Systemvariable und einen Schaltaktor.

Benennung von Systemvariablen

Prinzipiell kann man Systemvariablen – so wie allen Objekten in der CCU – beliebige Namen geben, also z. B. auch Umlaute und Sonderzeichen verwenden. Ich empfehle jedoch, sich auf reguläre Buchstaben (a-z, A-Z) zu beschränken: Bei Umlauten und Sonderzeichen besteht die Gefahr, dass Systemvariablen in Scripten nicht überall gefunden werden.

Systemvariable

Die Systemvariable speichert, ob es in den letzten 23 Stunden geregnet hat oder nicht. Der Roboter soll nur mähen, wenn das Gras leidlich trocken ist.

Ich habe die Systemvariable mit dem Kanal verknüpft, an dem auch der Roboter angeschlossen ist. Dadurch wird sie nicht in den Systemvariablen angezeigt, sondern direkt beim Aktor.

Auf dem Screenshot sieht man, dass ich noch eine weitere Systemvariable angelegt habe, die anzeigt, ob der Rasenmäher gerade in Betrieb ist. Diese ist für die Programmlogik nicht notwendig und kann natürlich weggelassen werden.

Programm 1: Regenerkennung

Die Regenerkennung übernimmt wie immer der Kombisensor: Wenn es regnet, wird sofort die Systemvariable auf „Regen“ gesetzt. 23 Stunden verzögert wird sie wieder auf „trocken“ gesetzt, so dass der Mähroboter dann nicht mehr gesperrt ist. Auf dem Screenshot ist zu sehen, dass die Systemvariable dem Gerät zugeordnet ist – dementsprechend wird sie auch hier unter „Geräteauswahl“ angezeigt, nicht unter „Systemzustand“.

Wichtig ist an dieser Stelle, dass „bei Aktualisierung auslösen“ eingestellt wird und „Vor dem Ausführen alle laufenden Verzögerungen für diese Aktivitäten beenden“ aktiviert. Dadurch wird die Systemvariable auch bei länger andauerndem Regen immer wieder auf „Regen“ gesetzt. Die Rücksetzung erfolgt 23 Stunden, nachdem das letzte Mal Regen erkannt wurde.

Längere Verzögerungen als 23 Stunden sind mit der CCU leider nicht realisierbar, aber bisher hat es ganz gut funktioniert: Nach dieser Zeit war der Rasen wieder ausreichend trocken, damit er vom Roboter gemäht werden konnte.

Programm 2: Mähroboter ein- und ausschalten

Am Mähroboter ist die Einsatzzeit von 18:00 bis 19:00 eingestellt, was bei täglichem Betrieb für meine Rasenfläche ausreichen sollte.

Das Programm wird zeitgesteuert täglich um 17:55 ausgelöst. Wenn die Systemvariable auf „Regen“ steht, wird der „Dann..“-Zweig ausgeführt, anderenfalls der „Sonst … “-Zweig.

„Dann … “-Zweig bei Regen

Zunächst schaltet die CCU die Steckdose aus, an der der Roboter angeschlossen ist. Die 5 Sekunden Verzögerung dienen dazu, Kommunikationsstörungen zu vermeiden – wenn alles sekundengenau beim Umspringen der Uhr passiert, gibt es leicht mal Kollisionen.

Die zusätzliche Systemvariable „Betrieb“ wird hier auf „aus“ gesetzt, weil der Mähroboter nicht fahren wird. Sie ist, wie geschrieben, optional und wird hier nur gesetzt, damit sie in jedem Fall den richtigen Zustand anzeigt.

70 Minuten später, also um 18:05, wird die Steckdose wieder eingeschaltet, damit der Mähroboter geladen wird oder tagsüber manuell gestartet werden kann.

„Sonst … “-Zweig bei Trockenheit

War es mindestens 23 Stunden trocken, hat Programm 1 die Systemvariable auf „trocken“ gesetzt und der Mähroboter kann losfahren. Dazu wird zunächst die Steckdose eingeschaltet – falls sie untertags manuell ausgeschaltet wurde, wird so sichergestellt, dass der Roboter auch tatsächlich fährt.

Die optionale Systemvariable „Betrieb“ wird mit 5 Minuten Verzögerung ein- und mit 65 Minuten Verzögerung wieder ausgeschaltet. Sie zeigt damit genau zwischen 18:00 und 19:00 an, dass gerade das Timer-Programm des Mähroboters läuft.

Erweiterungen

Das Programm kann natürlich leicht erweitert werden. Es können zum Beispiel weitere Bedingungen eingefügt werden, damit der Roboter nur bei Anwesenheit fährt, nur bei geöffneter Terrassentür oder ähnliches.

Wichtig ist, dass bei den Bedingungen stets „nur prüfen“ steht. Wird hier „bei Änderung“ oder „bei Aktualisierung“ ausgewählt, dann wird das Programm womöglich ausgelöst, wenn der Roboter schon gestartet ist. Das wäre schlecht, denn während des Betriebs sollte keinesfalls das Steuersignal abgeschaltet werden, mit dem der Roboter die Rasenfläche erkennt.

Navigation