Modul für Irobot Roomba 980

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

Vorheriges Thema - Nächstes Thema

luetty

Hallo ct,

seit Mittwoch Abend lief es stabil und jetzt plötzlich:
2017.07.28 16:26:06 1: 10.12.3.14:8883 reappeared (Roombi)
Can't use an undefined value as an ARRAY reference at FHEM/lib/Net/MQTT/Message/Unsubscribe.pm line 25.
2017.07.28 16:26:11 1: BlockingInformParent (BlockingStart): Can't connect to localhost:38791: IO::Socket::INET: connect: Connection refused
2017.07.28 16:26:11 1: BlockingInformParent (PRESENCE_ProcessLocalScan): Can't connect to localhost:38791: IO::Socket::INET: connect: Connection refused
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/opt/yowsup-master/yowsup/demos/cli/cli.py", line 153, in startInputThread
    cmd = self._queuedCmds.pop(0) if len(self._queuedCmds) else input(self.getPrompt()).strip()
EOFError: EOF when reading a line


...ich dreh durch  ::) :o

Spiff

Hi luetty,

Du hast doch dauernde disconnects. Das kann ich bei mir überhaupt nicht beobachten - und bei mir läuft auch der Rest stabil.
Es ist vielleicht nicht die Lösung - aber wie weit ist der Roomba vom Router entfernt?
Kannst Du ihn vorübergehend irgendwo platzieren, wo er auf jeden Fall sehr guten Empfang hat?

Gruß
Spiff.

luetty

Hi Spiff,

ja dass mit den disconnects nervt mich auch.   :'(

Der Roomba steht 4m vom Router weg, stand auch schon 2m, daneben. Hab sogar extra noch 'n repeater rausgekramt und angeworfen.
Daran liegt es nicht, PING geht definitiv 100% durch. UND: Ich habe die dorita980-Variante aus Post 3 ebenfalls getestet. Einen soooo sauberen Plot, wie mir die Arbeit von Markus da gebracht hat, hab ich noch nie gesehen  ;). Nichtmal ansatzweise disconnects.
Allerdings sperrt mir der wrapper die Bedienung und ich habe dann da nicht weitergemacht, dazu brauche ich mehr Zeit und ein bisschen Ruhe.  8)

Ich werde dass Gefühl auch nicht los, dass er disconnectet sobald irgendein reading reinkommt. Ich hatte auch schon eine extra fhem-Instanz aufgesetzt, da lief es einige Zeit auch stabiler, dann aber brach wieder das chaos aus.

Werde wohl weiter tüfteln müssen.

ciaoie
luetty

ct

#108
Hallo Luetty,

ich bin mir nicht sicher wann ich dazu komme meine Version etwas sauberer zu machen. Da ist grad wirklich so viel Debugzeugs drin um auch die Ursache grundsätzlich zu identifizieren und zu verstehen. Es läuft zwar, aber glücklich bin ich damit nicht. Eigentlich tendiere ich dazu das mqtt mit dem Roomba in einen externen Prozess auszulagern und fhem damit nicht zu belasten.

Ich kann dir vorerst lediglich raten überall wo es kracht, den Inhalt der Funktion nach folgendem Schema abzusichern:

  eval {
    ... Code der fhem abschießt ...
  };
    if ($@) {
      Log3 ($name, 1, "Error in Methodname: $@" );
    };


Hab grad nochmal grob gecheckt und die Methode send_message abzusichern hilft schon mal sehr viel:
sub send_message($$$@) {
  my ($hash,%msg) = @_;
  my $name = $hash->{NAME};
  my $message = undef;
 
  eval {
    $message = Net::MQTT::Message->new(%msg);
  Log3($name,5,"MQTT $name message sent: ".$message->string());
  };
    if ($@) {
      Log3 ($name, 1, "Error in send_message: $@" );
    };
  return if ( !defined ($message) );
 
eval {
  DevIo_SimpleWrite($hash,$message->bytes,undef);
};
};


Zur Zeit fehlt mir leider etwas die Zeit, aber vielleicht kriegt es jemand hin..

Grüße
  ct

mkihr

My problem is now, that cleaning works one time. Whenever the robot is back in the base it disconnects and I can only reconnect after I reset the Robot.

Spiff

Are you using the iRobot app in parallel?

mkihr

What means "using in parallel"? It is installed and configured. But not used. And if I see that right it only connects to the robot when it is active in the foreground.

Heggeg

Wie sieht hier der aktuelle Stand aus?

Kilitom

Hi,

hab das Modul etwas modifiziert, da es ab und zu den Usernamen und Passwort vom Roomba nicht mehr findet. Siehe Anhang. Viel Spaß beim Testen.

Grüße
Tom

oneofmagi

Hallo zusammen,

habe das Modul mit einem Irobot Roomba 895 ausprobiert. Dieser hat ebenfalls ein eingebautes WLAN Modul. Leider habe ich (ebenfalls?) das Problem, dass immer wieder ein Connect/Disconnect stattfindet:


2017.12.27 16:46:44 1: 192.168.200.170:8883 disconnected, waiting to reappear (Robbie)
2017.12.27 16:47:44 3: Roomba980: connection=timed-out, ping: 0
2017.12.27 16:47:51 3: Roomba980: connection=connecting
2017.12.27 16:47:51 3: Roomba980: connection=timed-out, ping: 1
2017.12.27 16:47:51 1: 192.168.200.170:8883 reappeared (Robbie)
2017.12.27 16:47:52 3: Roomba980: connection=connected
2017.12.27 16:47:52 1: 192.168.200.170:8883 disconnected, waiting to reappear (Robbie)
2017.12.27 16:47:54 3: Roomba980: connection=connecting
2017.12.27 16:47:54 3: Roomba980: connection=timed-out, ping: 1
2017.12.27 16:47:54 1: 192.168.200.170:8883 reappeared (Robbie)
2017.12.27 16:47:54 3: Roomba980: connection=connected


Nach den Logs sieht es ja zumindest so aus, dass eine Verbindung kurz zustande kommt. Was meint ihr? Hat jemand einen Tipp, was ich noch versuchen könnte / bzw. hat jemand schon einen 895 verbinden können.

Vielen Dank & beste Grüße
Michael

oneofmagi

Hallo zusammen,

vielen Dank für dieses klasse Modul!

Ich kann nun berichten, dass es auch mit dem Roomba 895 funktioniert! Mein obiges Posting hat sich damit erledigt. Ich hatte einen falschen Benutzernamen verwendet.

Für alle Mitleser:
Den Usernamen und das Passwort muss mittels Dorita ermittelt werden. Dieser Vorgang ist hier beschrieben:
https://github.com/koalazak/dorita980/blob/master/README.md#how-to-get-your-usernameblid-and-password

Beste Grüße und noch einmal vielen Dank für dieses coole Modul!

Michael

ducdarky

Hallo zusammen,

bei mir läuft dieses tolle Modul auch zuverlässig mit einem Roomba 895, zumindest Start, Stop, Dock.
Resume und Pause hat er meiner Meinung nach nicht, weil er nur zufällig durch die Gegend fährt. Da ich meinen Roomba über Siri steuern wollte und auch dort den entsprechenden Status sehen wollte, habe ich das Modul für mich so angepasst, dass es noch einen "Off"-Befehl hat, welcher dafür sorgt, dass der Roomba erst "Stop" und danach "Dock" bekommt. Direkt aus dem Betrieb nimmt der "Dock" nicht an bzw. macht ein"Stop" daraus. Vielleicht gibt es ja eine elegantere Methode oder Lösung, aber mit meinen noch ziemlich beschränkten FHEM-Kenntnissen habe ich es nicht anders hinbekommen.
Wenn er nicht in der Basis ist, ist bei Siri der Schalter auf "Ein" und sonst auf "Aus.
Wie seht ihr das? Macht es Sinn, so einen "Off"-Befehl in das Modul zu integrieren oder gehört so etwas da nicht hinein?

Viele Grüße
Steffen

Det20

Läuft inzwischen gut mit dem 980, vielen Dank für die Arbeit!
Ich hätte allerdings noch einen Wunsch: Es wäre schön, wenn ich das Modul über Nacht mittels "disabled" temporär deaktivieren kann. Oder habe ich etwas übersehen?

Thorsten Pferdekaemper

Zitat von: Det20 am 05 März 2018, 20:34:47
Ich hätte allerdings noch einen Wunsch: Es wäre schön, wenn ich das Modul über Nacht mittels "disabled" temporär deaktivieren kann. Oder habe ich etwas übersehen?
Hi,
kannst Du das ggf. auch mit "set ... disconnect" bzw "set ... connect" machen?
Gruß,
    Thorsten
FUIP

Det20

Ne, da tut sich nix, bleibt leider online.