NEWS
IRobot Roomba Adapter
-
Hallo zusammen
Ich habe den roomba Adapter zum laufen gebracht. Soweit sogst.
Starten, Stoppen, Dok funktioniert auch einwandfrei.Könnt ihr mir sagen, in welchem Datenpunkt / Json ich meine Raum-IDs auslesen kann?
Ich habe leider nicht soooooo viel Ahnung vom ganzen aber ich habe hier Gelsen, dass ich einzelne Räume direkt saugen lassen kann. Dafür muss ich aber erst wissen, wie ich einen Raum ansteure.
Ich nehmen an, dass ich nicht einfach "Wohnzimmer" eingeben kann.
Dank für eure Hilfe!
PS: Bei mir funktioniert das Web Interface auch nicht. Stört mich aber nicht...
Ich Weill nur Raum / Räume starten können....DANKE!
Gruss waeck
-
-
@Kusi Warum nicht hier im Forum? Möglicherweise haben andere auch die gleiche oder ähnliche Frage und wären um die Antwort froh. Sonst müsstest Du da jedem einzeln per PM antworten und das Forum wäre ja fast überflüssig. Also lieber einmal hier schreiben und gut.
Gruss, Jürgen
-
@Wildbill weil es sehr viel Text ist, aber gerne werde ich es hier für alle machen.
-
Die Räume:
Ich habe die Ordner '0_userdata.0/Roomba/Räume' erstellt, und dort für sämtliche Räume von Roomba ein Objekt mit "Raumname" mit der Art "Zeichenkette" erstellt. Dies wird später genutzt und ist dafür da, wenn sich mal die Raum-ID ändert, kannst du diese dort ganz einfach ändern und musst nicht das Blockly anpassen. Zudem kannst du in Blockly mit den Raumnamen arbeiten und nicht den ID´s.Dann erstellst du auf deiner Roomba-App auf dem Smartphone einen Zeitplan (nur einen!!!) und wählst unter "Räume anwählen" nur EINEN Raum aus. Sobald du diesen gespeichert hast, musst du ggfs. den Roomba-Adapter neu starten, damit sich der Wert 'roomba.0/device/_rawData' aktualisiert. Alternativ das Abfrageintervall des Adapters auf 10 Sekunden stellen.
Dieser Wert kopierst du dir dann und fügst ihn in ein Texteditor (ich nehme Word) ein. Der Text ist über eine Seite lang, dort musst du nun nach dem Wort "cleanSchedule2" suchen. Der ganze Text davor habe ich einfach gerade gelöscht, damit es übersichtlicher wird. Ein paar Wörter (ca. 3-4 Zeilen) später findest du die "Region-ID".
Kopiere nun den Text '{"region_id":"xx","type":"xxx"}' (xx steht für den Text, der bei dir angezeigt wird) und füge dies in den von dir erstellten Objektwert im Ordner '0_userdata.0/roomba/räume' des entsprechenden Raumes ein.Nachtrag: Mit folgendem Blockly kann man die Region_ID per Debug auslesen. Geht viel schneller und ist um einiges bequemer:
Nun änderst du im Zeitplan der Roomba-App den Raum, Neustart von Roomba-Adapter und kopierst wieder den Wert von 'roomba.0/device/_rawData', suchst dir wiedder die Region-ID heraus und kopierst diese in dein von dir erstellten Raum im Javascript-Ordner. Dies machst du mit all den Räumen, welche du dann von ioBroker aus starten willst. Ich habe mir alle 10 Räume so kopiert.
Weitere Objekte:
Erstelle zu den Räumen noch 2 weitere Datenpunkte, ich habe diese "Beginn" und "Ende" benannt.Folgende Werte muss du darin speichern:
Bei Beginn: {"command":"start","ordered":1,"params":{"noAutoPasses":false,"twoPass":false},"pmap_id":"xxxxxxxxxxxxxxxxx","regions":[Bei Ende: ],"user_pmapv_id":"xxxxxxxxxxx"}
Die pmap_id und user_pmapv_id musst du mit den Werten ergänzen, welche bei dir in der _rawData stehen (wo du die RaumID herauskopiert hast).
Start der Reinigung:
Um nun einen Raum zu Starten, musst du die Werte/Teile wie folgt zusammensetzen:
"Beginn" "Raumname" "Ende", alles an einem Stück! Dies kannst du dann direkt in 'roomba.0/commands/_runCommand' schreiben und Roomba beginnt zu saugen.
Wenn du mehrere Räume saugen willst, dann kannst du mehrere Räume hintereinander nehmen, z.B. so:
"Beginn" "Raumname" , "Raumname" , "Raumname" "Ende"
(Räume getrennt mit einem Komma, OHNE Leerzeichen!Der Roomba-Start mache ich mit Blockly.
1 Raum reinigen:
mehrere Räume reinigen:
Der Sonst-Teil habe ich eingefügt, damit der Roomba seine Reinigung stoppt, wenn ich den Schalter wieder auf "Aus" stelle.
Und so sieht meine vis "Roomba" aus:
Erklärung, warum ich "Beginn" und "Ende" als Datenpunkte gespeichert habe:
Zu Beginn habe ich mir die Werte darin einfach als Text in Blockly vor/nach den Raum gesetzt.
Leider hat sich dann die Karte mal angepasst in der Roomba-App, dadurch hat sich die pmap_id geändert (und die Räume).
Darauf musste ich bei ALLEN Einzelräumen und Gruppen diese pmap_id ändern.
Wenn man jedoch diese Werte eben in einem Datenpunkt hat, dann muss man dies nur einmal im Objekt ändern, und es wird gleich überall übernommen.Folgendes habe ich bei mir noch gemacht (optional):
Pause-Schalter:
Licht einschalten, wenn Zeit zwischen Sonnenuntergang und Sonnenaufgang (kann auch ohne Datenpunkt gelöst werden, ich brauche diesen aber noch für andere Skripts).
Licht ausschalten, wenn dieses vorher für die Reinigung eingeschaltet wurde.
Schalter zurücksetzen auf "Aus", sobald der Roomba seine Reinigung beendet hat.
-
bitte löschen, Danke
Wie kann ich eigene Einträge von mir löschen?
Es kommt immer die Meldung "Du verfügst nicht über ausreichende Berechtigungen, um die Aktion durchzuführen." -
bitte löschen, Danke
-
Hallo Kusi
Erstmals vielen Dank für eine Anleitung.
Sehr umfangreich und endlich ein Mal etwas, was ich einfach verstanden habe!Zum testen habe ich folgenden Befehl in roomba.0.commands._runCommand eingefügt:
{"command":"start","ordered":1,"params":{"noAutoPasses":false,"twoPass":false},"pmap_id":"YGOxxxx","regions":[{"region_id":"20","type":"rid"}],"user_pmapv_id":"20xxxx"}
xx ist natürlich der korrekte Inhalt. Da ich nicht weiss ob dieser "geheim" ist, habe ich ihn ersetzt.
Nun macht aber mein Roomba so komplett gar nix...
Habe ich doch etwas nicht Veranden?
Danke für eine Hilfe.
Gruss waeck
-
@waeck sagte in IRobot Roomba Adapter:
Zum testen habe ich folgenden Befehl in roomba.0.commands._runCommand eingefügt:
Hast du dies per Blockly mit "steuern" gemacht?
-
Ich habe es von Hand eingegeben und über Blockly.
Beide werden kurz grün, danach gehen sie auf rot... ?
-
@waeck Was wird grün und danach rot? Der Adapter unter "Instanz"? Oder leuchtet der Roomba?
Reagiert der Roomba in irgend einer Weise, wenn du den _runCommand steuerst? (Roomba leuchtet, Roomba sagt etwas, usw.)Ich habe noch beide Befehle (den von dir und mir) verglichen. Unterschiede sind nur bei pmap_id und user_pmapv_id, was auch logisch ist.
Hast du gleich viele Zeichen wie ich?
Meine pmap_id besteht aus 10 Zeichen, einem Strich und 11 Zeichen, total also 22 Zeichen.
Meine user_pmapv_id besteht aus 13 Zeichen.
Ist dies bei dir auch so?Die region_id ist korrekt? Wichtig zu wissen ist, wenn du deine Karte in der Roomba-App mal anpasst/änderst, dann ändert sich auch die pmap_id und/oder user_pmapv_id.
Bei mir sieht es im Blockly wie folgt aus:
1 Raum reinigen
mehrere Räume reinigen
-
Ich gehöre auch zu denjenigen, wo das Webinterface bei loading states hängt
-
Mein Roomba macht nichts.
Weder blinken noch sonst was.... Es ist als würde der "Befehl" nicht ankommen.
Start und Stop funktioniert aber.... -
@waeck ich bin mir gar nicht sehr sicher, ob man den Befehl einfach zu _runCommand einfügen darf, oder ob es zwingend per Blockly mit "steuern" gemacht werden muss.
-
Also ich hab nun noch etwas romgetestet.
Einen Unterschied zwischen Selber Befehl eintragen und ausführen und Blockly kann ich nicht erkennen.
Bei Philips Hue Lampen, Shelly Schalter, Samsung TV funktioniert dies immer...Was ich aber nun gerufen habe ist eine Fehlermeldung im Log.
roomba bring folgende Fehlermeldung:
"Cannot read property 'toString' of null"Evtl. hat dies etwas damit zu tun.
Kennt dies jemand?
-
For everyone having problems with loading states on the web interface on your web instances configured for Roomba, there is a fix for it. I added a pull request for this on https://github.com/iobroker-community-adapters/ioBroker.roomba/pull/36
If you need to get this interface working and can't wait until this is merged and publish into the master and released by the dev team, you can install https://github.com/thost96/ioBroker.roomba directly using the GitHub button.
-
Hi,
habe die neueste Version des Adapter 1.1.1 auf dem iobroker. Jedoch funktioniert das vis weiterhin nicht. Es hängt bei loading states.
Kann jemand erklären was ihr alles genau am laufen habt.
WEB Adapter Einstellungen
socketio ?
...vielen Dank
alex -
Ich habe gestern die Roomba-Instanz ein zweites Mal installiert, um damit den iRobot Braava Jet M6 zu steuern.
Zuerst hat alles einwandfrei funktioniert, jedoch verbindet sich die Instanz nicht mehr mit dem Roboter.Folgende Fehler im Log werden angezeigt.
Kann mir jemand helfen?
-
@ashuan sagte in IRobot Roomba Adapter:
Hallo zusammen,
entschuldigt bitte, jedoch es hat mir keine Ruhe gelassen.
Ich habe die roomba.js dahin gehend angepasst sodass der _runCommand Befehl funktioniert.@Zefau : es wäre super wenn Du das prüfen könntest und ggf. einchecken.
Ich bekomme immer wieder ein "Cannot read property 'toString' of null" aber da bin ich dran.
Ich denke das habe ich mir eingefangen als ich die Nodes etwas verändert habe.LG und have fun
KaiKann dies in den Adapter eingepflegt werden, damit die roomba.js Datei nicht manuell überschrieben werden muss?
Ich habe gestern mein System neu aufgebaut und der Roomba nahm den runCommand nicht mehr an.
Den Fehler habe ich nun nach langem Suchen gefunden. Die Datei roomba.js überschreiben und voila, der Roomba
funktioniert wieder.Nun muss ich noch den Braava M6 Jet zum Laufen bringen.
-
@waeck sagte in IRobot Roomba Adapter:
Was ich aber nun gerufen habe ist eine Fehlermeldung im Log.
roomba bring folgende Fehlermeldung:
"Cannot read property 'toString' of null"@waeck Funktioniert es mittlerweile bei dir??
Wenn nicht, dann hast du wohl vergessen die Datei "roomba.js" zu ersetzen. Ich habe gar nicht mehr daran gedacht, sorry.