NEWS
IRobot Roomba Adapter
-
@Wildbill sagte in IRobot Roomba Adapter:
Vielen dank für die Zeit die du dir genommen hast für eine Pro Linux Laudatio
In letzter Zeit habe ich wirklich vermehrt den Eindruck, dass sich hier immer mehr User mit Problemen melden und bei den meisten davon ist iobroker unter Windows installiert (von denen mit >30 Adaptern auf einem Raspi mit 1GB mal abgesehen).
Ich denke nicht, das dass mit Windows zu tun hat.
Viele "Neu ioBrokianer" testen ioBroker entweder gleich auf einem Raspi, was sie dann zwangsläufig zu Linux bringt und dann, gerade als Linux Neuling und ioBroker Anfänger im Headless Modus und den ganzen Komandozeilen Eingaben oftmals zu Fehler leitet, die mangels Bedienungskentnis entstehen.
Headless Modus macht keinen Spaß - und genau das ist der Grund, warum ich bei Windows gelandet bin (hatte Anfangs auch einen Raspi3b+ der aber schnell an seine Grenzen kam). Ich bin ein visualisierender Mensch und möchte eine Übersicht haben und sehen können was ich mache. Außerdem haben mich die ganzen Linux Distributionen total verwirrt und abgeschreckt.
Jede Linux Distributation, kann auf ihren Einsatzzweck bezogen irgend etwas besonders Gut und anderes wiederum weniger Gut oder gar nicht. Das ist als wenn es ein Windows von Meyer, ein Windows von Müller und ein Windows von Schulze geben würde.
Jeder optimiert seine Distributation so, wo sein Hauptaugenmerk drauf liegt. Schnell merkt man dann, das z.B. Videos nicht funktionieren und wieder händisch, aber bitte mit passendem Treiber nachinstalliert werden müssen.
Das ist mir alles zu viel "Killefick". So geht es nicht nur mir, sondern ~ 25% der ioBroker nutzer (lt. Downlaod Statistik)
Das Hauptproblem ist der Windows Installer in seiner letzten auf der ioB Homepage angebotenen Version - den vermutlich viele Anfänger auch verwenden werden.
Nach gut einem 3/4 Jahr Frust und Forschung ist nun heraus gekommen, das dort ein BUG drin ist, der seit js-controller 3.xxxx dazu führt, das bei Updates von Adaptern, Dateien aus dem nodes_modules Ordner gelöscht werden. Damit ist die ioB Installation im Prinzip kaputt. Unter js-controller 2.xxx war dieses Problem nicht vorhanden, bzw. kam nicht zum Tragen, weil der js-controller diese Update Vorgänge wohl anders gehandlet hat.
Also was passiert, wenn ich mein System, an dem ich Monatelange gearbeitet habe (Visualisierung), plötzlich nicht mehr nutzen kann? - FRUST, Mecker von der Frau das dieses oder jenes nicht mehr geht (auch wenn Sie es vorher gar nicht haben wollte, aber jetzt MUSS es auch funktionieren - aber das ist ein anderes Thema) und Wut auf "das System".
Also was macht man. Man wurschtelt sich durchs Internet und greift nach jedem Strohhalm den man kriegen kann. Probiert alles mögliche aus (auch Beschreibungen die für Linux User gedacht sind) und bekommt es "vielleicht" sogar wieder zum laufen.
Man hat sich durch das viele gebastele aber ein völlig inkonsistentes System geschaffen, was nur darauf wartet beim nächsten Update von irgend etwas, wieder zu kollabieren.
Dann wird natürlich hier nach Hilfe gerufen und auf das System geschimpft.Meiner Meinung nach, werden in den Wintermonaten 2020/21 noch viel mehr Windows User mit Problemen um die Ecke. Denn Winterzeit ist ioBrocker Zeit. Wer von den Windows Usern jetzt mit js-controller < 2.2.9 fährt, hat nach derzeitigen Stand der Dinge wohl keine Probleme. Spätestens im Winter ("Ach ich könnte ja mal meine Adapter Updaten") werden noch viel mehr Windows User die Ihr System mit dem Installer 2.1.b aufgesetzt haben mit Problemen um die Ecke kommen.
Meiner Meinung nach müsste man den Windows Installer hier von der ioBroker Homepage runter nehmen, bis es eine funktioniernde neue Version gibt. Also gar kein Windows mehr anbieten.
Das hätte 1.) den Effekt, das man den Zeitstrahl wo immer wieder User mit Windows Installationen aus oben genannten Gründen um die Ecke kommen, unterbricht und 2.) die Leute nach Linux "zwingt" - was aber wieder mehr Problemanfragen aus dem falschen Handlingsgründen hier im Forum produzieren dürfte.Es gibt ja mitlerweile für das oben beschriebene Problem ein Workaround, der auch super funktioniert wenn man sich an die Vorgehensweise hält.
Das Problem: Die Suchfunktion hier im Forum ist eine Katastrophe - und wonach soll ich als Leid geplagter Windows User suchen, wenn ich nicht einen Hauch einer Idee habe, woher es kommen könnte?
Ich gebe zu, es ist alles sehr schwierig mit Windows (oder genauso schwierig wie mit Linux wenn man davon keine Ahnung hat), aber ioB Windows läuft genauso stabil wie Linux.
Vor dem js-controller 3.xxx lief mein Win Produktiv System ein 3/4 Jahr am Stück, ohne ioB oder Windows Neustart. Also Windows ist nicht das Problem. Das Problem sind die ganzen Abhängigkeiten innerhalb von npm und die "zwangsweisen" Updates, die aber z.T. einfach aus Sicherheitsgründen sein müssen.
Außerdem wäre ich dafür, das man "latest" und Installation aus dem GIT erst 4380 Stunden (6 Monate) nach der 1. Installation freigeschaltet bekommt
-
@JB_Sullivan
Ich meine, hier schon öfter gelesen zu haben, dass der Windows-Installer bzw. eben die Windows-Unterstützung halt so nebenher mit entwickelt wird, weil sie eben doch ab un an gewünscht wird. Zu 95% würde ich sagen, ein neuer Adapter oder eine neue Funktion landen erst einmal in der Linux-Unterstützung und dann wird geschaut, wie man es nach Windows bringt. Das meinte ich auch weiter oben. Kommt was neues und es gibt eine Anleitung, muss ich nicht erst schauen, ob es das für mein Betriebssystem (in Deinem Fall Windows) gibt, sondern kann meistens sofort loslegen und Befehle 1:1 übernehmen. Das finde ich sogar einfacher, als mir zusammenzusuchen, was ich für Windows alles beachten muss.Zum Thema headless. Ja, das mag vielleicht nicht jeder, aber man sollte auch sehen, was man in der Shell überhaupt tut. Updates installieren, die paar Befehle hat man nach dem zweiten Mal drauf, oder man bastelt sich ein Script, und eben die Befehle, die man im Rahmen iobroker einzugeben hat, wenn man was ändert, nachinstalliert oder dergleichen. Ab da, wage ich zu behaupten, haben wir zwischen Headless Linux oder Windows keinerlei Unterschied. Auch Du gibst ab und an Befehle in eine Shell (oder wie heisst das bei Windows?) ein, oder klickerst auf der Admin-Site was zusammen. Ich auch. Aber ich spare die Ressourcen, die ein Desktop mitbringt, bzw. wenn iobroker im Container läuft, spare ich ein komplettes Betriebssystem.
Und noch zum Thema Stabilität. Ich habe eine VM mit Windows 10 Pro hier und meinen Geschäfts-Laptop, ebenfalls Windows 10 Pro. Wenn ich schaue, wie oft ich die doch mal neu starten muss, oder der Geschäfts-Laptop sich so einmal im Monat einfach mal aufhängt, dann ist das für mich nicht stabil. Von Windows 10 bzw. Microsoft und dem Umgang mit dem User generell mal abgesehen. Ich möchte gerne entscheiden, was ich wann installiere und wann ich den Rechner neu starte. Aber, Windows 10 an sich ist noch ein anderes Thema.
Also los, versuch Dich nochmal an Linux und bei Problemen hilft man Dir hier im Forum. Und ich hätte wieder einen überzeugt.
Spass, jeder soll nehmen was er will, nur bei Linux, ist meine Meinung, hat man weniger Probleme und generell hier mehr Hilfe zu erwarten, weil sich mehr damit auskennen.Gruss, Jürgen
Edit: Reaktion auf Deinen letzten Absatz vergessen. Ja, ich denke auch, dass viele Probleme haben, weil sie denken, nur auf latest seien sie aktuell unterwegs. Da sollte auf jeden Fall ein Infofenster aufgehen, welches warnt. Ebenso, wenn man was von github holt (wobei es da ja unten dran steht irgendwo). Wenn man weiss, was man tut, alles kein Thema. Aber für neue User... Ich bin übrigens nur auf stable unterwegs, habe aber einige Adapter manuell aus git gezogen, weil sie eben im stable noch Funktionen, die ich brauche, nicht hatten. Aber ich wage mal zu sagen, ich weiss dann auch was ich tue oder wie ich mir zu helfen habe.
-
@Wildbill sagte in IRobot Roomba Adapter:
Also los, versuch Dich nochmal an Linux und bei Problemen hilft man Dir hier im Forum. Und ich hätte wieder einen überzeugt.
Also an Hardware scheitert es bei mir nicht. Hier stehn genug ungenutzte Rechner und Laptops rum. Ich wollte schon mal auf ein nacktes Laptop Linux drauf bringen, aber da ging es schon los - WIE? Keine Installations CD, keine Treiber Unterstützung für das verbaute DVD Laufwerk. Nix Plug&Play wie bei Windows - CD rein und nach 2 Stunden hast du ein fertiges BS. Da verliert man doch schon am Anfang die Lust.
Nenn mir eine Linux Distribution, die für ioB geeignet ist und die ich auf einem Laptop so wie Windows installiert bekomme und mit der ich nicht Headless unterwegs sein muss - dann probiere ich es nochmal
-
@JB_Sullivan
Ubuntu
Dir würde ich aber den Einsatz von Linux (in welcher Form auch immer) nicht empfehlen. Da scheint mir dann doch die grundlegendste Voraussetzung zu fehlen: Du musst es schon einsetzen wollen.Ob du jetzt in einem Terminal von einem Linux-Desktop in einem Terminal oder von z. B. der PowerShell oder puTTY per SSH arbeitest ist doch vollkommen wumpe.
Die Laufzeitumgebung ist halt headless. Auch unter Windows. Unterschied gleich Null. -
@Thomas-Braun sagte in IRobot Roomba Adapter:
Die Laufzeitumgebung ist halt headless. Auch unter Windows. Unterschied gleich Null.
Das mag sein, aber unter Windows habe ich eine Datei Struktur die ich mir angucken kann. Unter Linux Headless muss ich wissen wie alles aufgebaut ist um irgendwo hin zu kommen und mal nachgucken zu können - Stichwort Datei Explorer
-
@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)