Neues Modul: THINKINGCLEANER (für iRobot Roomba 500/600)

Begonnen von d.schoen, 23 August 2015, 13:45:59

Vorheriges Thema - Nächstes Thema

d.schoen

Hallo zusammen,

um meinen iRobot Roomba 620 in FHEM zu integrieren habe ich mir vor ein paar Tagen das WiFi Modul von Thinking Cleaner zugelegt. Das Modul wird anstelle der Abdeckung auf den Roomba aufgesteckt und verpasst dem Sauger dann ein Webinterface sowie eine REST/JSON API.

Für diese REST API entwickle ich gerade ein FHEM Modul. Das Modul findet ihr unter https://github.com/dsgrafiniert/fhem-thinkingcleaner zum Download.
Es benötigt das JSON Modul installiert.

Euren Roomba bindet ihr dann folgendermaßen ein:
define <NAME> THINKINGCLEANER http://<ip des Roomba> <Abfrageintervall>

Das Modul frägt dann alle <Abfrageintervall> Sekunden den Status des Roomba ab.

Zudem könnt ihr via "set <NAME> clean/spot/dock" die entsprechenden Funktionen des Roomba starten.

Das Modul ist noch einem early Alpha Status, ihr dürft gerne schon testen. Ich werde es in den kommenden Wochen definitiv noch weiterentwickeln und "rund" machen.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

scooty

Hallo zusammen,

bisher sind die Thinking Cleaner ja nicht für die Roomba Modelle der Serien 700 und 800 verfügbar
Der Hersteller Thinking Bits hat nun (wieder) eine Kickstarter-Kampagne gestartet, um auch für diese Modelle das Thinking Clenaer Modul anbieten zu können:
https://www.kickstarter.com/projects/thinkingbits/thinking-cleaner-wifi-for-irobot-roomba-700-and-80

Wäre klasse, wenn es diesmal klappt.
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

dantist

#2
Hallo Dominik,

wie ist denn der aktuelle Stand deines Moduls? Den Roomba über FHEM zu steuern ist echt verlockend, aber bevor ich 100€ für die Hardware ausgebe, würde mich interessieren, wie stabil das ganze läuft und welche Befehle sich umsetzen lassen. Habe übrigens den Roomba 521. Danke schonmal!

Edit: Noch eine Frage: Kann das ganze lokal laufen, oder ist der Thinking Cleaner zwingend mit dem Server des Herstellers verbunden?

Gruß
Daniel

d.schoen

Hallo Daniel,

das Modul läuft bei mir stabil. Es können die Befehle Clean, Spot und Dock gesendet sowie alle Statusinfos des Roomba ausgelesen werden.
Bei weiterem Bedarf an Funktionen einfach melden.

Das ganze kann natürlich auch rein lokal laufen (ich habe auch keine Serververbindung zum Hersteller eingerichtet).

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dantist

Hallo Dominik,

danke für die Infos, das klingt super. Ich habe den Thinking Cleaner bestellt, bin sehr gespannt und werde Feedback geben!

Gruß
Daniel

dantist

So, der Thinking Cleaner ist angekommen und bereits erfolgreich in Betrieb. Wirklich eine klasse Erweiterung.

Die drei verfügbaren Befehle des Moduls und das Auslesen der zahlreichen Informationen funktionieren wunderbar. Lediglich der Status wird immer als "???" angezeigt. Hast du eine Idee, woran das liegen könnte? Sag Bescheid, falls du weitere Infos dazu brauchst.

Das Einzige, was ich spontan vermisse, sind zwei weitere Befehle "Stop" und "Find". Vielleicht findest du ja irgendwann Zeit dafür :)

Schöne Grüße
Daniel

d.schoen

Hallo Daniel,

das freut mich.
Folgende Dinge stehen bei mir für "zwischen den Jahren" auf dem Plan:
- Relativer zurückgelegter Weg (Zurücksetzen des Readings tc_status_cleaning_distance mit jedem mal "clean" oder "dock" drücken)
- Stop und Find implementieren.

Den State kannst du via
attr cleaner stateFormat power_status_cleaner_state
so ändern, dass da immer der entsprechende, aktuelle Status des Roomba steht.
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dantist

Danke für den Tip mit stateFormat, das hat funktioniert.

Eine Sache ist mir noch aufgefallen: Das Modul schreibt ständig die gesamte Config (?) in das Log, was zu großen Datenmengen führt. Verbose 0 hat nicht geholfen. Lässt sich das irgendwie abstellen oder zur Not im Modul auskommentieren?

d.schoen

Update dazu ist auf Github veröffentlicht. Viel Spaß damit.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

klausg

Hallo Dominik,

ich habe Dein Modul von Github heruntergeladen. Die Abfrage klappt. Nur der Status bleibt ??. Wenn ich
      attr cleaner stateFormat power_status_cleaner_state
setze, dann ist hinterher der Status das Wort "power_status_cleaner_state". Im Text finde ich auch kein Routine dazu. Ist die Version Deines Moduls auf Github aktuell?

Viele Grüße
Klaus

d.schoen

Hallo Klaus,

ja das Modul auf GitHub ist aktuell. Mit dem stateFormat wie von mir angegeben legst du ja prinzipiell nur ein beliebiges Reading (hier eben power_status_cleaner_state) als State des Devices fest. D.h.: Kuck doch mal in deinen Readings, welchen Wert du als State angeben möchtest und ändere dann entsprechend das stateFormat ab.

Ich werde zur Weiterentwicklung leider erst nach den Weihnachtstagen kommen - dann steht aber auch eine etwas aussagekräftigere State-Definition mit auf dem Plan.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

klausg

Hallo Dominik,

ich habe keine Readings definiert. Ich hatte es mit dem Beispielen aus der Command Referenz versucht. Bin aber auf Fehler gelaufen. Ich glaube ich verstehe die Syntax der Reading* Befehle nicht. Kannst Du mir Beispiele aus Deiner Config geben?

Viele Grüße
Klaus

d.schoen

Hallo Klaus,

oh Gott... Sorry, die Cmd-Ref ist bei dem Modul noch die alte aus dem HTTPMOD Modul, auf dem das THINKINGCLEANER grundsätzlich aufbaut.

Meine Config für den Roomba ist einfach folgende:
define roomba THINKINGCLEANER http://<IP> 30
attr roomba stateFormat power_status_cleaner_state
attr roomba webCmd clean:dock


Mit den Readings meinte ich einfach nur das, was dir FHEM auf der Seite deines Devices unter "Readings" in der Tabelle anzeigt. Alles was dort in der ersten Spalte steht kannst du prinzipiell via stateFormat einfach als State verwenden.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

klausg

Mmh. Meine config sieht fast gleich aus. Aber bei meinem Device gibt es nur Internals und Attributes. Keine Readings.
Die Kommunikation scheint aber zu klappen. Ich kann den Roomba losschicken und wieder docken. Vielleicht fehlt mir ein Modul, das die Readings erzeugt.

Hier meine config:

define Roomba THINKINGCLEANER http://roomba.lan 60
attr Roomba stateFormat power_status_cleaner_state
attr Roomba WebCmd clean:dock


Grüße
Klaus

d.schoen

FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency