Roomba mit eingebautem WLAN
Moderator: Co-Administratoren
-
- Beiträge: 636
- Registriert: 09.01.2013, 18:36
- Wohnort: Leichlingen
- Hat sich bedankt: 124 Mal
- Danksagung erhalten: 5 Mal
- Kontaktdaten:
Re: Roomba mit eingebautem WLAN
Ich habe noch einmal eine Frage zum Roowifi: ich kann die Website des Moduls NUR mit Safari v meinem iPad oder dem iPhone aufrufen. Gebe ich die ip im Laptop unter Explorer, chrome oder Firefox ein komme ich nicht drauf. Hat jemand eine Idee, woran das liegen könnte?
Bernd
-
- Beiträge: 12
- Registriert: 14.07.2015, 16:14
Re: Roomba mit eingebautem WLAN
Hallo,
gestern ist mein Roomba mit ThinkingCleaner bei mir angekommen.
Nun stellt sich die Frage wie bekomme ich ihn in HM. Da es ja anscheinend schon fertige Scripte zur Statusabfrage und Steuerung gibt, wollt ich fragen ob diese jemand zur Verfügung stellen kann.
Wäre sehr dankbar.
Grüße
gestern ist mein Roomba mit ThinkingCleaner bei mir angekommen.
Nun stellt sich die Frage wie bekomme ich ihn in HM. Da es ja anscheinend schon fertige Scripte zur Statusabfrage und Steuerung gibt, wollt ich fragen ob diese jemand zur Verfügung stellen kann.
Wäre sehr dankbar.
Grüße
Re: Roomba mit eingebautem WLAN
Wenn ich heute Abend nach Hause komme (und noch daran denke ) kann ich meine Lösung gerne Zur Verfügung stellen.
-
- Beiträge: 12
- Registriert: 14.07.2015, 16:14
Re: Roomba mit eingebautem WLAN
Habe gerade gesehen das du auch Mediola nutzt. Nutzt du auch den creator?
Wenn der Roomba in der Homematic ist, wäre die Visualisierung des Roomba in der Mediola mein nächstes Projekt gewesen. Hast du auch hierzu schon Skripte zur Datenaufbereitung und ein FB-Seite in Mediola?
Wenn der Roomba in der Homematic ist, wäre die Visualisierung des Roomba in der Mediola mein nächstes Projekt gewesen. Hast du auch hierzu schon Skripte zur Datenaufbereitung und ein FB-Seite in Mediola?
Re: Roomba mit eingebautem WLAN
Ja. Habe ich. War gestern aber sehr spät und habe es nicht mehr geschafft, heute wird's wohl auch nichts. Ich versuche es morgen zu schaffen.
Re: Roomba mit eingebautem WLAN
ist doch etwas früher geworden...
Du benötigst folgendes:
1. Systemvariable "RoombaAkku" Zahl 0-100
2. Systemvariable "RoombaKapazitaet" Zahl 0-65000
3. Systemvariable "RoombaLadung" Zahl 0-65000
4. Systemvariable "RoombaSaugt" Logikwert
5. Sysetmvariable "RoombaStatus" Werteliste
6. Systemvariable "RoombaStaubbehaelter" Logikwert, wahr = voll, falsch = leer
7. Systemvariable "RoombaStrecke"
8. Ein CuxD-Timer (in meinem Beispiel CUX2800001:1) mit folgenden Einstellungen:
SYSTEM|TIMER_PRESET = 30
SYSTEM|REPEAT = JA
SYSTEM|CMD_EXEC = wget -q -O - 'http://IP_DES_ROOMBA/full_status.xml'
SYSTEM|EXEC_FUNC = popen()
SYSTEM|EXEC_TIMEOUT = 1
7. Ein Programm:
Wenn CuxD-Timer CMD_RET im Wertebereich größer gleich "" (Bei Aktualisierung auslösen)
Dann
SCRIPT:
in Mediola habe ich den aktuell nur sehr rudimentär integriert. Lediglich eine Statusgrafik ( ) und ein Textfeld mit dem aktuellen Ladezustand. (+ Tastendruck = Reinigungsstart)
Du benötigst folgendes:
1. Systemvariable "RoombaAkku" Zahl 0-100
2. Systemvariable "RoombaKapazitaet" Zahl 0-65000
3. Systemvariable "RoombaLadung" Zahl 0-65000
4. Systemvariable "RoombaSaugt" Logikwert
5. Sysetmvariable "RoombaStatus" Werteliste
Code: Alles auswählen
unbekannt;auf Homebase;auf Homebase, Wiedererstellungsladung;auf Homebase, Lade...;auf Homebase, Erhaltungsladung;auf Homebase, Wartend;Netz angeschlossen, läd nicht;Netz angeschlossen, Wiedererstellungsladung;Netz angeschlossen, Lade...;Netz angeschlossen, Erhaltungsladung;Netz angeschlossen, Wartend;Gestoppt;Saugt;Saugvorgang gestoppt;Spot-Reinigung;Max-Reinigung;Verzögerte Reinigung startet demnächst...;Sucht Homebase;Hochgehoben;Ferngesteuertes Fahren;Wartet auf Kommando;Aus;Fehler;Findme;Unbekannter Status
7. Systemvariable "RoombaStrecke"
8. Ein CuxD-Timer (in meinem Beispiel CUX2800001:1) mit folgenden Einstellungen:
SYSTEM|TIMER_PRESET = 30
SYSTEM|REPEAT = JA
SYSTEM|CMD_EXEC = wget -q -O - 'http://IP_DES_ROOMBA/full_status.xml'
SYSTEM|EXEC_FUNC = popen()
SYSTEM|EXEC_TIMEOUT = 1
7. Ein Programm:
Wenn CuxD-Timer CMD_RET im Wertebereich größer gleich "" (Bei Aktualisierung auslösen)
Dann
SCRIPT:
Code: Alles auswählen
var statusXML = dom.GetObject("CUxD.CUX2800001:1.CMD_RET").Value();
integer p1 = statusXML.Find("cleaner_state");
integer p2 = statusXML.Find("/cleaner_state");
string curStat = statusXML.Substr(p1 + 14, (p2 - p1) -15);
!WriteLine("Status: " # curStat);
string states = "st_base;st_base_recon;st_base_full;st_base_trickle;st_base_wait;st_plug;st_plug_recon;st_plug_full;st_plug_trickle;st_plug_wait;st_stopped;st_clean;st_cleanstop;st_clean_spot;st_clean_max;st_delayed;st_dock;st_pickup;st_remote;st_wait;st_off;st_error;st_locate;st_unknown";
integer cnt = 23;
integer statVal = -1;
while (statVal < 0){
! WriteLine("TEST:" # curStat # " -- " # states.StrValueByIndex(";", cnt));
if (curStat == states.StrValueByIndex(";", cnt)){
! WriteLine("MATCH:" # curStat # " -- " # states.StrValueByIndex(";", cnt));
statVal = cnt + 1;
}
cnt = cnt - 1;
if (cnt < 0){
statVal = 0;
}
}
if (statVal <> dom.GetObject("RoombaStatus").Value()){
dom.GetObject("RoombaStatus").State(statVal);
}
integer newVal = 0;
!p1 = statusXML.Find("battery_charge");
!p2 = statusXML.Find("/battery_charge");
!curStat = statusXML.Substr(p1 + 15, (p2 - p1) -16);
!newVal = curStat.ToInteger();
!if (newVal <> dom.GetObject("RoombaAkku").Value()){!
! dom.GetObject("RoombaAkku").State(newVal);
!}
p1 = statusXML.Find("cleaning");
p2 = statusXML.Find("/cleaning");
curStat = statusXML.Substr(p1 + 9, (p2 - p1) - 10);
newVal = curStat.ToInteger();
if (newVal <> dom.GetObject("RoombaSaugt").Value()){
dom.GetObject("RoombaSaugt").State(newVal);
}
p1 = statusXML.Find("cleaning_distance");
p2 = statusXML.Find("/cleaning_distance");
curStat = statusXML.Substr(p1 + 18, (p2 - p1) - 19);
newVal = curStat.ToInteger();
if (newVal <> (dom.GetObject("RoombaStrecke").Value() * 1000).ToInteger()){
dom.GetObject("RoombaStrecke").State(0.001 * newVal);
}
p1 = statusXML.Find("bin_status");
p2 = statusXML.Find("/bin_status");
curStat = statusXML.Substr(p1 + 11, (p2 - p1) - 12);
newVal = curStat.ToInteger();
if (newVal <> dom.GetObject("RoombaStaubbehaelter").Value()){
dom.GetObject("RoombaStaubbehaelter").State(newVal);
}
p1 = statusXML.Find("charge");
p2 = statusXML.Find("/charge");
curStat = statusXML.Substr(p1 + 7, (p2 - p1) - 8);
newVal = curStat.ToInteger();
if (newVal <> dom.GetObject("RoombaLadung").Value()){
dom.GetObject("RoombaLadung").State(newVal);
}
p1 = statusXML.Find("capacity");
p2 = statusXML.Find("/capacity");
curStat = statusXML.Substr(p1 + 9, (p2 - p1) - 10);
newVal = curStat.ToInteger();
if (newVal <> dom.GetObject("RoombaKapazitaet").Value()){
dom.GetObject("RoombaKapazitaet").State(newVal);
}
newVal = (dom.GetObject("RoombaLadung").Value() * 100) / dom.GetObject("RoombaKapazitaet").Value();
if (newVal.ToInteger() <> dom.GetObject("RoombaAkku").Value()){
dom.GetObject("RoombaAkku").State(newVal.ToInteger());
}
in Mediola habe ich den aktuell nur sehr rudimentär integriert. Lediglich eine Statusgrafik ( ) und ein Textfeld mit dem aktuellen Ladezustand. (+ Tastendruck = Reinigungsstart)
-
- Beiträge: 12
- Registriert: 14.07.2015, 16:14
Re: Roomba mit eingebautem WLAN
Super, Danke! Werde es am Wochenende testen.
Wo trage ich die IP-Adresse meines Roomba und die Abfrage nach Status usw. ein?
Wo trage ich die IP-Adresse meines Roomba und die Abfrage nach Status usw. ein?
-
- Beiträge: 12
- Registriert: 14.07.2015, 16:14
-
- Beiträge: 487
- Registriert: 11.01.2015, 21:32
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 28 Mal
Re: Roomba mit eingebautem WLAN
Hallo,
die Roombas lassen sich übrigens auch direkt über die gut dokumentierte serielle Schnittstelle ansprechen: http://cfpm.org/~peter/bfz/iRobot_Roomb ... e_Spec.pdf
Hierzu reichen kompakte Bluetooth-Serial-Adapter wie HC05 oder HC06 für unter 10€.
Gruß
die Roombas lassen sich übrigens auch direkt über die gut dokumentierte serielle Schnittstelle ansprechen: http://cfpm.org/~peter/bfz/iRobot_Roomb ... e_Spec.pdf
Hierzu reichen kompakte Bluetooth-Serial-Adapter wie HC05 oder HC06 für unter 10€.
Gruß
-
- Beiträge: 12
- Registriert: 14.07.2015, 16:14
Re: Roomba mit eingebautem WLAN
Bei dir ist die Statusleiste eine xml. Bei mir heißt es Full-Status.json. Muss ich da noch etwas umwandeln?
Es funktioniert nämlich nicht. Mein hm ließt nichts aus.
Danke für die Hilfe!
Es funktioniert nämlich nicht. Mein hm ließt nichts aus.
Danke für die Hilfe!