Hallo.
Da es für meinen Roomba 772 wohl kein ThinkingCleaner Modul geben wird, habe ich mir ein RooWifi (v2) besorgt (Danke an hermannj!).
Das war dann auch der langersehnte Startschuss um ein eigenes FHEM Modul zu schreiben ( aktuell gibt es wohl nur ein ThinkingCleaner Modul und eine Konfig für HTTPMOD).
Daher hier, mein erstes Modul, erste Version!
Eigentlich war geplant komplett auf das CPAN Perl Modul von Michael Ratliff, modifiziert von daduke, zu setzen aber leider lassen sich die (80!) Sensoren die man dort bekommt nicht ohne wakeup abrufen.
Heisst, für jedes Update der Sensoren hätte der Roomba gepiepst.
Daher kommen die Sensoren/Readings aus dem roomba.json.
Hier die Fakten, v0.93:
Perl module (die möglicherweise fehlen z.B. mit #> cpan -i <packet> nachinstallieren):
YAML::Tiny
LWP::Simple
Installation:
Beide Files in /FHEM kopieren, dann reload 98_ROOWIFI ausführen
Bei update auch "reload Roowifi.pm" ausführen!
Define:
define <devicename> ROOWIFI <IP> [update-interval]
Features:
Batterie in Prozent
automatisches Aufwecken sollte Roomba einschlafen
Credentials von RooWifi Modul werden unterstützt (optional auch leer wenn im RooWifi auch leer)
konfigurierbares Update Interval (default 120sek)
konfigurierbare Fahrdistanz für leaveDock
ChargingState mit Text
Internal mit Zeitstempel des letzten Reinigungslaufs (LASTCLEAN)
default attr verbose 1 & event-on-change-reading *
Kommunikation non-blocking
Set/Commands:
"clean" - started das normale Clean Programm
"stop" - stoppt den Roomba da wo er ist
"dock" - lässt Roomba nach dem Dock suchen
"leaveDock" - fährt den Roomba zurück, und damit aus dem Dock, Distanz per Attribut konfigurierbar
"update" - aktualisiert Sensoren (Readings) und status
Readings:
Angle
BumpsWheeldrops
Buttons
Capacity
Charge
ChargingState
CliffFrontLeft
CliffFrontRight
CliffLeft
CliffRight
Current
DirtDetector-Left
DirtDetector-Right
Distance
MotorOvercurrents
RemoteOpcode
Temperature
VirtualWall
Voltage
Wall
batteryPercent
state
State:
"Initialized" - modul initialisiert
"disabled" - device disabled
"offline" - Roowifi Modul offline / timeout
"error" - Modulfehler, sollte nicht passieren
"cleaning" - Roomba ist gerade am saugen
"searchingDock" - Roomba sucht sein Dock (mag beim nächsten Sensor update cleaning/idle werden)
"leaveDock" - Roomba ist dabei sein Dock zu verlassen bzw. hat sein Dock verlassen (wird zu idle beim nächsten update)
"idle" - Roomba ist nicht im Dock aber saugt auch nicht
"charging" - Roomba ist in seiner Ladestation, siehe Reading ChargingState für Details
"sleeping" - Roomba ist unterwegs eingeschlafen (Zombie)
"jsonError" - sollte roomba.json unvollständig sein
custom Attribute:
"user" - user für RooWifi
"password" - password für RooWifi
"leaveDock" - Entfernung für set <devive> leavedock, mm/s
"disable" - device deaktivieren
"preCleanCmd" - optional, zwei Werte, wie weit der Roomba zurückfährt & Verzögerung in Sekunden. Default "80 2"
Mein RooWifi Modul habe ich ins innere verfrachtet. Wenn Interesse besteht teile ich gern die Bilder und Details vom Umbau die ich gemacht habe.
Wäre schön wenn ein paar Roomba Piloten das Modul testen würden.
Ein Grund das umfassende Perl Modul zu nehmen, anstatt nur die Urls zum Bedienen, war die Tatsache dass sich zukünfigt komplexere Fahrten abbilden lassen.
Als Idee z.b. per Attribute komplexere Fahrten definieren (30 rückwärts, 20° links, 40rückwärts usw) die der Roomba dann auf Kommando absolviert um zum Beispiel unterm Schrank hervorzukommen oder eine Rampe über eine Treppenstufe hinweg zu finden etc.
Also immer her mit euren Ideen :)
Und über Kritik & Feedback zum Modul würde ich mich auch freuen da es mein erstes FHEM Modul ist (auch wenn unsere Developer sicher besseres zu tun haben als Code-reviews).
grüße
Mike
Danke an:
- daduke für Input via PN/Email
- herrmannj für das RooWifi Modul
- Rudolf und dem restlichen Core-Team für FHEM
90;98-3 PM-5
91;98-23 PM-31
Und ich sitze seit Tagen an einem Modul für den Roomba, hätte ich früher wissen sollen 8)
VG
Frank
Funktioniert! Hat natürlich auch das Defizit das der Roomba nicht sofort startet, sondern erst geweckt werden muss. Ich hatte bei mir ein sleep 3 und dann den cleaning Befehl noch mal gesendet. In´s Modul hab ich heute nicht mehr gesehen, habe die letzten 4 Tage dran gesessen und kann iMo keine subs mehr sehen ;)
VG
Frank
Loggt gerne:
ROOWIFI: (Roomba) internal interval timer set to call GetUpdate again in 60 seconds
2016.04.03 23:22:34 3: ROOWIFI: (Roomba) is charging
VG
Frank
Hi Frank.
Hab leider den anderen Thread nicht genug verfolgt während Ich am coden war, sonst hätte ich schon vorher angekündigt. Sorry!
Um ehrlich zu sein wollte Ich noch 2-3 Wochen testen. Habe aber dann gestern gesehen dass gerade viel zu RooWifi geschrieben wird und mich für ein "early-release" entschieden, genau um sowas zu vermeiden.
Ich habe die Version oben noch mal aktualisiert (0.0.6).
- Commands sollten einen tick schneller gehen wobei sich ein kleines wakeup-delay nicht vermeiden lässt.
- logging mit Abhängigkeit zum Modul und nicht global (bei ist wohl global:verbose > 1)
- default Attribute für verbose und event-on-change-reading
Damit sollte es etwas schneller sein und by-default weniger "talky".
Grüße,
Mike
Hatte mir das Modul gerade mal vorgenommen, teste jetzt mit der neuen Version weiter. Bei mir hatte ich das wecken über ein GetFileFomURL gemacht.
P.S. hast du die neue Version oben, im ersten Post?
VG
Frank
Hi Frank.
Ja, werde das Modul immer im ersten Post plegen (bis es ins SVN kommt falls erwünscht). Ist wohl gang und gäbe hier :)
lg
mike
Joh, richtig :)
Zitat(bis es ins SVN kommt falls erwünscht)
Ich denke das es einige interessierte User gibt und das Modul schon ins SVN sollte.
VG
Frank
tolles Modul, klasse!!,
unbedingt ins SVN.
Gerhard
Hi.
Habe gerade einen Bug behoben wenn das Device disabled ist und einen weiteren Error-Catch eingebaut.
Ich teste das Modul auf 2 FHEM Installationen gleichzeitig und das RooWifi Modul ist eben offline gegangen (Ursache unbekannt).
Auf einer Installation ging das Device "offline" wie erwartet, die andere warf einen JSON Fehler. Vermutlich war der HTTP request unvollständig.
Damit er zukünftig nicht stolpert gibts ein "try-catch" für diese Randbedingung und einen neuen State "jsonError".
lg
mike
ZitatRooWifi Modul ist eben offline gegangen (Ursache unbekannt)
Passiert bei mir auch ab und zu. Das Modul hat Version 2.
VG
Frank
ich hatte das früher auch immer wieder. Hab nun den reset-Taster abgelötet und seither ist es seit 5 Wochen permament am Netz...
-d
Eine kurze Frage zu dem Attr "leaveDock - leave the dock for a given distance", Angabe in cm oder m?
ZitatHab nun den reset-Taster abgelötet
Ich habe den "Bügel" vom Roomba in Verdacht, der liegt ja genau auf dem Button.
VG
Frank
Hi Frank.
Gute Frage, ich habe aus der Doku die "mm/s" übernommen (siehe erster Post).
ZitatMoves robot in reverse at $velocity in (mm/s).
Der Default Wert (100) fährt ca 20cm. :o
Ich nehm es mal als doc-bug auf und versuche korrekte Werte zu ermitteln und die "Device Help" entsprechend zu korrigieren/erweitern.
Zum offline-Thema: Bei mir ging es dann einfach wieder nachdem ich den "CLEAN" Knopf 1x gedrückt habe. Ich musste das Modul nicht neu konfigurieren, schliesse einen "echten" Reset daher aus (und das Modul ist bei mir eingebaut, da kommt an den Reset Knopf nix ran).
lg
mike
OT
ZitatIch musste das Modul nicht neu konfigurieren, schliesse einen "echten" Reset daher aus
Richtig, das Verhalten von meinem Modul war genau so, ich musste auch nichts neu konfigurieren, aufgefallen ist es mir nur weil die LED nicht mehr geblinkt hat und der Plot für den Akku abgerissen war.
VG
Frank
Das Modul bringt eine Perl Warnung in Zeile 412
2016.04.09 18:56:21 3: stacktrace:
2016.04.09 18:56:21 3: main::__ANON__ called by fhem.pl (4003)
2016.04.09 18:56:21 3: main::readingsBulkUpdate called by ./FHEM/98_ROOWIFI.pm (412)
2016.04.09 18:56:21 3: main::ROOWIFI_GetUpdate called by fhem.pl (2763)
2016.04.09 18:56:21 3: main::HandleTimeout called by fhem.pl (588)
2016.04.09 18:57:21 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4003.
2016.04.09 18:57:21 3: stacktrace:
2016.04.09 18:57:21 3: main::__ANON__ called by fhem.pl (4003)
2016.04.09 18:57:21 3: main::readingsBulkUpdate called by ./FHEM/98_ROOWIFI.pm (412)
2016.04.09 18:57:21 3: main::ROOWIFI_GetUpdate called by fhem.pl (2763)
2016.04.09 18:57:21 3: main::HandleTimeout called by fhem.pl (588)
2016.04.09 18:58:21 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4003.
2016.04.09 18:58:21 3: stacktrace:
2016.04.09 18:58:21 3: main::__ANON__ called by fhem.pl (4003)
2016.04.09 18:58:21 3: main::readingsBulkUpdate called by ./FHEM/98_ROOWIFI.pm (412)
2016.04.09 18:58:21 3: main::ROOWIFI_GetUpdate called by fhem.pl (2763)
2016.04.09 18:58:21 3: main::HandleTimeout called by fhem.pl (588)
VG
Frank
Ich überlege gerade ob es eine Möglichkeit gibt die zurückgelegte Wegstrecke auszuwerten, siehst du da einen Weg?
VG
Frank
Hi Frank.
Danke für den Bugreport, arbeite gerade an einem Update.
Zeile 412 ist der Aufruf von "readingsBulkUpdate". Da muss ich reinsehen bei welchem Sensor das Update fehlschlägt. Scheint ja nicht alle zu betreffen.
Leider gibt es noch ein weiteres Problem. Manchmal liefert der Roomba nur 0 Values (bei mir gerade das erste mal kurz bevor "please recharge roomba"). In diesem Fall crasht meine Batterie-Prozent-Berechnung weil Teilung-durch-0.
Immerhin ein einfacher Fix.
Wegstrecke müsste gehen wenn wir auf die Sensoren aus der Perl Klasse anstatt des roomba.json setzen.
Das erfordert jedoch ein aufwecken. Das einzubauen (z.b. mit Attribut für "verbose-but-wakeup-sensors") ist bereits geplant.
Ich überlege mir mal wie man z.b. 1x Täglich verbose-Sensoren aber alle 2min json-Sensoren abfragen kann.
Dann bekäme man zwar alle Infos aber weckt den Roomba nicht für jedes kleine Statusupdate.
Danke für den Input :)
Achso: Bezüglich dem leaveDock, bei dem Wert handelt es sich um die Geschwindigkeit der Räder pro Sekunde - und offensichtlich für 1 Sekunde.
Da muss ich mir noch mal die RAW commands ansehen denn persönlich würde ich erwarten ich definiere die Geschwindigkeit und er fährt bis ich stop sage.
Allerdings fährt er für 1 Sekunde in der vorgegebenen Geschwindigkeit, das is so nicht dokumentiert.
lg
mike
Hallo, es gibt noch einen kleinen bug: ist disable einmal auf 1 gesetzt, lässt sich das Attribut nicht mehr auf 0 setzen (wahrscheinlich nur im Webif, der Roomba lässt sich mit disable 1 zurück auf 0 trotzdem bedienen). Intern scheint disable 0 also "anzukommen", ist im Webif nur nicht sichtbar.
Und noch in readingsSingleUpdate Zeile 159
2016.04.10 19:06:24 1: PERL WARNING: Use of uninitialized value $attrValue in string eq at ./FHEM/98_ROOWIFI.pm line 159
VG
Frank
Hi.
Hat einen Moment gedauert aber ich glaube ich habs nun. Du hast das Attribut nicht auf 0 gesetzt sondern gelöscht, korrekt?
Das wurde im Code tatsächlich nicht berücksichtigt und der Logfile Aufruf vom "del" cmd bringt dann uninit value.
Habs nun etwas ausgebaut so dass auf 0 setzen oder löschen funktioniert und auch automatisch ein Update startet.
Dann gibts ein paar Verbesserungen bei nicht-Funktion vom Roowifi (z.b. alle Werte werden mit 0 gelistet).
Da macht bricht er das Update ab, schickt ein wakeup und scheduled ein neues Update.
Aktuelle Version 0.0.8 ist im ersten Thread!
Zu dem anderen Feedback:
Die Perlwarnings aus readingsBulkUpdate kann ich leider nicht reproduzieren. Tritt das bei dir permanent auf?
Habe einen zusätzlichen Log Aufruf eingebaut (ab verbose 3). Sollte es bei dir permanent/reproduzierbar sein, magst du mal verbose 3 setzen und das im Log verfolgen?
Danke!
Die Sache mit der Wegstrecke ist schwieriger als gedacht, da sowohl im JSON als auch in der Lib auch negativ Wege geloggt werden.
Die Lib kann zusätzlich noch SensorListener, damit lässt sich vielleicht was bauen dass sehr granular Daten erfasst, die sich eventuell auswerten lassen.
grüße,
Mike
Werde weiter testen :)
ZitatDie Perlwarnings aus readingsBulkUpdate
werde ich im Auge behalten, habe z.Zt. keine Daten im Log.
P.S. disable 1|0 funktioniert jetzt !
VG
Frank
Möchte hier noch ein kleines Config Snippet teilen.
Habe mir zwei Logfiles definiert, eins mit "allem", ein weiteres nur mit dem state:
define FileLog_roomba FileLog ./log/roomba-%Y-%m.log roomba.*
define FileLog_roomba_state FileLog ./log/roomba-state-%Y-%m.log roomba.cleaning.*|roomba:charging.*|roomba:disabled.*|roomba:idle.*|roomba:jsonError.*|roomba:offline.*|roomba:sleeping.*|roomba:update.*
und beide Logfiles in einem Chart kombiniert:
# Created by FHEM/98_SVG.pm, 2016-04-14 10:45:19
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics ("offline" 1,"update" 2,"sleeping" 3,"idle" 4,"cleaning" 5,"charging" 6)
set y2tics
set grid ytics
set ylabel ""
set y2label ""
set yrange [0:7]
set y2range [0:3000]
#FileLog_roomba_state 3:roomba.*:0:$fld[2]=~"offline"?1:0
#FileLog_roomba_state 3:roomba.*:0:$fld[2]=~"update"?2:0
#FileLog_roomba_state 3:roomba.*:0:$fld[2]=~"sleeping"?3:0
#FileLog_roomba_state 3:roomba.*:0:$fld[2]=~"idle"?4:0
#FileLog_roomba_state 3:roomba.*:0:$fld[2]=~"cleaning"?5:0
#FileLog_roomba_state 3:roomba.*:0:$fld[2]=~"charging"?6:0
#FileLog_roomba 4:roomba.Charge\x3a:0:
plot "<IN>" using 1:2 axes x1y1 title 'offline' ls l1fill lw 1 with steps,\
"<IN>" using 1:2 axes x1y1 title 'update' ls l1fill lw 1 with steps,\
"<IN>" using 1:2 axes x1y1 title 'sleeping' ls l1fill lw 1 with steps,\
"<IN>" using 1:2 axes x1y1 title 'idle' ls l1fill lw 1 with steps,\
"<IN>" using 1:2 axes x1y1 title 'cleaning' ls l1fill lw 1 with steps,\
"<IN>" using 1:2 axes x1y1 title 'charging' ls l1fill lw 1 with steps,\
"<IN>" using 1:2 axes x1y2 title 'charge' ls l0 lw 2 with lines
Nun kann ich den historischen Status leicht verfolgen, wann er z.b. sleeping oder offline ist. Die Batterieladung ist nur nice-to-have :)
Im Screenshot war er erst im Dock, charging, ging dann saugen (Batterie mit Abwärtstrend) allerdings zwischendurch 2x offline.
Vielleicht ist das für jemand anders auch interessant bzw. möchte seine Config/Plots teilen.
lg
mike
ps: weiß jemand wie man die Captions (Text im Chart, grün) komplett deaktivieren kann?
Hi Mike,
könntest du Bitte Bilder und Details deines Umbau (bzw. Einbaus ;) des Roowifi Moduls posten?
Dank Dir
Chris
Hi Chris.
Klar, hier kurz und knapp was ich gemacht habe + ein paar Bilder:
- graue Blende abheben, die ist geklipst wobei es 2 Nasen gibt (Pfeil). Da etwas aufpassen. Wenn das nicht geht, Schritt 3 vorziehen. Schwarze Blende abheben, die ist nur geklipst
- Schrauben entfernen, auch die unter dem Griff
- umdrehen und alle Schrauben vom Front-Bumper entfernen, wieder umdrehen, nun sollte sich der Bumper nach oben abheben lassen, im zweiten Bild sieht man auch wo was Modul Platz hat.
- Dann die Schrauben vom Mainboard lösen. Ich hab das Board nicht komplett ausgebaut sondern nur die oberen Kabel gelöst und das Board umgeklappt
- Kabel an die Unterseite des Ports löten, RooWifi Modul verbinden und verstauen
- ...und wieder alles zusammen bauen
Man könnte noch ein Loch ins Gehäuse bohren um von aussen an den reset-switch zu kommen.
Mein Modul hat sich bisher 1x nicht mit meinem WLAN verbunden und sein eigenes default-WLAN aufgemacht. Hab es aber einfach wieder neu konfiguriert (ohne reset).
grüße
mike
Vielen Dank Mike, werde mich die Tage ans Einbauen wagen ;)
YAML::Tiny und LWP::Simple konnte ich nun installieren. Leider bekomme ich aber im Modul nur einen "offline" State. Mach ich noch irgendwas falsch ;)
Grüße
Chris
Edit:
Internals:
CFGFN
DEF 192.168.77.93 123
IPADDR 192.168.77.93
Interval 123
NAME ROOMBA
NR 1868
STATE offline
TRIGGERTIME 1462293153.72279
TRIGGERTIME_FMT 2016-05-03 18:32:33
TYPE ROOWIFI
VERSION 0.0.8
Readings:
2016-05-03 18:30:30 state offline
Attributes:
event-on-change-reading *
room TOE
userattr
verbose 1
edit2:
gibt noch einige Warnings im Log
2016.05.03 18:14:53.673 3: ROOWIFI: (ROOMBA) defined ROOMBA at 192.168.77.93 with interval set to 123
2016.05.03 18:14:53.673 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4030.
2016.05.03 18:15:39.250 1: ROOWIFI: (ROOMBA) connection failed
2016.05.03 18:15:45.968 1: ROOWIFI: (ROOMBA) connection failed
2016.05.03 18:18:51.404 1: ROOWIFI: (ROOMBA) connection failed
2016.05.03 18:18:55.465 1: ROOWIFI: (ROOMBA) connection failed
2016.05.03 18:20:43.500 1: PERL WARNING: Subroutine ROOWIFI_Initialize redefined at ./FHEM/98_ROOWIFI.pm line 89.
2016.05.03 18:20:43.501 1: PERL WARNING: Subroutine ROOWIFI_Define redefined at ./FHEM/98_ROOWIFI.pm line 102.
2016.05.03 18:20:43.501 1: PERL WARNING: Subroutine ROOWIFI_Undef redefined at ./FHEM/98_ROOWIFI.pm line 143.
2016.05.03 18:20:43.501 1: PERL WARNING: Subroutine ROOWIFI_Attr redefined at ./FHEM/98_ROOWIFI.pm line 154.
2016.05.03 18:20:43.502 1: PERL WARNING: Subroutine ROOWIFI_Connect redefined at ./FHEM/98_ROOWIFI.pm line 190.
2016.05.03 18:20:43.503 1: PERL WARNING: Subroutine ROOWIFI_Set redefined at ./FHEM/98_ROOWIFI.pm line 225.
2016.05.03 18:20:43.503 1: PERL WARNING: Subroutine ROOWIFI_DoClean redefined at ./FHEM/98_ROOWIFI.pm line 285.
2016.05.03 18:20:43.503 1: PERL WARNING: Subroutine ROOWIFI_DoDock redefined at ./FHEM/98_ROOWIFI.pm line 303.
2016.05.03 18:20:43.504 1: PERL WARNING: Subroutine ROOWIFI_DoleaveDock redefined at ./FHEM/98_ROOWIFI.pm line 321.
2016.05.03 18:20:43.504 1: PERL WARNING: Subroutine ROOWIFI_DoStop redefined at ./FHEM/98_ROOWIFI.pm line 339.
2016.05.03 18:20:43.505 1: PERL WARNING: Subroutine ROOWIFI_GetUpdate redefined at ./FHEM/98_ROOWIFI.pm line 357.
2016.05.03 18:25:51.671 1: ROOWIFI: (ROOMBA) connection failed
2016.05.03 18:27:57.690 1: ROOWIFI: (ROOMBA) connection failed
2016.05.03 18:33:56.897 1: ROOWIFI: (ROOMBA) connection failed
2016.05.03 18:33:59.354 1: ROOWIFI: (ROOMBA) connection failed
2016.05.03 18:34:01.506 1: ROOWIFI: (ROOMBA) connection failed
Hi Chris.
Ich gehe mal davon aus, dass die IP Adresse stimmt ;)
Hast du für das Webinterface vom RooWifi username/passwort ein hinterlegt?
Die Warnungen kommen davon, dass du das Modul offensichtlich neu geladen hast (...redefined..)
lg
mike
Habe die Roowifi Hardware kurz abgenommen und wieder aufgesteckt. Nun funktionierts :)
Kann man die Abfragen im Modul evtl. nonBlocking machen. Sollte der Roowifi im Netzwerk nicht mehr Verfügbar sein, gibt es in FHEM kurze Freezes von ca. 2-3 Sekunden, die das System blockieren.
z.B.
2016.05.03 19:28:09.801 1: Perfmon: possible freeze starting at 19:28:07, delay is 2.801
2016.05.03 19:30:17.798 1: Perfmon: possible freeze starting at 19:30:15, delay is 2.798
...
edit:
setze ich im Modul ein Kommando ab, z.B. clean, gibt es ebenfalls kurze FHEM Freezes (und somit blockiert das gesamte System). Kann man dies evtl. auch verhindern?
2016.05.03 20:01:59.075 1: Perfmon: possible freeze starting at 20:01:57, delay is 2.075
2016.05.03 20:02:45.476 1: Perfmon: possible freeze starting at 20:02:44, delay is 1.476
Dank Dir,
Chris
Hi Chris.
Danke für dein Feedback, kann ich für Steuerungsbefehle so nachvollziehen und konnte auch finden wo/warum.
Werde mir die nötigen Änderungen die Tage ansehen und testen.
"back to the drawing board" :)
lg
mike
klasse, dank dir Mike.
Die normalen Intervall-Abfragen erzeugen ein Freeze von 2-3 Sekunden, sobald z.B. das Netzwerk oder der RooWifi down ist. Bei Netzwerkausfall bekommt man so alle 2 Minuten Freezes (je nach Intervall). Evtl. kann man diese Abfragen für FHEM Nonblocking setzen.
Grüße
Chris
Hi.
Hab das Modul eben umgebaut und nutze nun das Blocking von Rudi für jede Kommunikation.
Ein delay (kein freeze!) haben wir bei Befehlen leider immer da wir den Roomba erst "wecken", kurz warten, und dann den Befehl schicken. Das könnte man sich eventuell sparen wenn er im Dock war, muss ich aber erst noch evaluieren. Das war übrigens einer der Punkte wo der freeze her kam.
Version 0.0.9 ist im ersten Post aktualisiert.
happy testing ;)
mike
Danke für das Turbo-Update :D
Habs eben installiert und die Freezes sind bisher weg. Klasse Arbeit!
Grüße
Chris
Hab es auch eben installiert.
Funktioniert :) Super, vielen Dank.
Allerdings ist mir eben aufgefallen das als State charging angezeigt wird obwohl er gerade neben meinen Füßen spazieren fährt.
Scheint er so anzuzeigen nachdem ich einmal den Raum gewechselt habe und wieder auf den Roomba bin.
Hi.
Oha, bleibt das so wenn du "set roomba update" startest?
Der state ist natürlich nur eine Moment-Aufnahme. D.h. wenn er im Dock ist, mit state charging, und man ihn per Hand auf Reinigung schickt, dann dauert es max 2min bis der state cleaning ist (sein sollte).
Bei einem Steuerbefehl wird ein Update kurz später losgetreten. Dock -> set roomba clean -> sollte also innerhalb 4-5 Sekunden "cleaning" anzeigen.
Wenn das nicht hilft, zeig mal dein roomba.json während er saugen ist.
lg
mike
ZitatOha, bleibt das so wenn du "set roomba update" startest?
ja, bleibt so. siehe Bild 2.jpg
ZitatDer state ist natürlich nur eine Moment-Aufnahme. D.h. wenn er im Dock ist, mit state charging, und man ihn per Hand auf Reinigung schickt, dann dauert es max 2min bis der state cleaning ist (sein sollte).
State bleibt in diesem Fall auch auf charging. Siehe bild 1.jpg
ZitatBei einem Steuerbefehl wird ein Update kurz später losgetreten. Dock -> set roomba clean -> sollte also innerhalb 4-5 Sekunden "cleaning" anzeigen.
Ja. unter internals aktualisiert er auf cleaning. Allerdings steht bei Readings weiter state charging. Und ich vermute das er auch diese Information nutzt falls ich den Raum wechsle und danach wieder den Roomba aufrufe.
ZitatWenn das nicht hilft, zeig mal dein roomba.json während er saugen ist.
Vielleicht ne doofe Frage. Wo finde ich die?
Wie weckt ihr den roomba eigentlich auf? Welchen befehl schick ihr da? Ich hatte mit auf mysensors Basis gebaut, hat funktioniert - allerdings schläft der roomba ein und war dann nicht mehr erreichbar....
Hi.
Zitat von: Blakharaz am 06 Mai 2016, 17:57:56
Ja. unter internals aktualisiert er auf cleaning. Allerdings steht bei Readings weiter state charging. Und ich vermute das er auch diese Information
Ich checks noch nicht ganz.. Der STATE bei Internals wird über den exakt gleichen Code aktualisiert wie das Reading. Das ist 1 operation im Code.
Bei mir verhält es sich so dass das Reading aktualisiert wird (automatisch oder set update), dabei wir der Timestamp rot, aber das Internal wird nicht automatisch/live aktualisiert. Dazu muss ich schon einen Browserrefresh machen.
Zitat von: Blakharaz am 06 Mai 2016, 17:57:56
Vielleicht ne doofe Frage. Wo finde ich die?
http://<ip-vom-roowifi>/roomba.json
Brauch ich aber eigentlich nicht mehr, das oben beantwortet schon die gestellte Frage ;)
Zitat von: Will am 06 Mai 2016, 20:34:04
Wie weckt ihr den roomba eigentlich auf? Welchen befehl schick ihr da? Ich hatte mit auf mysensors Basis gebaut, hat funktioniert - allerdings schläft der roomba ein und war dann nicht mehr erreichbar....
Hi Will.
Wenn der Roomba einschläft kannst du per http://<ip-vom-roowifi>/rwr.cgi?exec=1 einen init schicken und den Roomba aufwecken. Dabei piepst er 1x.
Welchen Befehl überträgt roowifi.com dann an den roomba (also über seriell), weißt du das?
Sent from my SGP611 using Tapatalk
"Wissen" tue ich es nicht, aber vielleicht hilft dir das:
Der Roomba hat 4 modes, 0-off, 1-passive, 2-save, 3-full
Laut doku muss man falls er off ist (Mode 0) ihn erstmal in passive Mode schicken (opcode 128). Safe ist 131, Full 132.
Zitat... Roomba is in "off" mode. When Roomba is powered on, it is in Passive mode. ... Once the Roomba is in Passive mode, a mode command for one of the three operating modes can be sent to change the operating mode...
lg
mike
Danke. Dann probier ich das mal....mein sketch hat immer funktioniert, bis der roomba eingeschlafen ist....
Zitat von: jmike am 06 Mai 2016, 21:24:32
Hi.
Ich checks noch nicht ganz.. Der STATE bei Internals wird über den exakt gleichen Code aktualisiert wie das Reading. Das ist 1 operation im Code.
Bei mir verhält es sich so dass das Reading aktualisiert wird (automatisch oder set update), dabei wir der Timestamp rot, aber das Internal wird nicht automatisch/live aktualisiert. Dazu muss ich schon einen Browserrefresh machen.
http://<ip-vom-roowifi>/roomba.json
Brauch ich aber eigentlich nicht mehr, das oben beantwortet schon die gestellte Frage ;)
Ich habe mir jetzt noch mal die roomba.json und 98_ROOWIFI.pm angeschaut.
Sehe ich das richtig das er laut 98_ROOWIFI.pm ab Zeile 426 den Status auf Cleaning nur dann setzt wenn der Charging_state = 0 ist?
Wenn ja. Dann erreiche ich laut der json nie diesen Status. Mein Roomba geht bei der Reinigung auf Status 4 was laut dieser Tabelle
http://www.quarcservice.com/ReleaseNotes/files/roomba_sensor_request_block.html (http://www.quarcservice.com/ReleaseNotes/files/roomba_sensor_request_block.html)
einfach nur der Status "Waiting" und nicht "Not Charging" ist.
Sind die Werte Roomba Serien abhängig? Ich habe einen aus der 500er Serie
Edit:
OK. Ich habe es einfach getestet und die 0 auf 4 geändert und zack er zeigt es korrekt an.
Also vielleicht doch Versions abhängig
Hi.
Also dein Charging State geht auf 4 (Waiting) während dein Roomba am saugen ist?
Meiner geht auf 0 (not charging) und der Code prüft erst dann, also wenn Charging State 0 ist, ob er mehr Strom zieht als 500mA was wiederum cleaning bedeutet.
Mal überlegen ob ich die Reihenfolge der IF conditions ändere oder auf State 4 eingehe.
Wenn dein Test erfolgreich war ist die Sache ja eigentlich klar.
lg
mike
ZitatAlso dein Charging State geht auf 4 (Waiting) während dein Roomba am saugen ist?
Stimmt
ZitatMeiner geht auf 0 (not charging) und der Code prüft erst dann, also wenn Charging State 0 ist, ob er mehr Strom zieht als 500mA was wiederum cleaning bedeutet.
Die 500mA überprüfung funktioniert auch einwandfrei. Er zeigt zwar obwohl er schon am Saugen ist und laut JSon mehr als 500mAH gezogen werden erst ein kurzen Status idle an und wechselt beim nächsten update aber auf Clean
ZitatMal überlegen ob ich die Reihenfolge der IF conditions ändere oder auf State 4 eingehe.
Ich habe den Code versuchsweise auf
if($sensors{'ChargingState'} ne 4 && $sensors{'ChargingState'} ne 0){
geändert. scheint zu funktionieren. Ich kenne mich mit Perl nicht wirklich aus und bin nicht sicher ob das richtig ist.
Hab aber keine Ahnung was der Status 4 (Waiting) eventuell bei Euch für eine Auswirkung haben könnte.
ZitatWenn dein Test erfolgreich war ist die Sache ja eigentlich klar.
Ja. funktioniert
Es gibt da noch einen kleinen Fehler: event-on-change-reading steht per default auf *, dass müsste aber .* sein, gibt sonst eine Meldung im Log.
VG
Frank
Ah, stimmt.
Danke Frank, wird beim nächsten Update mit eingepflegt.
gruß
mike
Hallo zusammen,
bin gerade am testen und bekomme folgende Meldung im Log:
ROOWIFI: (Roomba) JSON Error: unexpected end of string while parsing JSON string, at character offset 495 (before "(end of string)") at ./FHEM/98_ROOWIFI.pm line 476.
vg Patrick
Hallo Patrick.
Spannend!
An der Stelle "teste" ich das empfangene JSON. Eigentlich sollte der Code dort gar nicht abrechen. Wenn überhaupt auf 487.
Ursache ist, dass das Modul das JSON nicht dekodieren kann. Also RooWifi non-konforme JSON Daten sendet!
Anscheinend waren meine Tests zu dem Thema nicht ausreichend.
Ist das Problem persistent? Kannst du mal das <roowifi>/roomba.json hier posten?
lg
mike
Moin Moin!
Cooles Modul, leider läuft es bei mir nicht. Bekomme folgendes im Log:
2016.06.21 21:43:54.759 5: ROOWIFI: (Robbie) set Robbie clean
2016.06.21 21:43:54.786 3: ROOWIFI: (Robbie) try to connect to robbiedersauger.springfield.bacanol.de
2016.06.21 21:43:54.788 3: ROOWIFI: (Robbie) connection object built, initializing
2016.06.21 21:43:54.791 5: ROOWIFI: (Robbie) set Robbie ?
2016.06.21 21:43:54.792 5: ROOWIFI: (Robbie) set Robbie ?
2016.06.21 21:43:54.894 3: ROOWIFI: (Robbie) initialized
2016.06.21 21:43:54.903 5: ROOWIFI: (Robbie) set Robbie ?
2016.06.21 21:43:54.905 5: ROOWIFI: (Robbie) set Robbie ?
2016.06.21 21:43:54.908 1: ROOWIFI: (Robbie) connection failed
und kurz danach dann:
2016.06.21 21:43:59.764 3: ROOWIFI: (Robbie) internal interval timer set to call StartUpdate again in 120 seconds
2016.06.21 21:43:59.796 3: ROOWIFI: (Robbie) GetUpdate started
2016.06.21 21:43:59.909 3: ROOWIFI: (Robbie) seems to be offline
2016.06.21 21:43:59.920 3: ROOWIFI: (Robbie) ROOWIFI_FinishUpdate start
2016.06.21 21:43:59.940 5: ROOWIFI: (Robbie) set Robbie ?
2016.06.21 21:43:59.943 5: ROOWIFI: (Robbie) set Robbie ?
2016.06.21 21:43:59.945 5: ROOWIFI: (Robbie) set Robbie ?
2016.06.21 21:43:59.947 3: ROOWIFI: (Robbie) ROOWIFI_FinishUpdate error: offline
2016.06.21 21:44:13.526 5: ROOWIFI: (Robbie) set Robbie ?
IP-Adresse, Passwort und User habe ich schon mehrmals überprüft. Auch ein direkter json Aufruf funktioniert einwandfrei.
Die Perl Module liegen auch alle vor.
Hat jemand eine Idee?
Vielen Dank und viele Grüße
Hallo, poste doch mal ein list vom device.
VG
Frank
Hi.
bekommen wir schon hin :)
Hast du in der device definition tatsächlich einen fqdn eingetragen? Was passiert wenn du hier wirklich nur die IP einträgst?
Hostnamen hab ich glaub ich gar nicht getestet...
Zitat von: bacanol am 21 Juni 2016, 21:46:30
2016.06.21 21:43:54.786 3: ROOWIFI: (Robbie) try to connect to robbiedersauger.springfield.bacanol.de
...
2016.06.21 21:43:59.909 3: ROOWIFI: (Robbie) seems to be offline
Der Fehler ist recht eindeutig. FHEM kann den angegeben Host nicht auf Port 80 erreichen, da wird direkt abgebrochen.
also 2 Sachen:
- direkte IP
- im Zweifel mal usernamen und passwort im roowifi leer lassen
lg
mike
Darum hab ich nach dem list vom device gefragt ;)
Das kam mir gleich "spanisch" vor.
VG
Frank
Hier der List:
Internals:
CHANGED
DEF robbiedersauger.springfield.bacanol.de 120
IPADDR robbiedersauger.springfield.bacanol.de
Interval 120
NAME Robbie
NR 697
STATE offline
TRIGGERTIME 1466540039.94973
TRIGGERTIME_FMT 2016-06-21 22:13:59
TYPE ROOWIFI
VERSION 0.0.9
Readings:
2016-06-21 22:12:00 state offline
Attributes:
event-on-change-reading *
icon scene_robo_lawnmower
password roombawifi
room Heizungsraum
user admin
userattr event-on-change-reading icon leaveDock password user verbose
verbose 5
Das mit dem PW und User teste ich mal. Der Name anstatt IP geht zumindest in allen Browsern und via Ping, etc
ZitatDEF robbiedersauger.springfield.bacanol.de 120
nimm da mal die IP Adresse, könnte wetten das es dann funktioniert.
Hm..
Habe gerade noch mal einen Blick reingeworfen.
Bin mir nun doch sicher es liegt am user/pw.
Der IO::Socket::INET funktioniert laut dem Log noch. Der init vom connection Objekt dann nicht mehr.
Da habe ich tatsächlich kein user/passwort implementiert beim check von:
http://'.$self->{address}.'/roomba.json
Der Aufruf wird dein Roowifi blocken bzw. im Browser nach user/pw fragen. Kannst ja mal schauen was curl zurückbringt. Ein "unauthorized" sollte reichen. Wenn überhaupt keine Antwort kommt, hilft user/pw im Roowifi leer machen.
mike
Super Hilfe!! ;)
Es geht nur ohne User und PW bei mir. IP Addr oder FQDN ist das gleiche verhalten.
Prima!! Danke!!
Ok
Sorry, schlecht getestet ;)
Hab das Pw rausgenommen und diesen offline Check erst später hinzugefügt.
Ich werde das bei mir die Tage mal setzen und das Modul entsprechend fixen.
Lg
Mike
Hallo,
ja das Problem tritt immer wieder auf. Hier mein Roomba.json
{
"response": {
"r0": {
"name": "Bumps Wheeldrops",
"value": "0"
},
"r1": {
"name": "Wall",
"value": "0"
},
"r2": {
"name": "Cliff Left",
"value": "0"
},
"r3": {
"name": "Cliff Front Left",
"value": "0"
},
"r4": {
"name": "Cliff Front Right",
"value": "0"
},
"r5": {
"name": "Cliff Right",
"value": "0"
},
"r6": {
"name": "Virtual Wall",
"value": "0"
},
"r7": {
"name": "Motor Overcurrents",
"value": "0"
},
"r8": {
"name": "Dirt Detector - Left",
"value": "0"
},
"r9": {
"name": "Dirt Detector - Right",
"value": "0"
},
"r10": {
"name": "Remote Opcode",
"value": "0"
},
"r11": {
"name": "Buttons",
"value": "0"
},
"r12": {
"name": "Distance",
"value": "0"
},
"r13": {
"name": "Angle",
"value": "0"
},
"r14": {
"name": "Charging State",
"value": "4"
},
"r15": {
"name": "Voltage",
"value": "16253"
},
"r16": {
"name": "Current",
"value": "-250"
},
"r17": {
"name": "Temperature",
"value": "46"
},
"r18": {
"name": "Charge",
"value": "2618"
},
"r19": {
"name": "Capacity",
"value": "2696"
}
}
}
Hi.
Ist auf jeden Fall valides JSON bei dir!
Habe den Fehler mittlerweile auch 2x erhalten. Die Ursache ist mir noch nicht ganz klar, aber ich werde es im Code abfangen.
Ich habe manchmal noch ein anderes Phänomen.
Wenn der Roomba im Dock ist und ein "set roomba clean" ausgeführt wird, passiert einfach nichts. Erst ein zweites "clean" lässt ihn starten.
Wenn er Idled geht es sofort.
Hat das noch jemand anders bzw. kann es als konsistenten Fehler bestätigen?
Fehlt / buggt sonst irgendwas ausser:
- JSON Error 476
- konsistenter Passwort-support
- set-clean-bug beheben
ZitatWenn der Roomba im Dock ist und ein "set roomba clean" ausgeführt wird, passiert einfach nichts. Erst ein zweites "clean" lässt ihn starten.
Kann ich bestätigen, ist bei mir kontinuierlich so. Habe es erst einmal über einen dummy Switch mit notify gelöst, welches mit 3 sec. sleep, zwei mal clean auslöst.
VG
Frank
Hi.
Heute gibts ein (letztes) Update übers Forum bevor das Modul ins SVN kommt und über "update" aktualisiert werden kann.
Ich habe etliches geändert und probiert die letzten Tage. Wollte eigentlich auf URL-only gehen, wird aber eher schlechter als der aktuelle Gateway-Mode.
Auch die Roowifi.pm Klasse wurde geändert, also File nach /FHEM kopieren und "reload 98_ROOWIFI" UND "reload Roowifi.pm" ausführen.
Was gibts neues:
- Logging erweitert/verbessert
- JSON Fehler "entsorgt".
Ich teste den return-JSON um beim parsen nicht FHEM abzuschiessen, falls korrupt. Sollte das fehlschlagen hatte ich in der Vergangenheit die Fehlermeldung des Tests mit ins Log geschrieben. Das war verwirrend. Im Prinzip kann man es zwecks auto-re-schedule vergessen, die native Perl Fehlermeldung gibt es nur noch bei verbose 5.
- clean Command verbessert.
Frank und Ich konnten einen Workaround finden um clean auch direkt aus dem Dock sauber zu starten. Dazu fährt der Roomba ab nun erstmal Rückwärts bevor er zu saugen beginnt.
Die Parameter lassen sich über das Attribut "preCleanCmd" definieren. Default: "80 2", heisst: Geschwindigkeit 80 zurückfahren, 2 Sekunden Delay.
Wenn euch das nicht reicht könnt ihr z.b. mit "200 5" die Fahrt verlängern.
- neues Attribut "nonChargingState"
By Default ist Chargingstate 0 wenn er NICHT läd -> unterwegs. Bei älteren Geräten ist das anscheinend 4.
Das braucht z.b @Blackharaz. "attr nonChargingState 4" und du brauchst den Code nicht ändern.
- default Attribute event-on-change gefixt, webCmd neu definiert
- Credential support (diesmal auch getestet)
Wenn alles läuft mach ich daraus v1.0 und submitte es ins SVN.
Gruß
mike
PM eben gelesen, komme erst morgen dazu, haben heute Besuch und der Roomba steht im WZ ;)
P.S. habe es mir nicht verkneifen können und die Module schnell mal aktualisiert, leider startet mein Roomba mit den defaults gar nicht mehr, es passiert zwar wake up aber er fährt nicht mehr aus dem Dock, habe auf meinem Produktivsystem noch die alte roowifi.pm und die von mir gestern angepasste 98_ROOWIFI.pm, also mit 2 sec sleep und leaveDock 200, damit startet er zuverlässig. Auch das ändern von preCleanCmd auf 200 5 bringt keine Besserung.
VG
Frank
Übersehe ich etwas oder fehlt in der sub der leaveDock Befehl oder verweist $preCleanReverse auf leaveDock? Leider keine Zeit --- Besuch und Frau schon genervt ;)
sub ROOWIFI_DoClean($){
my ( $hash ) = @_;
my $name = $hash->{NAME};
return undef unless my $robot = ROOWIFI_Connect($hash,1);
$robot->setMovementCorrectionMode("robot");
# this is a special hack to solve a non responsive roomba prior cleaning command
my ( $preCleanReverse, $preCleanSleep ) = AttrVal($name,'preCleanCmd','80 2') =~ m/(\d+) (\d+)/;
Log3 $hash, 3, "ROOWIFI: ($name) reverse $preCleanReverse sleep $preCleanSleep";
$robot->reverse($preCleanReverse);
sleep $preCleanSleep;
$robot->clean();
Log3 $hash, 3, "ROOWIFI: ($name) sending roomba to clean";
}
Hi Frank.
Doch, leaveDock nutzt nur $robot->reverse(), den Aufruf mache ich im DoClean direkt.
Das Problem war ein anderes, irgendwie ist mir der $robot->startSafeMode abhanden gekommen...
Version ist aktualisiert.
Danke fürs flotte Testen, ehrlich gesagt steht mein Roomba irgendwo im Arbeitszimmer. Hab nicht mehr drauf geachtet ob er fährt sondern nur das piepsen gehört ;)
Du glücklicher, meiner hat nicht mal mehr gepiepst ;D
Läuft, denke das du es commiten kannst.
VG
Frank
Hallo,
erst mal allen meinen Respekt vor eurer Arbeit an FHEM und allen Erweiterungen/Modulen.
Zur Frage, kann man mit diesem Modul einen ROOMBA der 9xx Serie (integriertes WLAN) steuern, oder muss dafür ein neues Modul geschrieben werden?
Ich habe diese Infos im Netz gefunden. https://github.com/umesan/homebridge-roomba (https://github.com/umesan/homebridge-roomba)
Grüßle
Axel
Hi Axel.
Nein, leider kein Support für Roomba mit integriertem WLAN sondern nur mit RooWifi-Modul nachgerüstete Roombas.
Wenn du mir einen 9xx spendierst, schreib ich ein Modul ;)
grüße
mike
Hallo Mike,
danke für die Info.
Vielleicht zu Weihnachten.. irgendwann.. ;)
Grüßle
Axel
Hallo Mike,
Gratulation zu Deinem Modul! Seit ein paar Tagen besitze ich auch ein RooWifi-Modul, nach einigen Anlaufschwierigkeiten tut es jetzt auch seinen Dienst. Dein Modul hingegen habe ich sofort zum Laufen gebracht!
Gibt es mittlerweile eine Version 1.0 im SVN? Ich konnte dort nämlich leider nichts finden. Ich habe mir die Version 0.93 aus dem ersten Thread installiert. Wäre klasse, wenn Du noch ein paar Features auf Lager hättest...
Grüße
Andreas
SENSATIONELL!!
Funktioniert einwandfrei.
Jetzt kann ich dies innerhalb meines Weckers einbinden, sodass der Staubsauger 1h nach dem Aufstehen anfängt mit reinigen. ;D
Zitat von: biky am 03 November 2016, 22:27:31Zur Frage, kann man mit diesem Modul einen ROOMBA der 9xx Serie (integriertes WLAN) steuern, oder muss dafür ein neues Modul geschrieben werden?
Hi,
ich habe mal damit angefangen, siehe diesen Thread hier:
https://forum.fhem.de/index.php/topic,67632.msg601174.html#msg601174
Gruß,
Thorsten
Hallo, hier passiert ja leider nicht mehr viel.
Ich habe nun ein Roowifi Modul erstanden und die Version 0.93 in FHEM laufen.
Start - Stop - Clean - Dock funktionieren, aber ich bekomme keine Werte aus den Sensoren.
Im Webinterface des roowifi wird aber auch schon nichts nagzeigt. Habe es mit zwei Geräten probiert.
- Roomba 581
- Roomba 651
Ich würde gerne die Sensoren auslesen und z.B. auch dem Roomba einen Fahrweg vorgeben.
Letzteres z.B. wenn er 5-mal gereinigt hat, soll es vor dem Mülleimer parken. Dazu den Fahrweg aus der Docking heraus programmieren.
Kann jemand helfen? Gibt es eine Version 1.0 oder höher?
Dank und Gruß
Thomas
Hi Thomas.
Ich maintaine das Modul schon noch aber ROOWIFI ist gerade mal 6 installiert.
Daher werde ich es wohl auch zukünftig nicht ins SVN packen, macht einfach wenig Sinn denke ich.
Zu deinem Issue, hast du denn auf <ip>/roomba.json überhaupt Werte angezeigt?
Liesst sich in deinem Post eher so, als nicht.
lg
mike
Werde bald die 7. Installation mit einem 780 vornehmen :)
Nach langem Hickhack bei der Bestellung und Lieferung habe ich ein RooWifi in Kanada kaufen können.
Der Hersteller selbst hat leider nicht auf E-Mail reagiert und im Shop bekommt man nur Out-of-Stock aber Lieferdatum März zu lesen und kann nichts weiter machen.
Auch der Link zur App funktioniert nicht.
Und das Modul kommt gänzlich ohne Anleitung...macht insgesamt nicht den tollsten Eindruck...hoffentlich wirds trotzdem funktionieren...
Hallo zusammen, ich habe mir vor kurzem das Roowifi Modul füe meinen 620er gekauft. Leider habe ich erst zu spät gemerkt, dass es die dazugehörige App nicht mehr im Google Playstore gibt. Hat jemand von euch eine Ahnung, woher ich die App noch bekommen kann? Ich würde den Roomba gerne remote starten und auch einen wöchentlichen Putzplan erstellen.
Hier gibts eine Alternative - habe aber keinen Vergleich, wie sich die Funktionalität zur alten verhält:
https://play.google.com/store/apps/details?id=labsi.roowificontroller
Die alte gibts hier auf eigene Gefahr, letztes Update ist aber von 2013:
https://www.apkmonk.com/app/com.pacosal.roomba/
Besten Dank für die Hilfe. Leider verbindet sich mein Roomba einfach nicht mit der App.
Zitat von: NicolasT am 22 Mai 2018, 10:36:48
Besten Dank für die Hilfe. Leider verbindet sich mein Roomba einfach nicht mit der App.
Ich habe es selbst noch nicht getestet. Mein RooWifi liegt noch im Karton. Kann demnächst mehr dazu sagen, wenn sich sonst hier keiner äussert...
Wäre echt klasse. Schon mal besten Dank im Voraus.
Guten Abend
Ich habe das Modul nach den Vorgaben installiert.
Leider erhalte ich folgende Meldung.
Undefined subroutine &main::Roowifi_Initialize called at fhem.pl line 2507.
Was kann ich tun?
Gruß
Zitat von: redseediver am 14 Juli 2018, 22:44:37Undefined subroutine &main::Roowifi_Initialize called at fhem.pl line 2507.
Was kann ich tun?
Groß-/Kleinschreibung beachten?
...ist jetzt mehr oder weniger geraten, sticht aber geradezu ins Auge.
Gruß,
Thorsten
Bin gerade unterwegs, daher mal ein Schuss ins Blaue.
Du hast beide Perl Module ausgepackt ?
Hast du reload 98_ROOWIFi und reload Roowifi.pm gemacht?
Das Modul nutzt noch eine andere Perl Klasse, die scheint nicht geladen.
Wäre das Modul mal ins SVN gekommen, hätte ich das geändert. So ist es, wie es ist ;)
Sorry für den kurzen Zwischenschuss; hatte oben einem User noch Antwort versprochen:
Habe es jetzt auch geschafft, das Ding an einem Roomba 780 in Betrieb zu nehmen und wollte eine kurze Anleitung teilen:
1) Modul vorsichtig aufstecken und keinen Kurzschluss erzeugen. (RooWifi kann mit etwas Geschick intern verbaut werden)
2) Modul fängt an im Sekundentakt zu blinken -> dann ist alles erstmal ok...sonst Reset gemäß Anleitung.
3) WLAN Verbindung herstellen mit Netzwerk ROOMBA WR, offenes Netzwerk
Hauptproblem: Gerät wird nicht angezeigt (Android) oder Gerät wird angezeigt, aber Verbindung nicht möglich (ab Windows 8.1 und Windows 10)
Entgegen der Anleitung und den üblichen Gepflogenheiten solcher Geräte verwendet RooWifi eine AdHoc Verbindung und keine Infrastruktur Verbindung. Das ist ein spezieller Modus, den Microsoft ab Windows 8.1 verstümmelt hat.
Auf Windows hat bei mir der Wifi-Scanner von Lizard Systems geholfen, wie hier beschrieben:
http://www.roowifi.com/find-your-roowifi-from-windows-8-1/
Leider funktioniert die Download-Seite nicht mehr, deshalb hier Alternativ-Quelle:
http://de.download.cnet.com/Wi-Fi-Scanner/3000-2651_4-75858971.html
Damit einfach das Netzwerk ROOMBA WR erscannen, rechts draufclicken und verbinden.
4) Ab hier der offiziellen Anleitung folgen: WIFI Interface am PC wie folgt einstellen: IP: 10.0.0.2; Netzmaske 255.255.255.0; Gateway 10.0.0.1
5) Danach sollte 10.0.0.1 pingbar sein und man kann sich mit einem Webbrowser auf 10.0.0.1 verbinden.
Android:
Habe hier keine AdHoc Verbindung herstellen können.
Workaround (laut Foren):
1) Konfiguration wie oben mit Windows beschrieben
2) Danach den RooWifi über die Oberfläche ins lokale Netz aufnehmen (habe ich noch nicht getestet)
3) Verbindung nun über Eingabe der IP in den zwei Apps möglich
Zitat von: redseediver am 14 Juli 2018, 22:44:37
Guten Abend
Ich habe das Modul nach den Vorgaben installiert.
Leider erhalte ich folgende Meldung.
Undefined subroutine &main::Roowifi_Initialize called at fhem.pl line 2507.
Was kann ich tun?
Gruß
Es hat sich erledigt. Ich habe zwar die beiden Perl Module installiert,
das hat aber nicht gereicht.
ich habe dann
Time::HiRes
YAML::Tiny;
Math::Trig;
IO::Socket::INET;
installiert, anschließend war alles ok.
Ich habe aber noch ein Problem.
Das Wakup mines Roombar 605, funktioniert nicht sobald er im deep Sleep ist.
Hallo liebe Community,
ich bin neu hier und erhoffe mir Hilfe von euch ... !
Habe auch das Roowifi Modul und nach langer Zeit gestern endlich zum laufen bekommen.
D.h. es in mein WIFI Netz integriert - Problem war die Bandbreite nur auf B/G eingestellt.
Das Modul läuft über N !? Da muss man ersteinmal draufkommen - habe eine Fritzbox 7590.
Ich möchte das Roowifi Modul über Alexa steuern, es gibt jedoch keine Apps mehr für Apple - die
Roowifi App fehlt komplett im Istore !??
Wie kann ich das jetzt miteinander verbinden ?!
Brauche ich jetzt noch einen separaten Server ???
Hi.
Wenn du das Roofwifi über das Modul mit FHEM steuern kannst, kannst du ihn per Homebridge/Homekit Siri fähig machen und dann auch über die Home App leicht steuern.
On/off sollte relativ easy sein über genericdevicetype switch mit einem custom mapping.
Über Alexa Skills dürfte das eigentlich auch mit Alexa gehen.
danke dir für deine schnelle Antwort.
Ich bin absoluter Newbie bei sowas - gibt es Anleitungen ?
Ok.
Kann dir nur mit FHEM,ROOWIFI oder Homebridge helfen. Habe kein Siri.
Ein paar Fragen.
- Hast du FHEM laufen?
- Hast du das ROOWIFI Modul laufen und kannst deinen Roomba steuern?
- Homebridge/Homekit installieren -> https://wiki.fhem.de/wiki/Homebridge_einrichten
- Roomba attribute verpassen:
genericDeviceType: switch
homebridgeMapping: clear On=state,valueOn=/^(on|cleaning)/,cmdOn=clean,cmdOff=stop,nocache=1 ChargingState=deviceStatus,values=/(dock|charging)$/:CHARGING;/^.*/:NOT_CHARGING
- Homebridge neu starten
Dann solltest du per "siri roomba einschalten" per Sprache saugen können.
ich muss leider ehrlich gestehen, dass das alles bömische Dörfer für mich sind.
Ich stelle bei mir zuhause so ziemlich alles auf Alexa um, Lichter, Rolläden usw. .
Das Roowifi Modul hatte ich schon länger.
Für einen Laien ist das ziemlich nervig, man will ja kein Programmierer werden.
Es gibt leider kein Plug an Play :-( .
das Modul habe ich bis jetzt "nur" in mein WIFI Netz bekommen, kann ihn aber nicht steuern über mein Handy oder
Windows 10 !?!?
Wieso gibt es die Roowifi App nicht mehr !?!?
Ich hätte gerne eine App, mit der ich den Staubsauger von extern Steuern kann - oder nur ein und ausschalten (fährt dann von selbst durch die Wohnung)
und zuhause sagen brauche, Alexa starte Roomba oder so ähnlich und der Sauger geht an ... .
zudem ist der Roomba zwar in meinem Fritzbox Netz drin, aber auf nicht verbunden ?!!?!??!
Wie bekomme ich den aktiv !? :-\
habe den Fehler gefunden, aber kann ihn nicht lösen. Bekomme den Roomba nur ungesichert / ohne Passwort WPA Verschlüsselung in die Fritzbox.
mit der WPA Verschlüsselung nimmt das Modul das Netzwerk nicht an ! :'( :'( :'(
Zunächst mal sollte man heutzutage kein WPA mehr verwenden, sondern ausschliesslich WPA2 und das ist bald auch veraltet.
Hast du irgendwelche Sonderzeichen oder Umlaute in deinem WLAN Passwort oder der SSID? Damit haben die embedded Systeme manchmal ihre Probleme. Konnte auf die schnelle jetzt keine Info zum RooWifi finden.
Laut Spezifikation ist er kompatibel zu 802.11bgn. Mit meinem bgn Netzwerk verbindet er sich auch. Ich möchte jetzt aber nicht rausmessen, was er konkret verwendet.
Insgesamt müsstest du also weiter probieren, woran es liegt; bei mir funktioniert es wie vorgesehen.
FRITZ!Box 7590 CU ist mein SSID.
Wenn ich aber bei dem Roowifi auf OPEN stelle, nimmt er die FRITZ! 7590 CU auch.
Das Passwort besteht nur aus 20 Zahlen !
Hallo
Mein RooWifi Module kann nur 802.11 b!
802.11 b hatte aus Performance Gründen, auf meiner Fritz.Box 7590 ausgeschaltet.
Mfg.
habe seit heute auch einen
die connection hat mich etwas nerven gekostet
ich musste tatsächlich meine fritzbox auf 802.11b+g umstellen wenn ich b+g+n wähle gehts nicht
jetzt wollte ich als nächstes das modul 98_ROOWIFI.pm einbinden
allerdings bekomme ich (nach der installation der benötigten pakete) diesen fehler
Attempt to reload Roowifi.pm aborted.
Compilation failed in require at ./FHEM/98_ROOWIFI.pm line 52.
BEGIN failed--compilation aborted at ./FHEM/98_ROOWIFI.pm line 52.
Hi.
Jo das WiFi Modul ist mittlerweile veraltet und hat so seine Tücken.
Auf Zeile 52 hab ich den Dumper, darüber httpUtils.
Spontan hab ich keine Idee, was da ein Problem sein sollte.
Evtl mal: cpan Data::Dumper probieren, oder: cpan HttpUtils
Und danach noch mal neu laden.
Lg
habe mittlerweile ein gebrauchtes kaufen können
viele haben probleme es mit dem WLAN zu verbinden da es eigentlich
2.4 bgn kompatibel sein soll.
ich hatte das Problem auch habe aber einen work arround gefunden
scheinbar verbindet das modul nicht mit 2.4 BGN bei der ersten einrichtung
ich habe es nun so hin bekommen:
1. an der fitzbox 2.4 auf (b+g) umstellen
2. roowifi verbinden
3. wenn das wlan am roowifi eingerichtet ist wieder auf 2.4 bgn stellen
so läuft es jetzt bei mir seit einigen wochen problemlos
Hallo Leute,
ich fände es interessant, meinen Roomba 780 Wifi fähig zu machen.
Lohnt sich der Kauf eines RooWifi Moduls noch ?
Würde das ROOWIFI Modul noch funktioneren ?
Gruß
Frank
Hallo Frank.
Ich nutze es noch immer in meinem Uralt-Roomba, Hardware wie Software :)
Die 802x Standards sind halt mittlerweile veraltet und ggf. muss man seinen Router/Fritzbox umkonfigurieren um es überhaupt ans laufen zu bekommen.
Meiner Erfahrung nach ist die Hardware auch nicht sonderlich stabil und Bedarf ab und an mal einen reset - wobei ich rev1 habe.
Wenn es morgen den Geist aufgeben würde, wäre meine Schmerzgrenze vermutlich 30€.
Mag aber auch daran liegen dass er aktuell kaum autonom starten darf weil die Kinder lauter Kleinzeug rumliegen lassen.
Am Modul könnte/würde ich noch frickeln falls nötig.
Hm,
ich habe die Fritzbox 6490 die kann
Kompatibel zu WLAN 802.11g, b und a
Müsste ich mir noch mal durch den Kopf gehen lassen.
Aber vielen Dank für die Info
Gruß
Frank
So habe heute das RooWifi bekommen.
Leider kriege ich es nicht mit der Fritzbox 6490 connected.
habe die fritzbox schon auf 2.4Ghz b+g begrenzt , aber das Biest will sich einfach
nicht connecten ??
Von selbst verbindet sich hier leider nichts.
Du musst dich wie bei den meisten WIFI-Smarthome-Komponenten erst am Hotspot des Geräts bzw. hier sogar per AdHoc verbinden. Das wird nicht ganz einfach mit Windows, da hier ab 8.1 die benötigte Funktionalität rausgekürzt wurde. Unter Windows benötigst du daher ein spezielles Tool.
Erst wenn diese Verbindung steht, kannst du über das Webinterface die Zugangsdaten für ein WIFI-Netz eintragen.
Siehe dazu meine Kurzanleitung eine Seite vorher in diesem Thread.
Ja danke, sorry hatte ich nicht erwähnt.
Ich habe meine Fritzbox Daten wie in der Anleitung mit Hilfe des Wifiscanners schon eingetragen
und gespeichert. Bin mir auch sicher, dass die richtig sind. Hat ja bei anderen Geräten auch geklappt.
Aber das RooWifi versucht sich wohl zu verbinden, aber bricht dann scheinbar ab und landet
wieder im AdHoc Modus. Wenn ich mich wieder mit RooWifi im AdHoc Modus verbinde, steht
da "Wifi Daten fehlerhaft" (oder so) . Nur welche Daten ??
Verdammte Scheisse: Es geht !!!! ;D
Habe es eben noch mal probiert, nun hat sich das Modul mit der Fritzbox verbunden.
Na dann werde ich mal weitermachen
Gruß
Frank
Hm schade.
in fhem ist der roomba immer offline :
Internals:
CHANGED
DEF 192.168.178.34
FUUID 5e728090-f33f-8841-0e63-1a219e1021ff514f
IPADDR 192.168.178.34
Interval 120
NAME myroomba
NR 589
STATE offline
TRIGGERTIME 1584565759.74583
TRIGGERTIME_FMT 2020-03-18 22:09:19
TYPE ROOWIFI
VERSION 0.93
Helper:
DBLOG:
state:
myDbLog:
TIME 1584565553.07362
VALUE offline
READINGS:
2020-03-18 22:07:20 state offline
Attributes:
event-on-change-reading .*
room Wohnzimmer
userattr 1 event-on-change-reading verbose webCmd
verbose 1
webCmd clean:stop:dock:update
So habs hinbekommen, user und passwort musste ich noch setzten. :-[
jetzt kriege ich auch readings
Kurze Frage. Würde gerne auf meinem Server auch meinen Roomba laufen lassen.
Leider ist das Wifi Modul aktuell schlecht zu bekommen, bzw preislich zu krass.
Hat nicht zufällig noch jemand einen über den ich abkaufen könnte.
Wäre super nett!
MfG
fedrock
Hallo, hat jemand so ein Roowifi WLAN Modul übrig und will es mir verkaufen?