Integration des Rasenmäherroboters in die Heimautomatisierung als virtuelles Gerät

22.12.2016

Seit zwei Jahren arbeitet in unserem Garten ein Rasenmäherroboter und diese Aufgabe erledigt er sehr zufriedenstellend. Bisher lief die Integration des Roboters in die Heimautomatisierung über externe Aktoren und Sensoren und Programme der Homematic CCU2. Weil die Geräte und "Items" im hundhome auf die Software "item Manager" auf Basis von Girder umgestellt wurden, soll auch der Rasenmäher auf den Stand gehoben werden. Die Lösung besteht darin, die verschiedenen Aktoren und Sensoren rund um den Rasenmäherroboter per Software zu einem virtuellen Gerät zusammenzufassen.

Was bisher geschah ...

Im Blogeintrag "Automatisierung des Rasenmäher-Roboters" wurde beschrieben, wie mittels eines Homematic Druckschalters und eines Homematic Smart Plugs mit Leistungsmesssensor der Rasenmäherroboter in die Heimautomatisierung integriert wurde. Dabei musste man die Zustände der Geräte kombinieren, um daraus zu schließen, was der Rasenmäherroboter gerade tut:

  • Leistungsaufnahme < 3 Watt, Kontakt gedrückt: Der Roboter parkt
  • Leistungsaufnahme < 3 Watt, Kontakt nicht gedrückt: Der Roboter fährt/arbeitet
  • Leistungsaufnahme > 3 Watt, Kontakt gedrückt: Der Roboter lädt
  • Leistungsaufnahme < 3 Watt, Kontakt länger als 90 Minuten nicht gedrückt: Der Roboter hat sich offensichtlich festgefahren oder wurde manuell angehalten. Alarm!
  • Smart Plug ausgeschaltet: Der Roboter ist deaktiviert

Integration in den item Manager

Das Ziel ist es, auf der Software-Ebene ein Item zu haben, welches den Zustand des Rasenmäherroboters repräsentiert, ohne dass man als Anwender erst die Informationen der einzelnen Sensoren kombinieren muss. Dieses item ist somit eine rein virtuelle Instanz im item Manager, die nicht zu einem realen Gerät gehört, sondern dessen Wert durch einen Software-Algorithmus erzeugt wird. Dazu wird ein neues item Manager Module entwickelt. Ein Module Object dieses Type steht für genau einen Mähroboter.

Das Modul greift dabei nicht auf die Schnittstellen echter Geräte zurück, sondern ausschließlich auf die APIs bereits vorhandener items im item Manager:

  • Ein Kontakt, der für den Druckschalter an der Ladestation des Roboters steht,
  • ein Strommesssensor, der die Leistungsaufnahme der Ladestation erfasst und
  • einen Ein/Aus-Schalter, der die Stromzufuhr zur Ladestation kontrolliert

In diesem Fall sind die beiden letzten items dem gleichen gerät zuzuordnen: Ein kombinierter Smart Plug mit Strommessfunktion. Durch diese Abstraktionsschicht kann man aber zukünftig Teile des Aufbaus ersetzen durch Produkte anderer Hersteller oder auch durch eine ganz andere Bauart des Mähroboters. Die Software im item Manager Module übersetzt das immer wieder in die gleiche API.

Im vorliegenden Fall sind das natürlich die gleichen Geräte/items wie zuvor aber das item Manager Modul für den Rasenmäher nutzt nun ausschließlich die internen Software-Schnittstellen des item Managers und weiß nicht mehr, dass dahinter die Homematic Aktoren bzw. Sensoren stehen. Das neu entstandene item steht nun für den Rasenmäherroboter und kann die folgenden Zustände einnehmen:

  • working: Der Rasenmäher fährt
  • parking: Der Rasenmäher ist aufgeladen und steht wartend in der Ladestation
  • charging: Der Rasenmäher steht in der Ladestation und lädt den Akku
  • alarm: Der Rasenmäher hat sich festgefahren oder wurde blockiert
  • off: Der Rasenmäherroboter ist ausgeschaltet

Durch diese Lösung fällt es zukünftig leichter, die Funktionen des Rasenmäherroboters in andere Heimautomatisierungs-Szenarien zu integrieren. Zur Zeit befindet sich der Roboter natürlich im Winterschlaf. Aber im kommenden Frühjahr entstehen bestimmt neue Ideen, was man alles noch damit tun kann - außer Rasen mähen natürlich.

Zurück