NEWS
IRobot Roomba Adapter
-
@JB_Sullivan
Da schliesse ich mich vorbehaltlos @Thomas-Braun an. Ubuntu (oder Debian), aber für iobroker headless. Alles andere braucht man nicht, bzw. eh nie wieder, wenn iobroker läuft. Administration über iobroker-Admin-Site (von jedem Rechner im Netzwerk aus) oder Konsole per SSH oder Putty bei Windows. Da sehe ich dann auch keine Unterschiede mehr zwischen Windows und Linux, bis auf den Overhead, den Windows mit Desktop dann im Hintergrund braucht.Linux per CD/DVD ist doch lange out. Lad Dir Ubuntu Server runter, schiebe es auf einen USB-Stick und boote davon. Installation von Linux würde ich heutzutage sogar eher einfacher als bei Windows bezeichnen. Anleitung gibt es direkt da, wo man es runterlädt.
Nun sollten wir aber den Thread, in dem es eigentlich um den Roomba geht, nicht weiter missbrauchen. Wenn es Probleme beim Installieren von Linux gibt, einfach separaten Thread, ansonsten hier BTT, wo liegen nochmal die Probleme beim Roomba?
Gruss, Jürgen
EDIT: Unter Linux headless empfehle ich den Midnight Commander, zu installieren per
sudo apt install mc
Ebenso danach einfach per mc aufrufen. Der kann alles, was der Windows Explorer können sollte, nur besser.
Struktur vom Linux-Dateisystem lernt man schnell, was zu iobroker gehört liegt unter /opt/iobroker, darin die gleich Struktur wie unter Windows. Und nicht per root anmelden, sondern gleich nach dem Installieren einen normalen User anlegen! Root oder sudo nur, wenn es unbedingt erforderlich ist, erst Recht als Linux-Neuling! -
@JB_Sullivan
Kann ich nicht nachvollziehen.
Den ioBroker installierst du mit einem Einzeiler in der Konsole. Der bringt auch schon node mit. Und dann hast du eigentlich bis auf Updates (sind bei Debian/Ubuntu auch nur zwei kurze Zeilen nix mehr mit der Konsole zu tun), wenn das System dann einmal läuft.
Wenn Ubuntu als Desktop läuft kannst du das auch per Klickibunti machen. Bzw. automatisch im Hintergrung. Läuft z. B. bei meinem Vater so. Der nutzt Linux und ihm ist das vollkommen egal. -
So letzter Eintrag in diesem Thread von mir. Also habe eben einen "alten" PC hochgefahren, weil ihr mich angestachelt habt es mal zu probieren.
Ubuntu Server - Hyperterminal läßt sich nicht installieren, also Orcale Virtual Box angeklickt. Nach abgeschlossener Installation kommt das hier.
Und genau diese Sch....... meine ich mit Linux. Nix funktioniert ohne Harken und Ösen.
-
@JB_Sullivan Wie gesagt: Lass es sein. Das wird so nix. Fummel lieber mit dem Windows rum.
-
@JB_Sullivan Das ist aber ein Windows-Desktop in Deinem Screenshot?! Hast Du die heruntegeladene Installationsdatei für Linux/Ubuntu Server etwa einfach doppelt angeklickt? Das kann so nicht gehen. Du musst mit der Datei ein Startmedium erstellen, z.B. USB-Stick und dann mit diesem eingesteckt, den PC neu starten. Dann kannst Du Linux installieren, entweder neben Windows, wenn genügend freier Platz auf der Festplatte oder das Windows komplett ersetzen.
Anleitung dazu, wie schon gesagt, im Netz, z.B. hier.Wenn Du in dem Windows noch Daten hast, die Du nicht verlieren willst, diese vorher weg sichern, z.B. externe Platte oder NAS oder so.
Gruss, Jürgen
-
Nachdem wir ja nun das Thema Windows vs. Linux hinter uns gelassen haben, scheitere ich weiterhin seit einer Woche an der Installation von Canavas, welche ich exakt nach der Windows Anleitung auf Zefaus Seite durchgeführt habe.
Trotz exakter Eingabe des Befehls, kommt es zu den unten zu sehenden Fehlermeldungen. Was kann ich aber anderes tun, als diesen Befehl einzugeben. Der Rest passiert ja automatisch (oder auch nicht)?
node-gyp rebuild --GTK_Root=C:\GTK2
********************************************************** *** Welcome to ioBroker. *** *** *** *** Type 'iobroker help' for list of instructions. *** *** For more help see *** *** https://github.com/ioBroker/ioBroker.docs *** ********************************************************** Your environment has been set up for using Node.js 12.18.0 (ia32) and npm. C:\iobroker\GLT>npm install --global --production windows-build-tools npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 > windows-build-tools@5.2.2 postinstall C:\iobroker\GLT\nodejs\node_modules\windows-build-tools > node ./dist/index.js Downloading vs_BuildTools.exe [> ] 0.0% (0 B/s) Downloaded vs_BuildTools.exe. Saved to C:\Users\blank\.windows-build-tools\vs_BuildTools.exe. Starting installation... Launched installers, now waiting for them to finish. This will likely take some time - please be patient! Status from the installers: ---------- Visual Studio Build Tools ---------- 2020-06-28T18:24:09 : Verbose : [InstalledProductsProviderImpl]: Stream was closed 2020-06-28T18:24:09 : Verbose : [InstallerImpl]: Rpc connection was closed. 2020-06-28T18:24:09 : Verbose : [InstallerImpl]: Stream was closed 2020-06-28T18:24:09 : Verbose : [SetupUpdaterImpl]: Rpc connection was closed. 2020-06-28T18:24:09 : Verbose : [SetupUpdaterImpl]: Stream was closed ------------------- Python -------------------- Python 2.7.15 is already installed, not installing again. Could not install Visual Studio Build Tools. Please find more details in the log files, which can be found at C:\Users\blank\.windows-build-tools Skipping configuration: No configuration for Python or Visual Studio Build Tools required. All done! + windows-build-tools@5.2.2 updated 1 package in 12.295s C:\iobroker\GLT>node-gyp rebuild --GTK_Root=C:\GTK2 gyp info it worked if it ends with ok gyp info using node-gyp@6.0.1 gyp info using node@12.18.0 | win32 | ia32 gyp info find Python using Python version 2.7.15 found at "C:\Users\blank\.windows-build-tools\python27\python.exe" gyp info find VS using VS2017 (15.9.28307.905) found at: gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools" gyp info find VS run with --verbose for detailed information gyp info spawn C:\Users\blank\.windows-build-tools\python27\python.exe gyp info spawn args [ gyp info spawn args 'C:\\iobroker\\GLT\\env\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'msvs', gyp info spawn args '-I', gyp info spawn args 'C:\\iobroker\\GLT\\build\\config.gypi', gyp info spawn args '-I', gyp info spawn args 'C:\\iobroker\\GLT\\env\\npm\\node_modules\\node-gyp\\addon.gypi', gyp info spawn args '-I', gyp info spawn args 'C:\\Users\\blank\\AppData\\Local\\node-gyp\\Cache\\12.18.0\\include\\node\\common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=C:\\Users\\blank\\AppData\\Local\\node-gyp\\Cache\\12.18.0', gyp info spawn args '-Dnode_gyp_dir=C:\\iobroker\\GLT\\env\\npm\\node_modules\\node-gyp', gyp info spawn args '-Dnode_lib_file=C:\\\\Users\\\\blank\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\12.18.0\\\\<(target_arch)\\\\node.lib', gyp info spawn args '-Dmodule_root_dir=C:\\iobroker\\GLT', gyp info spawn args '-Dnode_engine=v8', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'C:\\iobroker\\GLT\\build', gyp info spawn args '-Goutput_dir=.' gyp info spawn args ] gyp: binding.gyp not found (cwd: C:\iobroker\GLT) while trying to load binding.gyp gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 gyp ERR! stack at ChildProcess.onCpExit (C:\iobroker\GLT\env\npm\node_modules\node-gyp\lib\configure.js:351:16) gyp ERR! stack at ChildProcess.emit (events.js:315:20) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) gyp ERR! System Windows_NT 10.0.18363 gyp ERR! command "C:\\iobroker\\GLT\\nodejs\\node.exe" "C:\\iobroker\\GLT\\env\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--GTK_Root=C:\\GTK2" gyp ERR! cwd C:\iobroker\GLT gyp ERR! node -v v12.18.0
-
@JB_Sullivan ich hab leider kein Windows und kann daher nur bedingt helfen. Laut Fehler fehlt die Datei
binding.gyp
(gyp: binding.gyp not found (cwd: C:\iobroker\GLT) while trying to load binding.gyp
). Google mal, was das für Windows bedeutet. Ich meine, dass die Datei manuell angelegt werden muss, da es sich um eine Konfiguration handelt. -
Die Konfiguration zum abarbeiten der einzelnen Installationsschritte scheint unter npn falsch zu sein, denn es gibt unter node_modules den Ordner canvas und genau da ist die binding.gyp drin.
Ich habe sie schon spaßeshalber mal an den gewünschten Ort kopiert. Da die binding.gyp wie du richtig sagst eine Konfigurationsdatei ist, startet er sie dann zwar, meckert aber im nächsten Schritt die nächsten fehlenden Dateien an, die alle wie gesagt unter node_modules liegen und nicht im Root Verzeichnis von ioBroker.
Irgend etwas in der Installationsroutine läuft das schief.
-
@JB_Sullivan wie startest du das Ganze? Kannst du den Ordner wechseln?
-
Hallo zusammen
Erstmals Danke für den Adapter. Funktioniert sehr gut.
Ich habe jedoch ein kleines Problem, mit dem iRobot i7 +.Den Roboter lasse ich per Zeitplan über iOBroker starten, damit ich den Zeitplan per VIS An- und Abschalten, so wie editieren kann.
Dies bringt jedoch das Problem mit sich, dass sich der Behälter nicht automatisch leert, wenn er voll ist (i7+ hat einen externen Abfallbehälter). Wenn der Roboter jedoch per "normalem" iRobot App-Zeitplan gestartet wird, dann geht das.Nun habe ich 2 Fragen dazu:
- Ist es möglich im Adapter den Befehl zu senden, dass sich der Behälter leeren soll? Somit könnte ich einfach die Funktion einbauen:
Wenn Behälter voll UND Roboter an Dockingstation = leere Behälter.
ODER
- Wie kann ich den Zeitplan über den Adapter auslesen und ändern, damit ich dies weiterhin über VIS einstellen kann, jedoch der Roboter mit dem "normalen" Zeitplan startet?
P.S. Es gibt ja das RunCommand Objekt. Beim Objekt steht, dass eine Liste unter https://bit.ly/2S57cgM zu finden ist. Dort wurde ja aber auch nur die Standardfunktionen wie Start, Stop, etc. abgebildet.
- Ist es möglich im Adapter den Befehl zu senden, dass sich der Behälter leeren soll? Somit könnte ich einfach die Funktion einbauen:
-
@wizzardking den Zeitplan findest du bereits in den States (unter
missions.schedule
). Bzgl. des Befehls schau mal die Issues (auch die geschlossenen) von dorita durch (siehe https://github.com/koalazak/dorita980/issues), ob du dort etwas zu i7 findest. -
Hallo zusammen
Ist es möglich, dass via ioBroker auch nur ein bestimmter Raum gereinigt werden soll?
Gerne würde ich dann auch mehrere Räume zu einer Zone/Start zusammenschliessen.
Die Räume sind bereits in der Roomba-App vorhanden.Vielen Dank für eure Hilfe.
Gruss Kusi
-
@Kusi Ist nicht direkt implementiert. Es müsste ein
command
state geben, mit dem du das realisieren kannst.{ command: 'CleanRoom', time: 0, initiator: 'localApp' }
Ich habe keinen Roomba mehr und kann es daher nicht probieren. Probier etwas mit den Werten zu spielen, wenn es nicht geht.
-
@Zefau Danke für deine Antwort.
Wo muss ich denn diese Zeile eingeben? -
Mal eine Frage an alle - habt ihr z.Zt. auch Probleme, das sich Roomba nicht mehr mit der Werkscloud verbindet?
Ich hatte nie Probleme damit, doch seit Montag ist mir aufgefallen, das so gut wie keine Verbindung mehr zustande kommt.
Die nächste Frage geht an @Zefau : Wurde irgend etwas bei den History Daten geändert?
Der Datenpunkt
roomba.0.missions.history
spuckt ja eine json Tabelle aus. Im VIS eingebunden sieht diese dann so aus.Interessanter Weise scheint die sich nicht mehr zu aktualisieren, denn die History Tabelle vom Roomba selber schaut so aus.
Während die json Tabelle bei 339 endet, geht die Roomba Tabelle bis 356 (die fehlenden Nummer bitte ignorieren, da habe ich was ausprobiert und canvas lief nicht)
-
@Kusi Datenpunkt
commands._runCommand
-
@Zefau Danke, könntest du mir dies bitte ein bisschen genauer erklären, wie ich dies beim genannten Objekt eintragen muss? Ich habe es heute probiert, jedoch nicht hinbekommen.
Muss das gesamte Wort "CleanRoom" durch den Raumnamen ersetzt werden?
-
der adapter soll ja auf dorita980 basieren, und im git dazu steht "Compatible robots: all 600, 800, 900, e5 and i7/i7+ series with HOME app and Braava m6."
ich hab nun mal meinen m6 über den adapter verbunden und es funktioniert auch alles (was ich benötige und getestet habe)
das einzige was etwas störend ist das nun regelmässig fehler vom adapter im log auftauchenunifi.0 2020-07-19 07:47:38.776 info (2130) Update done roomba.0 2020-07-19 07:47:28.294 error (1876) "Cannot read property 'toString' of null" roomba.0 2020-07-19 07:47:28.292 error (1876) "Cannot read property 'toString' of null" unifi.0 2020-07-19 07:46:38.889 info (2130) Update done roomba.0 2020-07-19 07:46:20.500 error (1876) "Cannot read property 'toString' of null" roomba.0 2020-07-19 07:46:20.497 error (1876) "Cannot read property 'toString' of null" unifi.0 2020-07-19 07:45:38.881 info (2130) Update done roomba.0 2020-07-19 07:45:18.102 error (1876) "Cannot read property 'toString' of null" roomba.0 2020-07-19 07:45:18.100 error (1876) "Cannot read property 'toString' of null"
wie kann ich helfen den fehler auf die spur zu kommen?
danke im voraus. -
@Zefau said in IRobot Roomba Adapter:
missions.schedule
Hallo Zefau
Vielen Dank für Deine Antwort.
Leider sehe ich nur beim älteren iRobot Modell den Zeitplan. Beim i7 sehe ich unter "Missions" leider nur den Ordner "current".Den Zeitplan müsste man aber ja auch durch das objekt _runCommand auslesen und setzen können.
Ich verstehe hier aber die Anleitung nicht ganz.
Wenn ich "myRobot.getWeek()" im Objekt _runCommand eingebe, würde ich erwarten, dass der aktuelle Zeitplan in den Logs ausgegeben wird, tatsächlich passiert aber nichts. -
@wizzardking bitte beachtet, dass ich keinen Roomba mehr habe und daher nur noch sehr begrenzt support leisten kann.
Ich habe
runCommand
nie selbst ausprobiert. Das Format müsste aber wie folgt sein{ "command": "start", "time": 1579465092, "initiator": "localApp" }