Neues Modul: THINKINGCLEANER (für iRobot Roomba 500/600)

Begonnen von d.schoen, 23 August 2015, 13:45:59

Vorheriges Thema - Nächstes Thema

d.schoen

Hallo zusammen,

um meinen iRobot Roomba 620 in FHEM zu integrieren habe ich mir vor ein paar Tagen das WiFi Modul von Thinking Cleaner zugelegt. Das Modul wird anstelle der Abdeckung auf den Roomba aufgesteckt und verpasst dem Sauger dann ein Webinterface sowie eine REST/JSON API.

Für diese REST API entwickle ich gerade ein FHEM Modul. Das Modul findet ihr unter https://github.com/dsgrafiniert/fhem-thinkingcleaner zum Download.
Es benötigt das JSON Modul installiert.

Euren Roomba bindet ihr dann folgendermaßen ein:
define <NAME> THINKINGCLEANER http://<ip des Roomba> <Abfrageintervall>

Das Modul frägt dann alle <Abfrageintervall> Sekunden den Status des Roomba ab.

Zudem könnt ihr via "set <NAME> clean/spot/dock" die entsprechenden Funktionen des Roomba starten.

Das Modul ist noch einem early Alpha Status, ihr dürft gerne schon testen. Ich werde es in den kommenden Wochen definitiv noch weiterentwickeln und "rund" machen.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

scooty

Hallo zusammen,

bisher sind die Thinking Cleaner ja nicht für die Roomba Modelle der Serien 700 und 800 verfügbar
Der Hersteller Thinking Bits hat nun (wieder) eine Kickstarter-Kampagne gestartet, um auch für diese Modelle das Thinking Clenaer Modul anbieten zu können:
https://www.kickstarter.com/projects/thinkingbits/thinking-cleaner-wifi-for-irobot-roomba-700-and-80

Wäre klasse, wenn es diesmal klappt.
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

dantist

#2
Hallo Dominik,

wie ist denn der aktuelle Stand deines Moduls? Den Roomba über FHEM zu steuern ist echt verlockend, aber bevor ich 100€ für die Hardware ausgebe, würde mich interessieren, wie stabil das ganze läuft und welche Befehle sich umsetzen lassen. Habe übrigens den Roomba 521. Danke schonmal!

Edit: Noch eine Frage: Kann das ganze lokal laufen, oder ist der Thinking Cleaner zwingend mit dem Server des Herstellers verbunden?

Gruß
Daniel

d.schoen

Hallo Daniel,

das Modul läuft bei mir stabil. Es können die Befehle Clean, Spot und Dock gesendet sowie alle Statusinfos des Roomba ausgelesen werden.
Bei weiterem Bedarf an Funktionen einfach melden.

Das ganze kann natürlich auch rein lokal laufen (ich habe auch keine Serververbindung zum Hersteller eingerichtet).

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dantist

Hallo Dominik,

danke für die Infos, das klingt super. Ich habe den Thinking Cleaner bestellt, bin sehr gespannt und werde Feedback geben!

Gruß
Daniel

dantist

So, der Thinking Cleaner ist angekommen und bereits erfolgreich in Betrieb. Wirklich eine klasse Erweiterung.

Die drei verfügbaren Befehle des Moduls und das Auslesen der zahlreichen Informationen funktionieren wunderbar. Lediglich der Status wird immer als "???" angezeigt. Hast du eine Idee, woran das liegen könnte? Sag Bescheid, falls du weitere Infos dazu brauchst.

Das Einzige, was ich spontan vermisse, sind zwei weitere Befehle "Stop" und "Find". Vielleicht findest du ja irgendwann Zeit dafür :)

Schöne Grüße
Daniel

d.schoen

Hallo Daniel,

das freut mich.
Folgende Dinge stehen bei mir für "zwischen den Jahren" auf dem Plan:
- Relativer zurückgelegter Weg (Zurücksetzen des Readings tc_status_cleaning_distance mit jedem mal "clean" oder "dock" drücken)
- Stop und Find implementieren.

Den State kannst du via
attr cleaner stateFormat power_status_cleaner_state
so ändern, dass da immer der entsprechende, aktuelle Status des Roomba steht.
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dantist

Danke für den Tip mit stateFormat, das hat funktioniert.

Eine Sache ist mir noch aufgefallen: Das Modul schreibt ständig die gesamte Config (?) in das Log, was zu großen Datenmengen führt. Verbose 0 hat nicht geholfen. Lässt sich das irgendwie abstellen oder zur Not im Modul auskommentieren?

d.schoen

Update dazu ist auf Github veröffentlicht. Viel Spaß damit.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

klausg

Hallo Dominik,

ich habe Dein Modul von Github heruntergeladen. Die Abfrage klappt. Nur der Status bleibt ??. Wenn ich
      attr cleaner stateFormat power_status_cleaner_state
setze, dann ist hinterher der Status das Wort "power_status_cleaner_state". Im Text finde ich auch kein Routine dazu. Ist die Version Deines Moduls auf Github aktuell?

Viele Grüße
Klaus

d.schoen

Hallo Klaus,

ja das Modul auf GitHub ist aktuell. Mit dem stateFormat wie von mir angegeben legst du ja prinzipiell nur ein beliebiges Reading (hier eben power_status_cleaner_state) als State des Devices fest. D.h.: Kuck doch mal in deinen Readings, welchen Wert du als State angeben möchtest und ändere dann entsprechend das stateFormat ab.

Ich werde zur Weiterentwicklung leider erst nach den Weihnachtstagen kommen - dann steht aber auch eine etwas aussagekräftigere State-Definition mit auf dem Plan.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

klausg

Hallo Dominik,

ich habe keine Readings definiert. Ich hatte es mit dem Beispielen aus der Command Referenz versucht. Bin aber auf Fehler gelaufen. Ich glaube ich verstehe die Syntax der Reading* Befehle nicht. Kannst Du mir Beispiele aus Deiner Config geben?

Viele Grüße
Klaus

d.schoen

Hallo Klaus,

oh Gott... Sorry, die Cmd-Ref ist bei dem Modul noch die alte aus dem HTTPMOD Modul, auf dem das THINKINGCLEANER grundsätzlich aufbaut.

Meine Config für den Roomba ist einfach folgende:
define roomba THINKINGCLEANER http://<IP> 30
attr roomba stateFormat power_status_cleaner_state
attr roomba webCmd clean:dock


Mit den Readings meinte ich einfach nur das, was dir FHEM auf der Seite deines Devices unter "Readings" in der Tabelle anzeigt. Alles was dort in der ersten Spalte steht kannst du prinzipiell via stateFormat einfach als State verwenden.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

klausg

Mmh. Meine config sieht fast gleich aus. Aber bei meinem Device gibt es nur Internals und Attributes. Keine Readings.
Die Kommunikation scheint aber zu klappen. Ich kann den Roomba losschicken und wieder docken. Vielleicht fehlt mir ein Modul, das die Readings erzeugt.

Hier meine config:

define Roomba THINKINGCLEANER http://roomba.lan 60
attr Roomba stateFormat power_status_cleaner_state
attr Roomba WebCmd clean:dock


Grüße
Klaus

d.schoen

FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

klausg

Ich bin auf Debian. Ich habe jetzt das Debian-Modul "libjson-perl" nachinstalliert und in 98_THINKINGCLEANER.pm die Zeile
use JSON;
hinzugefügt. Ohne das waren immer noch keine Readings sichtbar. Wahrscheinlich hast Du noch ein anderes Modul, das JSON lädt.

Viele Grüße
Klaus

klausg

Hallo Dominik,

die Steuerung des Roomba funktioniert jetzt super.  Kann jetzt im Status die Readings darstellen, die ich brauche.
Super Modul!

Viele Grüße
Klaus

GregPac

Hallo zusammen,
nachdem ich jetzt kläglich gescheitert bin meinen geliebten Bobo (Spitzname meines Roomba) in FHEM zu bekommen bräuchte ich mal einen Tip was mir fehlt.
In der LogDatei erhalte ich immer
reload: Error:Modul 98_THINKINGCLEANER deactivated:
Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 65 at ./FHEM/98_THINKINGCLEANER.pm line 13.

Bin für Tips dankbar.
Greg
FHEM Raspberry, CUL V3 868 // FS-20 Aktoren, div. Funksteckdosen, Homebridge

klausg

Hallo Greg,

wie hast Du das Module 98_THINKINGCLEANER.pm erzeugt? Mit copy & paste aus der github.com website? Möglicherweise hast Du dabei ein (unsichtbares) Sonderzeichen kopiert und es steht jetzt in Zeile 13/65. Um sicher zu sein solltest Du das Modul nochmal neu herunterladen. Der Befehl dazu ist:
git clone https://github.com/dsgrafiniert/fhem-thinkingcleaner
Danach steht der Quelltext des Moduls im Directory "./fhem-thinkingcleaner". Kopier es in den Modulverzeichnis über das existierende Modul und starte FHEM neu.

Ich hoffe das hilt Dir weiter.
Klaus

GregPac

Danke, das war es natürlich...  :o Jetzt läuft es.
Gruß
Greg
FHEM Raspberry, CUL V3 868 // FS-20 Aktoren, div. Funksteckdosen, Homebridge

Ma_Bo

Hallo,
z.Z. überlege ich mir einen Staubsaugerroboter zu zulegen,

gibt es eine gute Quelle für den Thinking Cleaner ?
Wo habt ihr euren Roomba gekauft ?

Rommba bei Amazon für 295,17 : http://www.amazon.de/iRobot-Roomba-620-Staubsaug-Roboter/dp/B008ZAYZLM/

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

d.schoen

Den Thinking Cleaner bekommst du hier: http://www.robot-parts.eu/thinking-cleaner-all.html

Den Roomba hab ich mir damals bei der Metro geholt, als er mal im Angebot war. Aktuell ist der Preis für den 620er relativ hoch: http://www.idealo.de/preisvergleich/OffersOfProduct/3515867_-roomba-620-irobot.html

Ich würde also auf ein Angebot warten.

Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

CoolTux

Zitat von: Ma_Bo am 14 Dezember 2015, 15:56:51
Hallo,
z.Z. überlege ich mir einen Staubsaugerroboter zu zulegen,

gibt es eine gute Quelle für den Thinking Cleaner ?
Wo habt ihr euren Roomba gekauft ?

Rommba bei Amazon für 295,17 : http://www.amazon.de/iRobot-Roomba-620-Staubsaug-Roboter/dp/B008ZAYZLM/

Grüße Marcel

Hallo,

Alternativ kann man sich auch die Hombots von LG anschauen. Machen ihre Arbeit auch sehr gut.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

dantist

#23
Zitat von: CoolTux am 14 Dezember 2015, 19:54:47
Hallo,

Alternativ kann man sich auch die Hombots von LG anschauen. Machen ihre Arbeit auch sehr gut.

Grüße

Vor allem sind die unglaublich leise im Vergleich zu Roomba. Auf der anderen Seite bekommt man sie nicht so leicht in fhem integriert. (oh stimmt nicht, sehe grade dein Modul, CoolTux ;)

Anderes Thema: Seit dem letzten Update ist mein Logfile voller Meldungen, wenn der Roomba gestartet wird:

PERL WARNING: Unrecognized escape \h passed through at (eval 145892) line 5.

CoolTux

Zitat von: dantist am 15 Dezember 2015, 14:31:49
Vor allem sind die unglaublich leise im Vergleich zu Roomba. Auf der anderen Seite bekommt man sie nicht so leicht in fhem integriert.

SICHER?? Lies mal meine Sig!


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

d.schoen

Ich habe soeben einen kleinen Patch für das THINKINGCLEANER Modul auf Github gestellt.

Dadurch wir das Reading tc_status_cleaning_dist_rel erstellt. Dieses Reading wird jeweils bei Erreichen des Docks zurückgesetzt auf 0. Somit ergibt sich immer die zurückgelegte Distanz für den aktuellen Saugvorgang.
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

raspklaus

Ich habe heute den Roomba in Betrieb genommen. Funktioniert auch alles super nur im Log stehen ein paar Fehlermeldungen:

2015.12.25 14:58:13 1: PERL WARNING: Use of uninitialized value $relVal in addition (+) at ./FHEM/98_THINKINGCLEANER.pm line 441.
2015.12.25 14:58:13 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/98_THINKINGCLEANER.pm line 441.
2015.12.25 14:59:19 1: PERL WARNING: Use of uninitialized value $request{"type"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 563.
2015.12.25 14:59:19 1: PERL WARNING: Use of uninitialized value $request{"data"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 563.
2015.12.25 14:59:19 1: PERL WARNING: Use of uninitialized value $request{"header"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 563.
2015.12.25 14:59:19 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 532.

Puschel74

Hallo,

bevor ich weiter versuche - seh ich das richtig das THINKINGCLEANER nicht mit dem roowifi zusammen arbeitet?
Danke für die Rückmeldung.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

d.schoen

Ja richtig. Für den Roowifi müsste man wohl ein separates Modul entwickeln.
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

Puschel74

Zitat von: d.schoen am 28 Dezember 2015, 18:17:48
Ja richtig. Für den Roowifi müsste man wohl ein separates Modul entwickeln.
Das habe ich befürchtet  :(
Aber dennoch top was du hier geleistet hast.

Ich hab trotzdem einfach mal ins Blaue das Modul benutzt und ... es scheint "nur" an der Anmeldung zu scheitern.
Zitat2015.12.28 17:53:37 1: Registering THINKINGCLEANER WebHook Robbi
2015.12.28 17:53:37 3: Robbi: Defined with URL http://192.168.2.43 and interval 60
Zitatbuf HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm="Protected" Connection: close 401 Unauthorized: Password required
httpheader HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm="Protected" Connection: close

Ich weiss aber natürlich nicht wie aufwendig es ist Benutzer und Passwort evtl. per Attribut nachrüstbar zu machen und was noch angepasst werden muss.
Mein Roomba lässt sich ja zum Glück per GetFileFromURL ansprechen.

Danke dennoch für deine Antwort.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

franky08

#30
Ich hätte da auch mal eine Frage zum Roomba782, würde das Modul mit dem Roomba funktionieren und ist das extra WIFI Modul notwendig? Oder hat der 782 WIFI on Board?

Danke und guten Rutsch

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

scooty

Hallo,

vielen Dank für das Modul, funtioniert echt klasse!
Bin mit meinem Roomba 800 von RooWifi umgestiegen und die Zuverlässigkeit des ThinkingCleaner ist um Klassen besser.

Vielleicht kann es noch jemand gebrauchen: Nach der API-Doku habe ich mir ein eigenes userReading "power_status_cleaner_state_text" erstellt, das ich im Attribut "stateformat" verwende, um den Status des Roomba etwas sprechender darzustellen:

attr <Roomba-Name> userReadings power_status_cleaner_state_text:power_status_cleaner_state {
my $RoombaStatus = ReadingsVal("$name","power_status_cleaner_state","unknown");;
if ($RoombaStatus eq "st_base") {return "On homebase: Not Charging";;}
elsif ($RoombaStatus eq "st_base_recon") {return "On homebase: Reconditioning Charging";;}
elsif ($RoombaStatus eq "st_base_full") {return "On homebase: Full Charging";;}
elsif ($RoombaStatus eq "st_base_trickle") {return "On homebase: Trickle Charging";;}
elsif ($RoombaStatus eq "st_base_wait") {return "On homebase: Waiting";;}
elsif ($RoombaStatus eq "st_plug") {return "Plugged in: Not Charging";;}
elsif ($RoombaStatus eq "st_plug_recon") {return "Plugged in: Reconditioning Charging";;}
elsif ($RoombaStatus eq "st_plug_full") {return "Plugged in: Full Charging";;}
elsif ($RoombaStatus eq "st_plug_wait") {return "Plugged in: Waiting";;}
elsif ($RoombaStatus eq "st_plug_trickle") {return "Plugged in: Trickle Charging";;}
elsif ($RoombaStatus eq "st_clean") {return "Cleaning";;}
elsif ($RoombaStatus eq "st_cleanstop") {return "Stopped with cleaning";;}
elsif ($RoombaStatus eq "st_clean_spot") {return "Spot cleaning";;}
elsif ($RoombaStatus eq "st_clean_max") {return "Max cleaning";;}
elsif ($RoombaStatus eq "st_delayed") {return "Delayed cleaning will start soon ..";;}
elsif ($RoombaStatus eq "st_dock") {return "Searching Homebase";;}
elsif ($RoombaStatus eq "st_pickup") {return "Roomba picked up";;}
elsif ($RoombaStatus eq "st_remote") {return "Remote control driving";;}
elsif ($RoombaStatus eq "st_wait") {return "Waiting for command";;}
elsif ($RoombaStatus eq "st_off") {return "Off";;}
elsif ($RoombaStatus eq "st_error_charge") {return "Charging error";;}
elsif ($RoombaStatus eq "st_error") {return "Error";;}
elsif ($RoombaStatus eq "st_locate") {return "Find me!";;}
elsif ($RoombaStatus eq "E_ROOMBA") {return "Roomba error,<br/> press SPOT + DOCK for 10s to reset";;}
elsif ($RoombaStatus eq "st_unknown") {return "unknown";;}
elsif ($RoombaStatus eq "unknown") {return "Reading failed!";;}
else {return "Total failure";;};;
}

Code ist für Eingabe im Befehlszeilenfeld, <Roomba-Name> ersetzen durch eigenen Roomba-Device-Namen.

Dann noch ein
attr <Roomba-Name> stateFormat power_status_cleaner_state_text

Eine Kleinigkeit ist mir allerdings noch aufgefallen:
Im THINKINGCLEANER-Device erscheint immer das Attribut "userattr", gefüllt mit Werten von von mir verwendeten Standard-Attributen, also:
userattr   icon stateFormat userReadings
Lösche das Attribut "userattr" zwar immer, aber nach jedem "shutdown restart" ist es wieder da.

Also nochmals danke,
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

scooty

Hallo zusammen,

in der aktuellen Version auf GitHub (https://github.com/dsgrafiniert/fhem-thinkingcleaner)sind jetzt noch die Kommandos:

set <NAME> max/find_me/leavehomebase/drivestop/poweroff

hinzugekommen.
Details zu den Kommandos können in der API-Doku (ab Seite 6) nachgeschlagen werden.

Vielen Dank an Dominik für's mergen.

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

franky08

Hat keiner einen Tipp ob das mit dem Roomba782 funktioniert?

Guten Rutsch,
VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

raspklaus

Der aktuelle Thinkingcleaner ist nur für die 500er und 600er. Mit den grösseren Modellen dürfte es nicht funktionieren.

scooty

Doch, mein 800er funktioniert, allerdings nicht mit der kompletten Faceplate der 500/600er, sondern nur mit der Platine (wie beim RooWifi).
Eine passende Abdeckung für die 700/800er wurde von ThinikingCleaner für 3D-Drucker bereitgestellt:
http://www.thingiverse.com/thing:1219169/

Beim 782 ist eher das Problem, dass wohl keiner das WLAN-Interface kennt.

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

franky08

#36
@scooty
Danke
ZitatBeim 782 ist eher das Problem, dass wohl keiner das WLAN-Interface kennt.

darüber versuche ich schon den ganzen Tag etwas herauszufinden. Da es für das Teil ja eine "RF Fernbedienung" gibt muss ja über Funk irgendwas gehen. oder?

P.S. Selbst mit einem WIFI Scanner ist der Roomba leider nicht zu finden  >:(

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

irgendsowas

@d.schoen

ist es möglich die API von irobot einzupflegen?
Eine direktverbindung zu schaffen?

siehe:https://forum.fhem.de/index.php/topic,50025.0.html

Danke im Voraus

d.schoen

Hallo irgendsowas,

danke für deine Anfrage. Das würde meines Erachtens am Ziel des Moduls vorbeigehen. Deine Eigenentwicklung in Ehren, aber dieses Modul richtet sich konkret an das ThinkingCleaner Faceplate. Noch nicht mal RooWifi wird unterstützt.

Ich denke, die Zielgruppe für deine Eigenentwicklung ist auch ziemlich gering, da es ja bereits (mindestens) zwei existierende Wifi-Module für die Roombas gibt - die noch dazu auch wirklich bezahlbar sind.

Natürlich kannst du dir gern mein Modul als Basis für eine Eigenentwicklung nehmen, aber eine Low-Level TCP Schnittstelle werde ich in mein Modul nicht einbauen.

Beste Grüße und viel Spaß mit deinem ferngesteuertern Roomba
Dominik

Zitat von: irgendsowas am 04 März 2016, 09:32:11
@d.schoen

ist es möglich die API von irobot einzupflegen?
Eine direktverbindung zu schaffen?

siehe:https://forum.fhem.de/index.php/topic,50025.0.html

Danke im Voraus
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

Markus

ZitatHat keiner einen Tipp ob das mit dem Roomba782 funktioniert?

Guten Rutsch,
VG
Frank

Funktioniert das Jetzt?


Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

d.schoen

Zitat von: Markus am 16 März 2016, 19:53:55
Funktioniert das Jetzt?


Gruß Markus

Die Faceplates für die 700/800er Roombas sind in Vorbereitung. Wann ThinkingCleaner die veröffentlicht, weiß ich nicht. Damit sollte es dann klappen. Die Wifi Funktionen der größeren Roombas werden von meinem Modul nicht unterstützt - es ist speziell für die ThinkingCleaner Faceplate.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

Markus

Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

dantist

#42
Gibt es eine Möglichkeit, das thinkingcleaner-Modul zu resetten? Es kommen keine Befehle mehr beim Roomba an.

Ich weiß leider nicht, seit wann der Defekt besteht - könnte es etwas mit dem Update auf fhem 5.7 zu tun haben?

Edit: Ein Reset des Roombas hat nicht geholfen, auch nicht, das Gerät neu in FHEM anzulegen. Was mir aber aufgefallen ist: Wenn ich den Befehl, der im Internal "displayurl" angezeigt wird, manuell im Browser aufrufe, wird er korrekt ausgeführt. z.B. http://roomba-ip/command.json?command=spot

d.schoen

Das ist in er Tat sehr komisch... Findest du mit einem höheren Log-Level irgendwelche Informationen im Log? Ansonsten bin ich (zumindest bis jetzt) auch ziemlich ratlos...
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dantist

#44
Ich habe mal das Loglevel hochgesetzt, anbei der Output. Roomba neu angelegt und drei Minuten später "set clean" ausgeführt:

2016.04.17 12:03:21.229 3: Roomba: no URL for Update
2016.04.17 12:03:28.697 1: Registering THINKINGCLEANER WebHook Roomba
2016.04.17 12:03:28.698 3: Roomba: Defined with URL http://192.168.108.73 and interval 60
2016.04.17 12:06:12.296 1: PERL WARNING: Use of uninitialized value $request{"type"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 554.
2016.04.17 12:06:12.297 1: PERL WARNING: Use of uninitialized value $request{"data"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 554.
2016.04.17 12:06:12.298 1: PERL WARNING: Use of uninitialized value $request{"header"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 554.
2016.04.17 12:06:12.299 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 523.


Und nochmal ein "set clean" mit verbose level 5:

2016.04.17 12:47:46.760 4: WEB_192.168.108.51_55629 POST /fhem&detail=Roomba&dev.setRoomba=Roomba&cmd.setRoomba=set&arg.setRoomba=clean&val.setRoomba=; BUFLEN:0
2016.04.17 12:47:46.763 5: Cmd: >set Roomba clean<
2016.04.17 12:47:46.764 5: Roomba: AddToQueue called, initial send queue length : 0
2016.04.17 12:47:46.766 5: Roomba: AddToQueue adds type  to URL http://192.168.108.73/command.json?command=clean, data , header
2016.04.17 12:47:46.767 5: Roomba: HandleSendQueue called, qlen = 1
2016.04.17 12:47:46.768 4: Roomba: HandleSendQueue sends request type  to URL http://192.168.108.73/command.json?command=clean, data , header , timeout 2
2016.04.17 12:47:46.770 4: HttpUtils url=http://192.168.108.73/command.json?command=clean
2016.04.17 12:47:46.773 5: Triggering Roomba (1 changes)
2016.04.17 12:47:46.774 5: Starting notify loop for Roomba, first event clean
2016.04.17 12:47:46.795 4: WEB_192.168.108.51_55629 GET /fhem?detail=Roomba&fw_id=; BUFLEN:0
2016.04.17 12:47:46.835 4: name: /fhem?detail=Roomba&fw_id= / RL:2948 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2016.04.17 12:47:46.846 4: Connection closed for WEB_192.168.108.51_55632: EOF

2016.04.17 12:47:47.252 4: WEB_192.168.108.51_55645 GET /fhem?cmd={ReadingsVal(%22Roomba%22,%22clean%22,%22%22)}&XHR=1; BUFLEN:0
2016.04.17 12:47:47.254 5: Cmd: >{ReadingsVal("Roomba","clean","")}<
2016.04.17 12:47:47.263 4: name: /fhem?cmd={ReadingsVal(%22Roomba%22,%22clean%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2016.04.17 12:47:47.268 4: WEB_192.168.108.51_55629 GET /fhem?cmd={AttrVal(%22Roomba%22,%22room%22,%22%22)}&XHR=1; BUFLEN:0
2016.04.17 12:47:47.270 5: Cmd: >{AttrVal("Roomba","room","")}<
2016.04.17 12:47:47.278 4: name: /fhem?cmd={AttrVal(%22Roomba%22,%22room%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2016.04.17 12:47:47.368 4: WEB_192.168.108.51_55629 GET /fhem?XHR=1&inform=type=status;filter=Roomba;since=1460890065;fmt=JSON&fw_id=196×tamp=1460890067361; BUFLEN:0


Wie gesagt, wenn ich die die URL http://192.168.108.73/command.json?command=clean im Browser öffne, startet der Roomba.


d.schoen

Leider nicht wirklich, wie sieht denn dein Define aus?

Was mich etwas irritiert ist die Zeile "no URL for update" in deinem ersten Log. Das bedeutet, dass das Feld für die URL im Code nicht mit einem Wert belegt ist...

Beste Grüße
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dantist

define Roomba THINKINGCLEANER http://192.168.108.73 60
attr Roomba userattr icon stateFormat verbose webCmd
attr Roomba stateFormat power_status_cleaner_state
attr Roomba webCmd clean:dock


Läuft es denn bei dir mit FHEM 5.7? Vielleicht ist ja mit dem Update etwas anderes kaputt gegangen, z.B. das JSON-Modul? Ich weiß leider nicht, wie ich das testen könnte.

d.schoen

Hm, das sieht soweit gut aus.

Kannst du mal über ein "ping" und "wget" von dem Rechner aus auf dem FHEM läuft prüfen, ob die Verbindung zum Roomba auch hergestellt werden kann?

Ich hab das Modul auch unter 5.7 laufen, alles prima...
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dutzend

Hi,

ich habe leider folgenden Fehler aus dem Modul:


reload: Error:Modul 98_THINKINGCLEANER deactivated:
Type of arg 1 to keys must be hash or array (not private variable) at ./FHEM/98_THINKINGCLEANER.pm line 430, near "$perl_scalar ) "
Type of arg 1 to keys must be hash or array (not private variable) at ./FHEM/98_THINKINGCLEANER.pm line 433, near "$value ) "

2016.05.25 15:10:14 0: Type of arg 1 to keys must be hash or array (not private variable) at ./FHEM/98_THINKINGCLEANER.pm line 430, near "$perl_scalar ) "
Type of arg 1 to keys must be hash or array (not private variable) at ./FHEM/98_THINKINGCLEANER.pm line 433, near "$value ) "


Hat jemand einen Tipp?

Danke René

d.schoen

Kannst du mir bitte mal dein DEFINE für das Modul hier rein posten?

Sieht so aus, als würden von deinem ThinkingCleaner keine Werte an FHEM gesendet werden.
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dutzend

Hi,

erstmal Danke! Hier ist mein DEFINE:

define roomba THINKINGCLEANER http://192.168.178.40/ 60
attr roomba userattr icon stateFormat verbose webCmd
attr roomba stateFormat power_status_cleaner_state
attr roomba webCmd clean:dock

Thx René

d.schoen

Versuch mal den "/" am Ende der URL zu entfernen. Ggf. hilft das schon was...

Und: Hast du das JSON Perl Modul installiert? "cpan JSON"

Ansonsten: Versuch mal http://192.168.178.40/full_status.json im Browser aufzurufen. Kommt da was sinnvolles zurück?

FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dutzend

Hi,
das mit dem Slash hatte ich schon...
Wenn ich die URL abschicke bekomme ich Folgendes:


{ "action":"full_status", "result":"success", "firmware" : { "version" : "1.0.94-310C-FCC", "wifi_version" : "310C", "uuid" : "1e975d9a1a17e47d", "mac_address":"00:1E:C0:15:7F:BB", "DHCP" : 1, "has_been_backed_up" : 1, "has_auth_token" : 0, "boot_status" : "run success", "boot_version" : 5, "auto_update" : 1, "auto_dock" : 1, "restart_AC" : 0, "always_MAX" : 0, "dock_at" : 10, "stop_at" : 6, "time_h_m" : "15:36", "selected_timezone" : "Europe/Berlin" }, "tc_status" : { "name" : "Roomba", "modelnr" : "650", "tc-roomba-conn" : 1, "cleaning_time" : "0", "cleaning_time_total" : "7", "cleaning_distance" : "126", "cleaning_distance_miles" : "77", "dirt_detected" : 0, "bin_status" : 0, "server_connection" : 0, "vacuum_drive" : 0, "clean_delay" : 60, "cleaning" : 0, "schedule_serial_number" : 0 }, "power_status" : { "cleaner_state" : "st_base_trickle", "current" : -38, "charge" : 2696, "battery_charge" : "100", "capacity" : 2696, "voltage" : 15919, "temperature" : 30, "batteryLowVoltage" : 14000, "battery_condition" : "100", "low_power" : 0 }, "buttons" : { "clean_button" : 0, "spot_button" : 0, "dock_button" : 0 }, "sensors" : { "bumper_state" : 0, "bumper_left_state" : 0, "bumper_right_state" : 0, "wheel_drop_left" : 0, "wheel_drop_right" : 0, "wall" : 0, "cliff_left" : 0, "cliff_front_left" : 0, "cliff_right" : 0, "cliff_front_right" : 0, "virtual_wall" : 0, "dirt_detect" : 0, "light_bump" : 0, "mainbrush_current" : 0, "sidebrush_current" : 0, "homebase_detected" : 0, "near_homebase" : 0, "IR_Omni" : 0, "IR_Left" : 0, "IR_Right" : 0 }, "webview" : { "advanced" : "1" } }


Das JSON-Modul habe ich nicht über CPAN installiert (FB7390, v6.23, 5.7), sondern wie hier im Forum beschrieben "manuell".

Gruß und Danke René

dutzend

Hi,

es funzt leider immer noch nicht...
Ich denke, dass es mit dem JSON-Modul zusammenhängt. Wie kann ich prüfen ob das richtig läuft?
Die Dateien habe ich, wie im Wiki (http://www.fhemwiki.de/wiki/Hue#HUE_auf_der_Fritzbox) beschrieben eingebunden und auch die Rechte x-mal überprüft.

Gruß René

dutzend

Hi,

das JSON-Modul scheint zu laufen, die neue Version von Yahoo-Wetter konnte ich einbinden...

Gruß René

dutzend

Hi,

ich brauche immer noch Hilfe, das Modul lässt sich nicht einbinden. Am JSON-Modul wohl liegt es nicht, auch ist der Roomba erreichbar. Eine Perl-Funktion in FHEM...

sub
RoombaTest()
{
  GetHttpFile("192.168.178.40", "/command.json?command=dock");
}


... funktioniert astrein.

Danke für jeden Tipp René

d.schoen

Hallo René,

ich bin leider auch etwas ratlos...

Ich habe soeben eine Debug-Ausgabe in dem Code auf Github eingefügt.

Bitte mal die Version einbinden. Danach Verbose-Attribut auf 5 stellen und sehen, was das Modul in den FHEM-Log schreibt.
Bei mir kommen da folgende Ausgaben:
Buffer: { "action":"full_status", "result":"success", ...   }

Die wären wichtig, wenn die nicht erscheinen läuft irgendwas beim Download schief.

Den Rest können wir gern auch via PN besprechen.
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

dantist

Wie sieht es eigentlich mit dem geplanten "stop"-Befehl aus?  :) Der wäre sehr hilfreich, wenn man nicht weiß, ob der Bot grade fährt oder nicht.

d.schoen

Das ist das "drivestop" Kommando
set roomba drivestop

Ist in der Version auf Github bereits enthalten.

Beste Grüße
Dominik
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

raspklaus

Ich bekomme mit der letzten Version folgende Fehlermeldungen wenn ich set clean absende

2016.06.03 15:57:35 1: PERL WARNING: Use of uninitialized value $request{"type"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 565.
2016.06.03 15:57:35 1: PERL WARNING: Use of uninitialized value $request{"data"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 565.
2016.06.03 15:57:35 1: PERL WARNING: Use of uninitialized value $request{"header"} in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 565.
2016.06.03 15:57:35 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_THINKINGCLEANER.pm line 534.


und er tut nichts

Loredo

Hallo zusammen,


ich habe das Modul komplett neu geschrieben und dabei an die FHEM Standards angeglichen (setter, Readings, etc).
Es fehlt eigentlich nur noch die Doku und die Scheduler Change/Delete Funktion.


Tester sind herzlich willkommen, bevor ich das Modul die Tage ins SVN einchecke.



Gruß
Julian

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

scooty

Hallo Loredo,

danke, dass Du Dich des Moduls angenommen hast.
:)
Auf die Schnelle:
- Funktionen on/off/dock/undock funktionieren gut
- in der Auswahlliste der Attribute gibt es statt "event-on-change-reading" ein Attribut "fhemBaseURLevent-on-change-reading"
- wäre es möglich noch ein Reading für  den relativ zurückgelegten Weg mit aufzunehmen (analog zu  hier)

Vielen Dank,
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

Loredo

#63
Beiliegende Version ist jetzt Feature Complete. Neu hinzugekommen:


- vollständige Steuerung der Scheduler (add, delete, modify)
- Webhook Unterstützung mit automatischer Registrierung (notwendige Attribute: webhookFWinstance und webhookHttpHostname)
- dynamisches Polling abhängig von Webhook und ob gerade gesaugt wird (beeinflussbar mit poll* Attributen)
- neues Reading cleaningTimeLast
- das Reading cleaningDistance wurde in cleaningDistanceTotal umbenannt
- das Reading cleaningDistance zeigt jetzt relativ zum Beginn der Saugsession die Distanz an (sobald Station verlassen wird)
- neue Readings cleaningDistanceLast (sobald Station wieder erreicht wird) und cleaningDistanceStart (Hilfsreading zur Berechnung)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

scooty

Hallo Loredo,

danke für die weiteren Funktionalitäten.
Funktioniert soweit bei mir (benutze aber eigentlich auch nur on/off/undock/dock, die Laufwegs-Werte und den Staubbehälter-Status).

Eine Sache ist mir dabei jedoch noch aufgefallen,
Wenn der Roomba in der Docking Station steht und ich ihn zum Saugen starten möchte, reagiert er auf ein einfaches "on" nicht.
Aktuell sende ich erst ein "undock", und nach 10 Sekunden dann das "on". So startet er zuverlässig.
Kann jetzt nicht beurteilen, ob das ein Fehler ist oder von Dir so gewollt?

Könntest Du noch ein bisschen detaillierter erläutern, was die Attribute für Webhook und Polling beeinflussen? Oder vielleicht einfach kurz Vor-/Nachteile bei Verwendung erläutern?
Bisher habe ich nämlich keinerlei dieser Attribute in Benutzung und es funktioniert aus so.
:)

Nochmals vielen Dank,
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

Loredo

#65
Zitat von: scooty am 09 Oktober 2016, 09:40:15
Wenn der Roomba in der Docking Station steht und ich ihn zum Saugen starten möchte, reagiert er auf ein einfaches "on" nicht.


Hast du die Firmware soweit aktuell?
Ich schicke da einzig und allein ein Kommando "clean", da unterscheidet sich nichts zu dem bisherigen Modul hier. Es gibt da auch nichts was man ansonsten tun könnte. Bei mir reicht ein Clean-Kommando, um aus der Station zu fahren und dann loszulegen, eben genauso als wenn man auf den Knopf drückt (nichts anderes tut das ThinkingCleaner Board hier auch). Insofern wäre die Ursache eher bei dem ThinkingCleaner Board bzw. seiner Firmware ansich zu suchen. Ist es denn genauso, wenn du den Clean-Knopf über dessen Website schaltest?


Allgemein scheint auch die aktuellste Firmware ziemlich Buggy und voller Widersprüche zu sein. z.B. bekomme ich die Laufwerte ganz gewiss nicht in Kilometer, aber auch nicht in Meter. Unmöglich, dass nach 30min Fahrzeit schon 1.000 Kilometer abgegrast worden wären ;) (Meter wäre aber auch zu viel, Zentimeter natürlich zu wenig; keine Ahnung was das hier für ein Wert sein soll... taugt also nur zum relativen Vergleich). Oder es wechselt der deviceStatus auf "cleaning", aber der eigentliche cleaning-Indikator der nur "ja" oder "nein" macht und somit eine klare Aussage liefern sollte, steht anfänglich trotzdem noch auf "nein"... als solche Späße.


Auch die Webhook-Funktion ist sehr unlogisch. Mal schickt der Roboter einen Webhook, wenn man eine Taste drückt, dann wieder nicht. Wenn man nach Erhalt eines Webhooks dann instantan direkt die Werte neu vom Roomba liest sind sie noch auf einem alten Wert und spiegeln die zu erwartende Änderung (z.B. Taste gedrückt) noch gar nicht wieder, sondern man muss 5-6 Sekunden warten... alles sehr unlogisch. Von der Struktur und den Bezeichnungen der API Befehle will ich gar nicht anfangen - die hab ich soweit versucht im FHEM Modul einigermaßen zu vereinheitlichen und gerade zu rücken ;-)


Zitat von: scooty am 09 Oktober 2016, 09:40:15
Könntest Du noch ein bisschen detaillierter erläutern, was die Attribute für Webhook und Polling beeinflussen? Oder vielleicht einfach kurz Vor-/Nachteile bei Verwendung erläutern?


Die Webhook Funktion soll in der Theorie dafür sein, dass bei einer Statusänderung der Roboter von selbst bei FHEM bescheid sagt, dass man die Werte neu einlesen soll. Damit soll es eigentlich komplett überflüssig sein überhaupt regelmäßig alle X Sekunden den Roboter abzufragen. In der Praxis funktioniert es aber wie oben beschrieben überhaupt nicht so wie gedacht, es ist eher "Glück" wenn der Roboter mal von sich aus bescheid gibt. Auf ein Pollen kann man deshalb nicht gänzlich verzichten, es ist mit der jetzigen Firmware dann wohl nur als nette Zusatzfunktion zu sehen, bei der man "vielleicht" etwas Zeit gewinnt, wenn der Roboter doch mal bescheid sagt und man dann früher als beim regelmäßigen Polling-Interval die Werte abfragen kann, um eine Änderung zu bemerken.


Für den Webhook muss man im Roomba angeben unter welcher URL FHEM erreichbar ist. Das Modul macht es dabei sehr einfach. Über webhookFWinstance wählt man aus über welche FHEMWEB Instanz der Roomba FHEM erreichen kann. Nur die IP Adresse oder den Hostnamen kann das Modul nicht sinnvoll ermitteln, weshalb webhookHttpHostname noch entweder mit der IP Adresse oder dem Hostnamen von FHEM bestückt werden muss. Ist das passiert sieht man an den WEBHOOK_* Internals, ob die Registrierung geklappt hat (WEBHOOK_REGISTER=success). Wenn man FHEM nicht direkt erreichbar hat, sondern z.B. einen Reverse-Proxy o.ä. dazwischen hat, dann kann man optional einen abweichenden Port über webhookPort angeben.


Das Attribut pollInterval ersetzt die Angabe in Sekunden für die regelmäßige Statusabfrage, die sonst im define-Befehl mit angegeben wurde. Der Standardwert ist 45 Sekunden und kann hier angepasst werden.


Das eigentliche Polling-Interval wird jedoch dynamisch verändert. Z.B. wird während des Saugvorgangs öfter abgefragt, dafür wird der pollInterval Wert mit einem Faktor multipliziert, welcher über webhookMultiplierCleaning angepasst werden kann und dessen Standardwert bei 0.5 liegt. Es wird also während des Saugens dann doppelt so häufig abgefragt.


Ansonsten wird bei aktiviertem Webhook (und nur dann!) das Polling-Interval während der Ruhephase verdoppelt. Das dafür genutzte Attribut webhookMultiplierWebhook nutzt dafür also den Standardwert 2. Wenn man Webhook nicht konfiguriert hat, dann bleibt es beim Standardinterval aus pollInterval bzw. dessen Standardwert von 45 Sekunden.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Ich habe noch einige Änderungen bei der Berechnung des state-Readings vorgenommen und das Modul gerade zusammen mit der CommandRef eingecheckt. Es wird ab morgen per Update verteilt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

scooty

Hallo Loredo,

vielen herzlichen Dank für sie super Erklärungen, nun habe sogar ich verstanden, was es mit einem Webhook auf sich hat und die möglichen Anpassungen bezüglich Polling/"Webhooking" finde ich klasse gelöst.
:)

Und noch eine gute Nachricht, mit heutigem Stand des Moduls reagiert mein Roomba nun auch (wieder) auf ein einfaches "on", also alles gut!

Viele Grüße,
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

scooty

#68
Hallo Loredo,

nach heutigem Update ist bei mir das Attribut "event-on-change-reading" ist nicht mehr auswählbar/setzbar

@raspklaus:
Mit dem Ton hatte ich auch nach Umstellung auf das neue Modul.
Es lag bei mir aber daran, dass ich, so glaube ich mich zu erinnern, in DOIFs oder notifys noch auf alte Readings geprüft/getriggert hatte und so unsinnige und häufige Befehle an den Roomba gesendet habe, die durch den Roomba mit kurzen Tönen quittiert wurden. Vielleicht ist das ja bei Dir auch der Fall?
[EDIT]: Antwort bezieht sich auf eine von raspklaus zwischenzeitlich gelöschte Frage, warum der Roomba bei Verwendung des neuen Moduls ab und zu einen Ton von sich gibt.

Viele Grüße,
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

Loredo

Zitat von: scooty am 11 Oktober 2016, 09:37:39
nach heutigem Update ist bei mir das Attribut "event-on-change-reading" ist nicht mehr auswählbar/setzbar


Da ist mir wohl ein Leerzeichen am Ende der Zeile 60 vor dem Anführungszeichen durchgerutscht. Hab ich korrigiert.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

raspklaus

Mit dem neuen Modul bekomme ich keine Meldungen vom Roomba mehr bzw er ist nicht mehr ansprechbar. Mit dem alten Modul hat der funktioniert.

Hier das List:

Internals:
   CFGFN
   CHANGED
   DEF        192.200.200.163
   DeviceName 192.200.200.163
   INTERVAL   15
   INTERVAL_MULTIPLIER 0.5
   NAME       roomba
   NR         2715
   STATE      absent
   TYPE       THINKINGCLEANER
   WEBHOOK_COUNTER 0
   WEBHOOK_PORT 80
   WEBHOOK_REGISTER sent
   WEBHOOK_URI /fhem/THINKINGCLEANER
   WEBHOOK_URL http://192.200.100.163:80/fhem/THINKINGCLEANER
   Readings:
     2016-10-11 09:29:52   power           off
     2016-10-11 09:29:52   presence        absent
     2016-10-11 09:29:52   state           absent
   Fhem:
     infix      THINKINGCLEANER
Attributes:
   cmdIcon    on-max:text_max on-spot:refresh on-delayed:time_timer dock:measure_battery_50 locate:rc_SEARCH
   devStateIcon on-delayed:rc_STOP@green:off on-max:rc_BLUE@green:off on-spot:rc_GREEN@red:off on.*:rc_GREEN@green:off dock:rc_GREEN@orange:off off:rc_STOP:on standby|remote:rc_YELLOW:on locate:rc_YELLOW .*:rc_RED
   icon       scene_cleaning
   pollInterval 30
   room       ToDo,Wohnzimmer
   webhookFWinstance WEB
   webhookHttpHostname 192.200.100.163
   webhookPort 80

Loredo

Ist 192.200.200.163 die IP deines Roomba (das wäre nämlich eine Public-IP, sicher dass es nicht 192.168.200.163 heißen muss)? Wenn nein, dann hast du das define falsch gesetzt und du musst dort die IP korrigieren.


Wenn doch, dann hört diese IP nicht auf Port 80 und FHEM bekommt ein Timeout bei der Abfrage von http://192.200.200.163. Außerdem ist dann ist webhookHttpHostname falsch gesetzt. Dort gehört die IP Adresse hinein, über die FHEM im Netzwerk für den Roomba erreichbar ist, die muss also anders sein als jene im define. Diese Einstellung ist aber erstmal unabhängig von der Erreichbarkeit und Steuerbarkeit des Roomba ansich.

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

raspklaus

Danke für´s Aufwecken  ;)

Die IP ist natürlich 192.200.100.163

Kaum macht man es richtig schon funktioniert es  ;)

scooty

Zitat von: Loredo am 11 Oktober 2016, 09:49:16
Da ist mir wohl ein Leerzeichen am Ende der Zeile 60 vor dem Anführungszeichen durchgerutscht. Hab ich korrigiert.
Danke für den schnellen Fix, event-on-change-reading ist wieder da und funktioniert.

Viele Grüße,
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

GregPac

Hallo zusammen,
ich nutze das Modul schon von Anfang an und es läuft sehr gut. Habe jetzt das Update vom Oktober gesehen. Im Vergleich zu meinem Modul hat es unter "Set" mehr Auswahlmöglichkeiten/Befehle. Wenn ich die Datei manuell in FHEM einbinden bleibt die kleine Auswahl!?!
Über das FHEM Update erhalte ich die 74_THINKINGCLEANER.pm 12401 2016-10-22.
Ist das die aktuelle? Und wenn ja, warum erhalte ich nicht die "große" Set Auswahl. Habe nur On Off Spot Clean und Dock.
FHEM Raspberry, CUL V3 868 // FS-20 Aktoren, div. Funksteckdosen, Homebridge

Ma_Bo

shutdown restart oder reload 74_THINKINGCLEANER.pm gemacht...?
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

GregPac

Hi,
Ja sorry hätte ich dazu schreiben können. Mache nach einem Update immer ein shutdown restart.
FHEM Raspberry, CUL V3 868 // FS-20 Aktoren, div. Funksteckdosen, Homebridge

Loredo

Es muss trotzdem etwas an deiner lokalen Installation durcheinander sein. Wenn du etwas schreibst von "im Vergleich zu meinem Modul" klingt das so, als hättest du ein inoffizielles Modul mit gleichem Namen oder ähnliches parallel installiert gehabt, was sich natürlich beißt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

GregPac

Hatte das nur auf deine Screenshots bezogen. Ich werde es nochmal testen die pm komplett zu löschen und die aktuelle manuell einzuspielen bzw. über das update.
FHEM Raspberry, CUL V3 868 // FS-20 Aktoren, div. Funksteckdosen, Homebridge

GregPac

Ok, jetzt läufts. Der Wald mit den ganzen Bäumen...
Hatte noch aus der Anfangszeit des Moduls eine 98_Thinkincleaner und die hat er immer angezogen. Datei gelöscht, restart und schon klappt es.
Besten Dank für die Hilfe.
FHEM Raspberry, CUL V3 868 // FS-20 Aktoren, div. Funksteckdosen, Homebridge

dantist

Falls jemand Interesse hat,  ich hätte einen Thinkingcleaner mit OVP abzugeben.

SamNitro

Lässt sich evtl auch die 900er Serie damit Steuern?
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

SamNitro

Ok dann gehe ich davon aus das es nicht geht, dachte das man die 900er Serie so einbinden kann, weil die von Haus aus W-LAN haben.
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Loredo

Die 900er Serie hat, wie du richtig sagst, werkseitig WLAN eingebaut. iRobot bietet derzeit aber keine offene Schnittstelle an:
http://homesupport.irobot.com/app/answers/detail/a_id/9840


Für die Unterstützung in FHEM wäre es ohnehin ein separated Modul. Hier geht es um eine der beiden Hacking-Möglichkeiten genannter älterer Modelle.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

SamNitro

(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)


Loredo

Ich denke das gehört eher in die Kategorie Wunschliste für ein neues Modul, das von einem 900er Besitzer zu entwickeln wäre.


Dieses Modul arbeitet mit der 3rd-Party Erweiterung ThinkingCleaner, nicht mit dem iRobots eigenen WLAN Gateway neuerer Modelle. Das zu vermischen macht keinen Sinn.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

thorschtn

Nur mal so zur Info:

http://www.thinkingcleaner.com/
Zitat
We are out of stock and there will be no new production. We did try but the problem is that some of the components we use in the Thinking Cleaner are not available anymore or if you can find them (or substitutes), those parts are very expensive. For a new production series we would have to redesign with new components and this is very expensive because of certifications and minimum order quantities.

... da hab ich wohl gerade noch so eben einen der letzten Thinkingcleaner bekommen.
NUC - FHEM & HA
MapleCUN, Homematic, 433MHz, AB440, 1-Wire Bewässerung & Pool, Jarolift (Signalduino), Signal Messenger, Denon AVR, LG WebOS, AmazonEcho, Jura S90 (ESP8266), Sonoff, Xiaomi Mii Sauger, Worx SO500i

onkeloki

ich krame diesen noch mal aus..
kennt noch jemand eine bezugsquelle für THINKINGCLEANER?

Loredo

Ich verkaufe mein ThinkingCleaner Modul für 70€ inkl. Versand.
Zu Erwähnen ist, dass die originale Kunststoffabdeckung für die Roomba 500er gegen eine passende für einen Roomba der 700er Serie ersetzt wurde.


Meldungen gerne per PN.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER