Modul für Irobot Roomba 980

Begonnen von kukamee, 22 Februar 2017, 02:34:53

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Hi,
das ganze sind eigentlich nur Warnungen. Was genau funktioniert denn nicht?
Möglicherweise hilft, npm zu deinstallieren. Normalerweise müsste node selbst ein passendes npm mitbringen. (Zumindest findet man das so bei einer schnellen Suche, selbst hatte ich solche Probleme noch nicht.)
Gruß,
   Thorsten
FUIP

Jewe

#241
Hallo Thorsten,

mit der automatischen Installation bekam ich nicht die neueste Version. Erst mit
sudo npm install -g npm@latest
Dann konnte ich auch dorita980 installieren. das läuft so wie ich es sehe auch. Wenn ich nun dass Passwort vom Robbie abfragen möchte
bleibt er ehwig hängen und nach weiterem Return drücken macht er weiter und bricht mit Fehler ab. Ich kann das wenn ich wieder zuhause bin
hier noch anhängen. Evtl. sollte ich Node, Npm und dorita980 nochmals deinstallieren um es dann wieder neu installieren zu können (bzw. nur dorita980)

In Fhem kann ich den Robbie nicht connecten.

Jens

Jewe

Hey,
das passiert wenn ich das Passwort abfragen will:


get-roomba-password 192.168.xx.xx
Make sure your robot is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
Then press any key here...

Robot Data:
{ ver: '3',
  hostname: 'Roomba-319xxxxxxxxxxxxxx',
  robotname: 'Roomba',
  ip: '192.168.xx.xx',
  mac: 'xx:xx:xx:xx:xx:xx',
  sw: 'v2.4.6-3',
  sku: 'R966040',
  nc: 0,
  proto: 'mqtt',
  cap:
   { pose: 1,
     ota: 2,
     multiPass: 2,
     pp: 1,
     binFullDetect: 1,
     langOta: 1,
     maps: 1,
     edge: 1,
     eco: 1,
     svcConf: 1 },
  blid: '319xxxxxxxxxxxxxxx' }
events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: 3069259792:error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small:../ssl/statem/statem_clnt.c:2156:

Emitted 'error' event at:
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)


Thorsten Pferdekaemper

Hi,
häng Dich vielleicht mal hier mit dran:
https://github.com/koalazak/dorita980/issues/88
Da hat wohl jemand dasselbe Problem.
Gruß,
   Thorsten
FUIP

pschlaeppi

Hallo zusammen,

Ich hatte das Problem das nach der Installation des Roomba Modules das Presence Modul nicht mehr richtig funktionierte.
Ich habe daraufhin dann alle Roomba980 relevanten Module auf einen bereits bestehenden Fhem2Fhem RasPi ausgelagert.
Von Dort lasse ich nun die Daten per Fhem2Fhem Instanz mittels Log auf der Haup Instanz ausgeben. Die Readings werden auch im Dummy mit gleichlautendem Namen aktuell dagestellt.
Durch absetzen der Befele via RFHEM funktioniert auch die Steuerung soweit.
Dieses hat nun die Probleme mit der Bluetooth Presence Erkennung behoben.

Leider habe ich nun aber das Problem das die FHEM Haupt Instanz am Tag 1-2 mal crasht wenn ich über FhemWeb vom PC oder einem Tablet darauf zugreife. Bisher kann ich noch kein Muster festmachen durch welche Aktion dieses ausgelöst wird. Ich habe jeweils das Log gerade nach dem Crash weggespeichert vor dem neu booten. Als letztes sind immer wieder andere Devices gelogged und es sind eigentlich vor allem normale Log3 Meldungen und keine Fehlermeldung kurz vorher.

Ich möchte nun sicher stellen dass die Roomba980 Module komplett deinstalliert sind auf der Haupt Instanz damit diese keinen Einfluss mehr haben können.
Bisher gemacht:
- update delete https://raw.githubusercontent.com/ThorstenPferdekaemper/FHEM-Roomba980/maste/controls_roomba980.txt
- 42_Roomba980.pm gelöscht
- sudo apt-get remove npm
- Device aus der Konfig gelöscht
- Logfile behalten und einen Dummy erstell mit demselben Namen wie das ehemalige Roomba980 Device
  um die von Fhem2Fhem gemeldeten Daten wegzuloggen und im Dummy gleichen Namens darzustellen.

Muss allenfalls sonst noch etwas entfernt werden?
- Wenn ja, was? wie?


Grüsse  Philipp


Thorsten Pferdekaemper

Zitat von: pschlaeppi am 02 August 2019, 15:16:57
Muss allenfalls sonst noch etwas entfernt werden?
- Wenn ja, was? wie?
Vielleicht hast Du noch das dorita980 oder so installiert? Ich wüsste jetzt aber nicht, wie das zu FHEM-Abstürzen führen sollte. Ich vermute eher, dass da etwas anderes am Werk ist. ...oder Du hast sogar schon ein bisschen zu viel gelöscht.
Du sagst, dass es dann crasht, wenn Du über FHEMWEB zugreifst? Kannst Du da das Log-Level ein bisschen hochschrauben? Dann sieht man vielleicht etwas mehr.
Gruß,
   Thorsten
FUIP

pschlaeppi

Hallo Thorsten,

Hatte bereits das Loglevel auf 5. Leider auch bei diesem Detail keine schlüssigen und wiederkehrenden Messages vor dem Absurz. Hatte die beiden Schritte
- 42_Roomba980.pm gelöscht
- sudo apt-get remove npm

erst kurz vor meinem obenstehenden Post entfernt gehabt. Kurz nachdem entfernen und reooten dann noch einmal einen Crash und seither habe ich aber nun Ruhe und keinen Absturz mehr gehabt.

Müsste dorita980 nicht auch gleich entfernt werden wenn ich das ganze NPM remove?

Grüsse Philipp

Thorsten Pferdekaemper

#247
Zitat von: pschlaeppi am 07 August 2019, 20:50:53
erst kurz vor meinem obenstehenden Post entfernt gehabt. Kurz nachdem entfernen und reooten dann noch einmal einen Crash und seither habe ich aber nun Ruhe und keinen Absturz mehr gehabt.
Ok, dann betrachten wir das mal als erledigt. Wenn's nicht nachvollziehbar ist, dann kann man's auch schlecht weiter analysieren.

Zitat
Müsste dorita980 nicht auch gleich entfernt werden wenn ich das ganze NPM remove?
Da bin ich mir nicht so sicher. npm ist ja nur ein Paketmanager für Node.js. Node selbst dürfte damit nicht verschwinden. ...aber das ist meiner Meinung nach auch egal.

Gruß,
   Thorsten
FUIP

TripleNail

Keine Verbindung mehr zum Roomba nach debian/openssl upgrade: Problem + Lösung

Mit Buster kommt ein openssl upgrade das dazu führt, dass FHEM keine MQTT Verbindung mehr zum Roomba hinbekommt.
Grund ist, dass openssl jetzt höhere Anforderungen an die SSL Verbindung hat. Leider bekommt man von diesem Fehler im log nichts mit.  :(

Mit mqtt-simple (das verwendet auch das fhem Modul) kommt man dem Ganzen aber relativ schnell auf die Schliche:

mqtt-simple --ssl --insecure -c -s "#" -h roomba
...
/usr/local/bin/mqtt-simple: connect: SSL connect attempt failed error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small

mit dieser Info und Google kommt man recht schnell zu Debian Bug #907788, der auch eine Lösung parat hat:

Lösche folgende Zeile aus der /etc/ssl/openssl.cnf

CipherString = DEFAULT@SECLEVEL=2

und schon läuft es wieder.

Gruß

   TripleNail

Jewe

Hallo,

das war bei mir nun der entscheidende Tipp !! Dankeschön, nun klappt es auch wieder.

Jens

Lippie

Hallo Zusammen,

ich habe das Modul um eine deutsche Doku erweitert und die Doku aktualisiert.
Um freier in den Einstellungen zu sein, gibts für checkinterval eine neue min-Grenze.

Da der Roomba immer fleißig leuchtet, wenn das Modul verbunden ist, bietet es sich an,
die reconnecttime auf zB 900 Sekunden zu setzen, und timeout und checkntervall auf 15 oder 30 Sekunden.
Dadurch wird der Roomba immer nur kurz aufgeweckt.

Beste Grüße.

Jewe

Hallo Lippie,

wollte Dein geändertes Modul ausprobieren, aber wenn ich es neu lade bekomme ich diesen Fehler :
Can't locate JSON/MaybeXS.pm in @INC (you may need to install the JSON::MaybeXS module) (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib /opt/fhem . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at ./FHEM/42_Roomba980.pm line 135.
BEGIN failed--compilation aborted at ./FHEM/42_Roomba980.pm line 135.


Mit dem aktuellen funktioniert es normal.

carlos

Dann schau dir doch die Meldung mal genauer an, dann wirst du feststellen dass du das  JSON::MaybeXS module installieren sollst.
Wenn du dann einfach folgendes machst, dann hast du das Problem gelöst:

apt-cache search  MaybeXS
libjson-any-perl - wrapper class for the various JSON classes
libjson-maybexs-perl - interface to the best available JSON module
apt-get install libjson-maybexs-perl


Da könnte man aber auch selbst drauf kommen.

Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Lippie

Carlos hat Recht. Du musst Perl um das JSON::MaybeXS erweitern.
Je nach System gibt es unterschiedliche Vorgehensweisen.
Ich nutze meist diese per SSH:

/usr/bin/perl -MCPAN -e shell
install JSON::MaybeXS


viele Grüße.

Thorsten Pferdekaemper

Hi,
ich finde es gut, wenn "mein" Modul weiterentwickelt wird und wollte gerade die neue Version ins Git hochladen. Allerdings finde ich es nicht so schön, wenn immer mehr Perl-Module benötigt werden. Könnte man auch ohne das JSON::MaybeXS auskommen? Etwas weiter oben wird ja schon JSON::XS geladen, da ist das doch eigentlich überflüssig, oder?
Gruß,
   Thorsten
FUIP