Roomba 960 - Rest980 oder MQTT ?

Hallo Gemeinde,

nachdem ich vor 2 Wochen einen Roomba 960 gekauft habe, fasziniert mich der Gedanke, ihn in IPS zu integrieren. Nach Recherche stellt sich heraus, dass er per APP sehr gut steuerbar ist, aber aufgrund einer undokumentierten API nur auf Umwegen integriert werden kann. Auch hat der Roomba irgendwann 2018 eine neue Kommunikationsform über MQTT erhalten, so dass Tobira980 nicht mehr gehen kann.

Ich habe dann den Weg über eine Linux-VM auf der Dorita980 und Rest980 laufen wie in einem anderen Thread beschrieben gewählt. Das funktioniert nach einigem herumzicken nun letztlich doch. Das Passwort auszulesen war die größte Hürde, aber dank Dorita980 machbar. Befehle nimmt er nun auf diesem Umweg an. Ein Mini How to mit Befehlen in einem Script mal anbei:

<?

/*//////////////////////////////////////////////////////////////////////////////
Roomba How to
--------------------------------------------------------------------------------
Installation UBUNTU auf VM
Installation Node.js und NPM
Installation Dorita980

	Quelle: https://github.com/koalazak/dorita980

	$ git clone https://github.com/koalazak/dorita980.git
	$ cd dorita980
	$ npm install
	
BLID und Passwort auslesen

	$ npm run getpassword <robotIP>
		
Installation Rest980 als HTTP-Server für Dorita980

	Quelle: https://github.com/koalazak/rest980

Start API Server

	$ cd rest980
	$ DEBUG=rest980:* npm start

/*//////////////////////////////////////////////////////////////////////////////


// INFOS ///////////////////////////////////////////////////////////////////////

$State = json_decode(file_get_contents("http://192.168.178.226:3000/api/local/info/state"));

var_dump($State); 

// Einstellungen ///////////////////////////////////////////////////////////////

$Preferences = json_decode(file_get_contents("http://192.168.178.226:3000/api/local/config/preferences"));

var_dump($Preferences); 

/*

// Aktionen ////////////////////////////////////////////////////////////////////
		
$Start = json_decode(file_get_contents("http://192.168.178.226:3000/api/local/action/start"));

var_dump($Start); 

$Stop = json_decode(file_get_contents("http://192.168.178.226:3000/api/local/action/stop"));

var_dump($Stop); 

$Pause = json_decode(file_get_contents("http://192.168.178.226:3000/api/local/action/pause"));

var_dump($Pause); 

$Dock = json_decode(file_get_contents("http://192.168.178.226:3000/api/local/action/dock"));

var_dump($Dock); 

$Resume = json_decode(file_get_contents("http://192.168.178.226:3000/api/local/action/resume"));

var_dump($Resume); 


// MAP (experimentell) /////////////////////////////////////////////////////////

$Map = "http://192.168.178.226:3000/map";

*/

Aber:

Eigentlich ist es ziemlich blöd nur für den Roomba eine VM laufen zu lassen. Mit MQTT hatte ich bislang keinerlei Berührungspunkte, so dass ich da völlig blind bin :confused: Mir ist nicht ganz klar, wie ich Topics subscribe, die ich gar nicht kenne. Tests mit Mosquitto und MQTT.fx liefen ins Leere.
So viel ich verstehe handelt es sich um encryptet MQTT über Port 8883. Meint ihr man bekommt das vielleicht direkt über IPS hin, nachdem in 5.1 nun eine MQTT Beta integriert ist ?

Hat vielleicht Jemand diesen Ansatz weiter verfolgt ?

Gruß André

Ich glaube man benötigt dafür TLS.
TLS kann der MQTT Server aber noch nicht.

Grüße,
Kai

Hi.

Ich hänge mich kurz dran da es bei einem bekannten Online Versandhaus den Roomba 671 mit Appsteuerung heute für 199€ gibt.
Gibt es aktuelle Erfahrungen ob ich das Teil per IPS starten/stoppen kann, bzw. muss Roomba dazu eine Internetverbindung haben oder kann ich die API lokal/offline ansprechen?

Natürlich auch die Frage ob die API Logik vom 980er auf den 671er angewendet werden kann?

Danke & Gruß
Thorsten

Hallo.

Wenn ich die Infos auf „GitHub - koalazak/dorita980: Unofficial iRobot Roomba 900 series 980 / i7 / i7+ node.js library / SDK to control your robot“ richtige verstehe, dann geht die Steuerung auch für die 600er Serie und weitere. Aus dem lokalen LAN heraus soll es auch funktionieren ohne mit der Cloud API zu sprechen.

Klingt also soweit gut :).

Gruß
Thorsten

Mein Roomba 671 kam an und kann auch wunderbar mit den Python Skripten von dorita980 gesteuert werden. Jetzt wollte ich mir das mit MQTT.fx anschauen was da geschickt wird.

Aber irgendwie kann ich mich mit mqtt.fx nicht verbinden :confused: .

Broker: IP vom Roomba
Port: 8883
Client-ID: Benutzername Roomba
Clean Session: aus
MQTT-Version: 3.1.1 (bin nicht sicher ob das stimmt)
User Cred: Benutzername und Blid (Passwort)

Wenn ich ohne SSL versuche klappt es nicht und nutze ich TLSv1.2 klappt es auch nicht.
Ich habe extra ein self signed Zert. erstellt inkl. CA und es in mqtt.fx eingetragen. Leider ohne Erfolg.
Das Root-CA Zert habe ich an meinem Rechner im Zertifikatsspeicher auch importiert.
Leider alles nicht erfolgreich.

Ich bekomme immer eine mqttException zurück.

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Wüsste nicht was ich noch probieren könnte. Bin vielleicht aber mit den SSL Settings generell auf dem Holzweg.

Vielleicht hat jemand einen Tipp für mich.

Danke & Gruß
Thorsten

Ich würde das Thema gerne nochmal aufgreifen.

Irgendwelche Tipps wo ich schauen kann?

Gruß
Thorsten

Hallihallo,

hat denn noch niemend einen irobot in IPS integriert?

lg

Klar doch. Mein iRobot dreht seit 9 Jahren seine Runden. Mit xBee in IPS. :stuck_out_tongue:

PS: mein i7+ wartet aber auch noch auf die Verbindung mit IPS.:smiley:

Wie läuft das mit xBee? Überträgt der mit MQTT, oder wie kann ich mir das vorstellen?

Peter

MQTT vor mehr als 9 Jahren? Ha…

Das Klar doch… war eine scherzhafte Antwort auf

hat denn noch niemend einen irobot in IPS integriert?

Die alten Baureihen wie mein iRobot Roomba 581 hatten noch eine Serielle Schnittstelle. Daran ist ein XBee Modul angeschlossen. Dies überträgt die Daten per Funk zum Empfänger XBee. Darauf greift IPS über eine Seriell Schnittstelle zu.
Da iRobot die Steuerparameter bekannt gemacht hatte konnte IPS die Roomba steuern.

Genaueres kannst du unterRoomba + Xbee + IPS HowTo Nachlesen.

Hallo zusammen,

Bin hier zufällig über diesen Thread gestolpert, und vor einiger Zeit zufällig über die Google Suche auf ein fertiges IPS Modul:

Allerdings hab ich leider das Problem das bei mir immer die Fehlermeldung kommt „error Bad file Descriptor“.

Gibt es eventuell mittlerweile eine andere Kommunikation?

Grüße,

Servus,

bin auch betrübt noch nix für die iRobot in Symcon gefunden zu haben.
Hat da jemand den Pro-Tipp?

Danke und Gruss
Seppm