NEWS
[Beendet] Test Adapter ecovacs-deebot v0.6.x Latest
-
@stefande said in Test Adapter ecovacs-deebot v0.6.x Latest:
Das sollte ja auch keine Kritik, sondern nur ein Hinweis sein.
Ja so hatte ich es auch verstanden (als Hinweis)
-
Hallo zusammen,
benutzt jemand den Adapter im compact mode oder betreibt zumindest den ioBroker im compact mode (wo der Ecovacs Deebot Adapter läuft)?
-
Hallo zusammen,
Vielen Dank an die Entwickler für diesen tollen Adapter. Ich nutze ihn schon seit Februar 2020 erfolgreich mit meinem Deebot 950 Ozmo und bin sehr zufrieden mit dem Funktionsumfang und der Stabilität des Adapters.
Ich habe im Nachbarforum diesen Thread hier initiiert https://www.roboter-forum.com/index.php?thread/40850-deebot-ozmo-950-lässt-sich-jetzt-auch-per-iobroker-steuern-smarthome/ und dort habe ich auch Blockly Scripte zur Integration mit Alexa unter Nutzung dieses Adapters entwickelt und veröffentlicht.
Diese Scripte nutze ich täglich und steuere ausschließlich damit meinen Deebot und das funktioniert sehr zuverlässig, sogar dann noch, wenn ein Teil der Ecovacs Server Infrastruktur ausfällt, so dass man mit der App keine Verbindung zum Deebot aufbauen kann.
Im Prinzip nutze ich die folgenden Datenpunkte erfolgreich: relocate, spotArea, customArea, currentMapIndex, deebotPosition, relocationState und cleanstatus.
spotArea funktioniert wunderbar mit den per Komma getrennten Raumnummern. Eine einzige Sache ist mir hier aufgefallen:
Wenn man den Deebot in die andere Etage stellt und man kein relocate durchführt. Das heißt der currentMapIndex verweist noch auf die Karte der vorherigen Etage und man gibt nur eine Raumnummer bei spotArea an, dann reinigt der Deebot trotzdem alle Räume. Macht man jedoch vorher ein relocate und wartet, bis im Datenpunkt currentMapIndex die richtige Karte erscheint und füllt erst dann die spotArea mit der Raumnummer, funktioniert alles perfekt, es wird nur dieser Raum gereinigt. Vielleicht wäre hier noch ein Fix möglich.
relocate funktioniert sehr zuverlässig, ortet die aktuelle Position des Bots und befüllt currentMapIndex und deebotPosition erfolgreich mit den aktuellen Koordinaten des Bots.
customArea funktioniert auch perfekt, ich habe auch eine Spotreinigung in mein Blockly gebaut, also man stellt den Bot an eine beliebige Position im Haus und sagt "Alexa, Spotreinigung" und der Deebot reinigt dann ein Rechteck von 4 qm um den aktuellen Standort herum. Hierzu stoße ich ein relocate an, prüfe ob relocationState of OK geht und berechne dann aus den Koordinaten in deebotPosition die Eckpunkte des zu reinigenden Rechtecks und übertrage sie in customArea, daraufhin reinigt der Deebot genau das gewünschte Rechteck, echt top!
cleanstatus funktioniert auch zuverlässig, verwende ich dafür um falls gewünscht den Deebot mehrfach hintereinander ein und dieselbe Reinigungsaufgabe durchführen zu lassen, denn wenn der Status nicht mehr cleaning ist weiß ich, dass die aktuelle Reinigungsaufgabe beendet ist und ich eine neue Reinigungsaufgabe erteilen kann. Funktioniert übrigens sogar dann, wenn der Bot gerade seine Basis sucht.
Was ich cool fände bzw. mir noch aus Programmierer Sicht wünschen würde wäre es, wenn solche Felder wie cleanstatus oder relocationState Enums mit fest definierten Werten wären und keine Strings. Denn dann wüsste man gleich, welche Stati alles möglich sind und man eventuell bei der Programmierung berücksichtigen muss und müsste nicht erst durch ausprobieren recherchieren, welchen Wert die Felder haben, wenn der Bot gerade etwas bestimmtes tut.
Aus meiner Sicht funktioniert aber Version 0.6 so stabil, dass sie bedenkenlos auf den stable Branch gemerged werden kann.
-
@dj-tifosi said in Test Adapter ecovacs-deebot v0.6.x Latest:
Hallo zusammen,
Vielen Dank an die Entwickler für diesen tollen Adapter. Ich nutze ihn schon seit Februar 2020 erfolgreich mit meinem Deebot 950 Ozmo und bin sehr zufrieden mit dem Funktionsumfang und der Stabilität des Adapters.
Ich habe im Nachbarforum diesen Thread hier initiiert https://www.roboter-forum.com/index.php?thread/40850-deebot-ozmo-950-lässt-sich-jetzt-auch-per-iobroker-steuern-smarthome/ und dort habe ich auch Blockly Scripte zur Integration mit Alexa unter Nutzung dieses Adapters entwickelt und veröffentlicht.
Hallo @dj-tifosi
vielen Dank für den ausführlichen Bericht, das positive Fazit und auch den tollen Thread mit Deinen interessanten Beiträgen im Roboter-Forum
Diese Scripte nutze ich täglich und steuere ausschließlich damit meinen Deebot und das funktioniert sehr zuverlässig, sogar dann noch, wenn ein Teil der Ecovacs Server Infrastruktur ausfällt, so dass man mit der App keine Verbindung zum Deebot aufbauen kann.
Im Prinzip nutze ich die folgenden Datenpunkte erfolgreich: relocate, spotArea, customArea, currentMapIndex, deebotPosition, relocationState und cleanstatus.
spotArea funktioniert wunderbar mit den per Komma getrennten Raumnummern. Eine einzige Sache ist mir hier aufgefallen:
Wenn man den Deebot in die andere Etage stellt und man kein relocate durchführt. Das heißt der currentMapIndex verweist noch auf die Karte der vorherigen Etage und man gibt nur eine Raumnummer bei spotArea an, dann reinigt der Deebot trotzdem alle Räume. Macht man jedoch vorher ein relocate und wartet, bis im Datenpunkt currentMapIndex die richtige Karte erscheint und füllt erst dann die spotArea mit der Raumnummer, funktioniert alles perfekt, es wird nur dieser Raum gereinigt. Vielleicht wäre hier noch ein Fix möglich.
Du meinst, dass man hier automatisch den currentMapIndex aktualisieren könnte (ohne manuellen "relocate"), da die Raumnummer ja bereits eindeutig ist?
Da das eine Ozmo 950/920 spezifische Funktion ist, bin ich da jetzt nicht so drin in der Thematik - @boriswerner wird da aber bestimmt noch Feedback gebenrelocate funktioniert sehr zuverlässig, ortet die aktuelle Position des Bots und befüllt currentMapIndex und deebotPosition erfolgreich mit den aktuellen Koordinaten des Bots.
customArea funktioniert auch perfekt, ich habe auch eine Spotreinigung in mein Blockly gebaut, also man stellt den Bot an eine beliebige Position im Haus und sagt "Alexa, Spotreinigung" und der Deebot reinigt dann ein Rechteck von 4 qm um den aktuellen Standort herum. Hierzu stoße ich ein relocate an, prüfe ob relocationState of OK geht und berechne dann aus den Koordinaten in deebotPosition die Eckpunkte des zu reinigenden Rechtecks und übertrage sie in customArea, daraufhin reinigt der Deebot genau das gewünschte Rechteck, echt top!
cleanstatus funktioniert auch zuverlässig, verwende ich dafür um falls gewünscht den Deebot mehrfach hintereinander ein und dieselbe Reinigungsaufgabe durchführen zu lassen, denn wenn der Status nicht mehr cleaning ist weiß ich, dass die aktuelle Reinigungsaufgabe beendet ist und ich eine neue Reinigungsaufgabe erteilen kann. Funktioniert übrigens sogar dann, wenn der Bot gerade seine Basis sucht.
Was ich cool fände bzw. mir noch aus Programmierer Sicht wünschen würde wäre es, wenn solche Felder wie cleanstatus oder relocationState Enums mit fest definierten Werten wären und keine Strings. Denn dann wüsste man gleich, welche Stati alles möglich sind und man eventuell bei der Programmierung berücksichtigen muss und müsste nicht erst durch ausprobieren recherchieren, welchen Wert die Felder haben, wenn der Bot gerade etwas bestimmtes tut.
Hast Du vielleicht mal ein Beispiel, in welchem Adapter das gut gelöst ist, so dass wir uns ggf. daran orientieren können?
Wir versuchen aber unabhängig davon natürlich sowas auch zu dokumentieren. Eine Übersicht der "cleanstatus" ist z.B. hier zu finden.Aus meiner Sicht funktioniert aber Version 0.6 so stabil, dass sie bedenkenlos auf den stable Branch gemerged werden kann.
Das freut mich
-
Wenn man den Deebot in die andere Etage stellt und man kein relocate durchführt. Das heißt der currentMapIndex verweist noch auf die Karte der vorherigen Etage und man gibt nur eine Raumnummer bei spotArea an, dann reinigt der Deebot trotzdem alle Räume. Macht man jedoch vorher ein relocate und wartet, bis im Datenpunkt currentMapIndex die richtige Karte erscheint und füllt erst dann die spotArea mit der Raumnummer, funktioniert alles perfekt, es wird nur dieser Raum gereinigt. Vielleicht wäre hier noch ein Fix möglich.
Dank dir. Das Verhalten kann ich bestätigen. Das kann man allerdings nur prozessmäßig abfangen. Bisher haben wir keinerlei queueing-Mechanismus, weswegen auch kein automatischer relocate gemacht wird. Der Prozess ist folgendermaßen: nimmst du den Bot hoch um ihn in eine andere Etage zu stellen, geht der relocationState auf "required". Wenn du den sowieso immer abfragst, solltest du hier vor jeder Reinigung schauen, ob der auf "required" steht und ggf. ein relocate durchführen.
Zwar startet der Bot von sich aus bei einer Reinigung auch automatisch das relocate, aber das scheint mit der spotArea-Reinigung zusammen nicht zu funktionieren (das selbe könnte bei einer customArea Reinigung auftauchen, hier machst du ja aber immer den relocate, werde ich nochmal testen). Auf jeden Fall fährt er schon vor der Bestätigung der neuen Karte los und macht dann wohl eine Erkennungsfahrt. Eine der größeren Dinge auf der Roadmap ist ein queueing, sodass man auch mehrere spotArea Buttons nacheinander drücken kann bzw. ihn auch direkt nach dem Reinigen stoppen kann (wenn z.B. keine Ladestation in der Etage steht).
Da bist du uns aber auch mit deinem Skript schon etwas voraus -
Hallo,
ich habe den Adapter bisher auch schon erfolgreich getestet mit einem Ozmo950 und bin sehr zufrieden.
Ein Sache vermisse ich allerdings etwas. Gibt es eine Möglichkeit den Sauger zu einer bestimmten
Position (Koordinate) fahren zu lassen? Oder habe ich die nur noch nicht gefunden?
Meine Idee wäre, den Sauger nach einer bestimmten Zeit z.B. zum Mülleimer fahren zu lassen um die Staubbox zu entleeren oder den Sauger auf Knopfdruck z.B. in eine "Wartungsposition" fahren zu lassen. -
@mjaehrling direkt geht das nicht, aber über einen kleinen Umweg schon:
Setze den Bot mal dorthin, wo er parken soll, dann mach ein relocate, dann merk dir die Koordinaten die in deebotPosition stehen.
Wenn du ihn nun dorthin fahren lassen möchtest, dann errechne dir ein Rechteck ein paar Zentimeter um die gewünschte Parkposition herum, also deebotPosition sei (x, y) dann errechne dir ein Rechteck (x+500, y+500, x, y) und dieses Rechteck schreibst du in den Datenpunkt customArea.
Der Deebot fährt nun dorthin und reinigt diesen 50x50 cm Bereich, sobald der Datenpunkt von cleaning auf Idle wechselt machst du ein pause oder stop und der Deebot wird das zurückfahren an die Ladestation abbrechen und dort in der Nähe des gewünschten Bereichs stehen bleiben.
-
@mjaehrling @dj-tifosi genau so ist es. Es gibt leider keinen GoTo-Befehl und auch manuelles navigieren über die Move-Kommandos (experimentell implementiert) wird nicht zum Erfolg führen. Leider muss immer eine custom-Reinigung gestartet werden.
-
Hi. Ich bin jetzt umgestiegen von dem 930 auf den 950. Adapter funktioniert auch super also macht alles was er soll. Gibt es eigentlich irgendwie eine Möglichkeit die Karte die er erstellt hat irgendwie auszulesen das ich sie auf dem PC habe? Muss nicht die Live Karte sein. Vielleicht ganz praktisch für eine Vis dann das man da dann anklicken kann welche Bereiche gereinigt werden sollen.
Soll jetzt nicht so sein wie auf dem Handy das es sofort übernommen wird. Reicht ja wie gesagt auch einfach nur die Karte und mal legt Buttons drüber oder so.
-
@Denkra said in Test Adapter ecovacs-deebot v0.6.x Latest:
Hi. Ich bin jetzt umgestiegen von dem 930 auf den 950. Adapter funktioniert auch super also macht alles was er soll.
Hi @Denkra
feut mich, dass der Adapter bei Dir gut funktioniert. Danke für die Rückmeldung
Gibt es eigentlich irgendwie eine Möglichkeit die Karte die er erstellt hat irgendwie auszulesen das ich sie auf dem PC habe? Muss nicht die Live Karte sein. Vielleicht ganz praktisch für eine Vis dann das man da dann anklicken kann welche Bereiche gereinigt werden sollen.
Nein, aktuell nicht. Das wird auch erst möglich sein, wenn wir die Erstellung der Live Karte soweit implementiert haben. Auf unserer Roadmap ist das eher weiter hinten eingeordnet, da wir andere Sachen höher priorisiert haben.
Vielleicht findet sich ja noch ein Entwickler der das übernehmen möchte
Soll jetzt nicht so sein wie auf dem Handy das es sofort übernommen wird. Reicht ja wie gesagt auch einfach nur die Karte und mal legt Buttons drüber oder so.
-
Hallo zusammen,
es wäre cool, wenn möglichst viele bei dieser Umfrage mitmachen würden:
https://forum.iobroker.net/topic/34383/umfrage-ecovacs-saugroboter
ich möchte mir gerne mal einen Überblick verschaffen, welche Modelle hier im Einsatz sind
Vielen Dank im voraus
-
@mrbungle64
wie schaut es aus geht die Entwicklung noch weiter vor allen Live Map? -
@ChrisXY said in Test Adapter ecovacs-deebot v0.6.x Latest:
Hallo @ChrisXY
wie schaut es aus geht die Entwicklung noch weiter
ja, die Entwicklung hatte doch auch auch nie aufgehört, oder?
Habe gerade vor ca. einer Woche die Version 1.0.4 (Latest Repo) veröffentlicht:
https://github.com/mrbungle64/ioBroker.ecovacs-deebot#104vor allen Live Map?
nein, daran arbeitet aktuell niemand - das hat keine hohe Priorität.
Die URLs zu Reinigungskarten stecken aber in den Datenpunkten "cleaninglog.last20Logs" und "cleaninglog.lastCleaningMapImageURL". Hoffe das hilft Dir schon mal weiter. -
@ChrisXY said in Test Adapter ecovacs-deebot v0.6.x Latest:
@mrbungle64
wie schaut es aus geht die Entwicklung noch weiter vor allen Live Map?Hallo zusammen,
weil immer wieder nach einer Live Map gefragt wird:mich würde mal interessieren, ob es einen praktischen Nutzen für eine Live Map in einer Visualisierung/VIS gibt.
Für den Fall, dass man unterwegs ist oder sich in einem anderen Stockwerk befindet und man es mal nachschauen möchte an welcher exakten Position der steckt kann man ja auch die Mobile App öffnen.
Es schaut doch noch ansonsten niemand regelmäßig dem Roboter zu, wenn er durch die Wohnung/das Haus fährt, oder?
Ich verstehe, dass es nett aussieht, wenn man das in einer Vis integriert hat, aber rechtfertig das wirklich den Entwicklungsaufwand + dass der Server (oft ein Raspi o.ä. mit knappen Ressourcen) ständig neue Bilder erstellen muss?
Was diesen Adapter hier berifft:
- Der Enwicklungsaufwand eine Live Map zu implementieren - so dass die auf meinen beiden Geräten (Deebot 901 und Deebot Ozmo 930) funktioniert - wäre vielleicht noch recht überschaubar.
- Allerdings gibt es:
- keine Garantie, dass die dann auch direkt auf einem Ozmo T8 (als Beispiel) funktioniert
- weiterhin keine öffentlich zugängliche Dokumentation der Ecovacs API
- Im Falle der Ecovacs Geräte muss jedes einzelne Bild in der Live Map berechnet werden und das bringt wahrscheinlich viele Raspberry Pi 3 Geräte (o.ä.) an ihre Grenzen, wenn da schon ein paar andere Adapter Instanzen drauf laufen.
- Allerdings gibt es:
Meine grundsätzlicher Anspruch bei dem Adapter ist es, dass möglichst viele Modelle unterstützt werden (und das dann auch möglichst stabil funktoniert) und dass man mit dem Adapter Dinge umsetzen und automatisieren kann, welche mit der Mobile App nicht möglich sind. Darauf liegt dann auch mein Focus.
Es ist halt zu bedenken (und das gilt nicht nur für diesen Adapter hier):- die dafür zur Verfügung stehende Freizeit (insbesondere die wirklich dafür zur Verfügung stehende freie Zeit) ist recht knapp.
- der Support- und Maintenance-Aufwand steigt mit jedem Feature welches man implementiert
Von daher sollte man sich auf das Wesentliche konzentrieren.
Nun noch ein paar Hinweise und Tipps:
- unter "map.deebotPositionCurrentSpotAreaID" kann man den Bereich (spot area) abfragen, in welchem der Roboter sich gerade befindet
- unter "map.currentMapName" kann man die aktive Karte und damit das Stockwerk abfragen (bei mehreren Stockwerken/Karten)
- Generell finden sich unter "map" einige Datenpunkte über die man Dinge automatisieren könnte oder auch in einer Vis darstellen könnte
- Die URLs zu Reinigungskarten stecken stecken - wie gesagt - in den Datenpunkten "cleaninglog.last20Logs" und "cleaninglog.lastCleaningMapImageURL". Damit lassen sich auch Karten in der Vis integrieren.
- Der Enwicklungsaufwand eine Live Map zu implementieren - so dass die auf meinen beiden Geräten (Deebot 901 und Deebot Ozmo 930) funktioniert - wäre vielleicht noch recht überschaubar.
-
@mrbungle64 said in Test Adapter ecovacs-deebot v0.6.x Latest:
"cleaninglog.last20Logs" und "cleaninglog.lastCleaningMapImageURL"
Hallo, danke für die Ausführliche Erklärung. Mein Aivi T8 hat unter "cleaninglog.last20Logs" und "cleaninglog.lastCleaningMapImageURL" keine einträge. In der App tauchen diese aber auf ...
Ich würde gerne unter meinem Esszimmertisch morgends sauber machen. Wie löst ihr das ? Ein eigenen Raum dafür erstellen? Oder mit customArea_cleanings ? Wobei ich das relativ schwer finde an die Koordinaten zu kommen ? Und wie genau müsste da der befehl aussehen für ein Rechteck ? Ein neuen Raum erstellen wäre hier doch einfacher ?
-
@ChrisXY said in Test Adapter ecovacs-deebot v0.6.x Latest:
@mrbungle64 said in Test Adapter ecovacs-deebot v0.6.x Latest:
"cleaninglog.last20Logs" und "cleaninglog.lastCleaningMapImageURL"
Hallo, danke für die Ausführliche Erklärung. Mein Aivi T8 hat unter "cleaninglog.last20Logs" und "cleaninglog.lastCleaningMapImageURL" keine einträge. In der App tauchen diese aber auf ...
Das ist leider immer mal wieder ein Problem - vor allem bei den 950 basierten Modellen (920/950/T8). Bisher gibt es leider keine Lösung dafür...
Ich würde gerne unter meinem Esszimmertisch morgends sauber machen. Wie löst ihr das ? Ein eigenen Raum dafür erstellen? Oder mit customArea_cleanings ? Wobei ich das relativ schwer finde an die Koordinaten zu kommen ? Und wie genau müsste da der befehl aussehen für ein Rechteck ? Ein neuen Raum erstellen wäre hier doch einfacher ?
Eine Möglichkeit ist es den benutzerdefinierten Bereich einmalig per App zu starten und den Bereich mit "map.lastUsedCustomAreaValues_save" zu speichern. Danach kannst Du diesen Bereich unter "map.savedCustomAreas" per Button starten.
-
@mrbungle64 Leider bleibt der Wert "map.lastUsedCustomAreaValues_save" leer
-
@ChrisXY said in Test Adapter ecovacs-deebot v0.6.x Latest:
@mrbungle64 Leider bleibt der Wert "map.lastUsedCustomAreaValues_save" leer
"map.lastUsedCustomAreaValues_save" sollte ein Button sein. Wenn Du vorher einen benutzerdefinierte Reinigung gestartet hast sollten unter "map.lastUsedCustomAreaValues" die Koordinaten eingetragen sein. Diese kannst Du dann per "lastUsedCustomAreaValues_save" speichern.
Anschließend sollte ein Kanal "savedCustomAreas" unter "map" angelegt werden und dort sollte ein entsprechender Datenpunkt angelegt sein (z.B. "map.savedCustomAreas.customArea_1603182227"). Dort können quasi beliebig viele Bereiche gespeichert werden und anschließend wieder gestartet werden.
Es ist dann empfehlenswert den "Name" mit einem sprechenden Namen (wie z.B. "Esszimmertisch") zu versehen. Standardmäßig ist es so was wie "myAreaName (mapID 1662215234, customArea -1924,-2092,1717,-4443)". -
@mrbungle64
genau so habe ich es auch gemacht. Vielleicht geht es aktuell nicht weil diese PRO Schrubbplatte angeschlossen ist. Werde es später nochmal versuchen. Hab den Button mehrfach versucht vor start während start beim ende / Abbruch. -
@ChrisXY said in Test Adapter ecovacs-deebot v0.6.x Latest:
@mrbungle64
genau so habe ich es auch gemacht. Vielleicht geht es aktuell nicht weil diese PRO Schrubbplatte angeschlossen ist. Werde es später nochmal versuchen. Hab den Button mehrfach versucht vor start während start beim ende / Abbruch.Wichtig ist, dass es eine Benutzerdefinierte Reigung ist (also keine Bereichsreinigung) und anschließend unter "map.lastUsedCustomAreaValues" Koordinaten eingetragen sind.