IRobot Roomba mit Roowifi steuern

Begonnen von 2P4u, 06 Januar 2014, 20:33:59

Vorheriges Thema - Nächstes Thema

2P4u

Hallo liebe Leute.
Ich automatisiere schon länger mit FHEM.
Nun mein erstes Thema hier im Forum, da ich nicht mit der suche nichts finden kann.

Folgendes: Ich möchte mithilfe eines At oder Weekdaytimers folgenden weblink:
define RoombaClean weblink link http://192.168.178.XX/roomba.cgi?button=CLEAN ausführen.
Dies sollte immer Mo,Mi und Fr um 14.00 Uhr passieren.
Ausserdem sollte der Befehl auch mittels eines Wandtasters ausführbar sein.

Optional wäre noch super die Anwesenheitskontrolle einzubauen (nur Befehl ausführen wenn ich nicht Zuhause bin), dass aber nur als spätere Option.

Ich habe versucht das mit einem notify zu lösen:
define RoombaSaug notify RoombaClean_FB5 set RoombaClean on
oder so:
define RoombaStation notify RoombaDock_FB6 {\
fhem("set RoombaDock on");;\
fhem("set RoombaDock off");;\


Doch leider komme ich nicht weiter. Kann mir jemand von euch auf die Sprünge helfen?  :-[
Vielen Dank im Voraus.
Grüsse Daniel
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

UliM

Zitat von: 2P4u am 06 Januar 2014, 20:33:59
Folgendes: Ich möchte mithilfe eines At oder Weekdaytimers folgenden weblink:
define RoombaClean weblink link http://192.168.178.XX/roomba.cgi?button=CLEAN ausführen.
Dies sollte immer Mo,Mi und Fr um 14.00 Uhr passieren.
Ausserdem sollte der Befehl auch mittels eines Wandtasters ausführbar sein.
Hi Daniel,
den Weblink kannst Du nicht aus einem notify o.ä. zur Ausführung aufrufen. Das musst Du über einen Webaufruf machen:
define staubsaugerstart notify staubsaugerstart {my $reply = GetFileFromURL("http://192.168.178.XX/roomba.cgi?button=CLEAN", 3);}
(die 3 am Ende sind timeout, falls der Staubsauger nicht antworten mag)

Das Ding läuft dann los nach einem
trigger staubsaugerstart
Diesen Trigger kannst Du dann in beliebige andere notifies oder at einbauen.

Mangels Hitech-Staubsauger nicht getestet ;-)

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

2P4u

Hi Uli, danke für deine schnelle Antwort.
Jetzt hats geklappt, jedoch hab eich noch folgendes:
staubsaugerstart return value: 401 Unauthorized: Password required

Also machen wir das doch mit:
http://192.168.178.XX/roomba.cgi?user=admin&root=roombawifi&button=CLEAN (hab ich irgendwo im Netz gefunden) Ich bin aber noch am testen.
Bis jetzt steht er noch brav neben mir.

Ich berichte weiterhin. Cool wäre doch ein Modul für den Roomba zu erstellen.
Damit kann man mit XML Sensoren abfragen wie z.B. Ladezustand und Temperatur...
Leider hab ich keine Ahnung wie ich die XML Daten in FHEM bekommen soll.

1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

UliM

Hi,
für solche Abfragen entsteht gerade ein Modul: http://forum.fhem.de/index.php/topic,17804.0.html
Und der Autor sucht nach Testern.
Vielleicht magst Du Dich ja daran versuchen?
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

2P4u

Hey Leute. Ich komm nicht weiter.
Mit dem Code in dem ich user und Pw mitgebebe:
http://192.168.2.70/roomba.cgi?user=admin&pwd=roombawifi&button=CLEAN

Da bekommen ich im logfile ein:
401 Unauthorized: Password required

Irgendwie schluckt der das Pw nicht. Meint ihr ich kann das anderst aufrufen? Vielleicht wie bei FTP mit user:pw@?

Grüße Daniel
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

UliM

@ ist doch in fhem der Platzhalter für den Gerätenamen in einem notify.
Versuchs mit @@
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

2P4u

Ich habs immernoch nicht, er will nicht losfahren.
Wenn ich das staubsaugerstart {my $reply = GetFileFromURL("http://admin:roombawifi@192.168.178.120/roomba.cgi?button=CLEAN", 3);}
eingebe geht es nicht. Gebe ich aber das:
http://admin:roombawifi@192.168.178.120/roomba.cgi?button=CLEAN direkt im Browser ein, legt er gleich mit saugen los.

Meint ihr vielleicht man könnte sowas hier in FHEM integrieren?
http://www.ip-symcon.de/forum/threads/23208-Roomba-Wifi-%C3%BCber-anderes-Subnet-ansprechen?p=210205#post210205

Danke für die Hilfe
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Wernieman

Hast Du ausprobiert, was UliM geschrieben hat?

Das @ zu maskieren??
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

2P4u

ZitatHast Du ausprobiert, was UliM geschrieben hat?

Das @ zu maskieren??

Versuche ich heute Abend. War noch dabei das Aquarium auf FHEM umzubauen.
Man muss immer eine Baustelle nach der anderen abarbeiten.
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

2P4u

Hi Leute.
Ich bins nochmal.

Ich habe die letzten Tage getestet und folgendes ist dabei rausgekommen.
Wenn ich den wie folgt definierten Weblink anklicke maschiert der Sauger los.
define RoombaClean weblink link http://192.168.178.120/roomba.cgi?user=admin&root=roombawifi&button=CLEAN


Wenn ich das jedoch wie oben beschrieben mit einem :
define clean_noti notify clean {my $reply = GetFileFromURL("http://192.168.178.120/roomba.cgi?user=admin&root=roombawifi&button=CLEAN", 3);}

Und diesen mit einem
trigger clean_noti
in einen Weekdaytimer packen möchte, komme ich nicht weiter.

Vielleicht kann mir nochmal jemand einen Gedankenanstoss geben? Wäre super von euch.
Ich probier dann mal weiter...

Danke Gruss Daniel
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Darth.Weber

Versuchs mal mit GetHttpFile("192.168.178.1", "/cmds...etc...")




scooty

Hallo zusammen,

ähnliches widerfährt nun mir, daher hänge ich mich einfach 'mal hier dran.

Zusammenfassung:
Mein Roomba/RooWifi reagiert etwa 10 Minuten nach dem letzten durch fhem aufgerufenen Befehl nur auf weitere Befehle, wenn erst über die Adresszeile eines Browsers der Befehl abgesetzt oder die Startseite des RooWifi Webservers aufgerufen wurde.

Details und Problem:
RooWifi ist so konfiguriert, dass KEINE Benutzeranmeldung notwendig ist
Dummy-Schalter für Roomba-Status:
define WZOG_Roomba_Control dummy
attr WZOG_Roomba_Control eventMap on:CLEAN off:DOCK


DOIF mit Aufruf Webseite für Roomba-Befehl bei Statusänderung des Dummy (der besseren Lesbarkeit halber etwas formatiert):
define WZOG_Roomba_Control_Action
DOIF ([WZOG_Roomba_Control] eq "CLEAN")
({GetFileFromURL("http://192.168.0.166/roomba.cgi?button=CLEAN",5,,0,5)})
DOELSEIF ([WZOG_Roomba_Control] eq "DOCK")
({GetFileFromURL("http://192.168.0.166/roomba.cgi?button=CLEAN",5,,0,5);;fhem("sleep 2");;GetFileFromURL("http://192.168.0.166/roomba.cgi?button=DOCK",5,,0,5)})
attr WZOG_Roomba_Control_Action do always

(Anmerkung: Um den Roomba wieder in die Docking Station fahren zu lassen, muss er erst durch CLEAN gestoppt werden)

Funktioniert alles soweit, aber leider nicht mehr nach ca. 10 Minuten, nachdem man den letzten Befehl abgesetzt hat.

Der RoWifi scheint in irgendeinen "Schlafmodus" zu verfallen, der erst wieder aufgehoben wird, wenn man im Browser den Befehl absetzt (http://192.168.0.166/roomba.cgi?button=CLEAN) oder im Browser das Webinterface des RooWifi aufruft (http://192.168.0.166).

Die Verwendung von "GetHttpFile" bringt auch keine Besserung.

Habe schon versucht, über PRESENCE mit 2-minütigem "lan-ping" den RooWifi  "am Leben zu erhalten", aber auch das funktioniert nicht (Roomba meldet allerdings immer, dass er "present" ist, PINGs sind erfolgreich).

Ebenso wenig funktionieren "lebenserhaltenden Maßnahmen" (alle 4 Minuten) mit Abfrage eines XML-Files auf dem RooWifi, in dem der aktuelle Status der Sensoren gespeichert ist {GetFileFromURL("http://192.168.0.166/roomba.xml")}.

Auch auf die direkte Eingabe von
{GetFileFromURL("http://192.168.0.166/roomba.cgi?button=CLEAN",5,,0,5)
im Webinterface von fhem erfolgt nach einer etwa 10 minütigen Ruhezeit keine Reaktion.

Die Rückkehrcodes sind jedoch immer 1 (auch wenn keine Reaktion auf den Befehl erfolgt), also nach RooWifi Handbuch OK.

Fragen:
Hat jemand von euch erfolgreich die Start/Stop Funktion für einen Roomba in fhem implementiert?
Gibt es Geräte mit Webinterface, die sich ähnlich verhalten und wie habt ihr es dort gelöst?

Für jeden Tipp bin ich dankbar, sollten noch weitere Informationen/Tests benötigt werden, kann ich diese gerne nachliefern.

Vielen Dank und Grüße,
Andreas

PS: Es gibt natürlich noch elegantere Methoden, den Roomba mit RooWifi zu steuern (s. http://www.roowifi.com/roowifi-api-11b/), aber mangels Kenntnissen wage ich ich mich nicht daran.
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

herrmannj

Hi,

hast Du einen vernünftigen Weg gefunden das wifi modul an den roomba zu bekommen ? Welcher Typ ist das ?

vg
Jörg

scooty

#13
Na ja, vernünftig ist eher relativ, habe einen Roomba 880 und das RooWifi-Modul ist auf dem PS/2 Anschluss unter dem Griff aufgesteckt (und hebt ihn somit ein Stück an, aber auch nicht höher als den Knubbel des Näherungssensors(?)).

Der RooWifi ist die aktuelle Version Rev.2, habe ihn vor ca. 4 Wochen bekommen.

Hatte Deine Erfahrungen hier auch schon gelesen, hast Du die gleichen Phänomene wie ich oben beschrieben habe?

Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

herrmannj

Ich hab einen 780er. Da sitzt der oben drauf und guckt doof raus. Das mag ich meinen Mädels nicht antun, außerdem habe ich Bedenken das der wifi beschädigt wird wenn der roomba unter Möbel fährt, sich verhakt und so.

Habe es also nie ausprobiert sondern war (bin) sauer. ...

vg
jörg