4716 Zeichen
Score aktualisiert
100%
Code: 7d53fb1f031c4eff8fa2e6320767ee5a
Token in Entwicklung nicht aktualisiert
img-Tag in Entwicklung deaktiviert
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.