mrbungle64 / ioBroker.ecovacs-deebot

Control your Ecovacs Deebot and yeedi vacuum cleaner with ioBroker
MIT License
62 stars 11 forks source link

Deebot Ozmo 950 bestimmte Bereiche reinigen lassen (Spot Area?) #12

Closed sync85 closed 4 years ago

sync85 commented 4 years ago

Hallo @all

Vorweg, ich finde es genial wie aktiv, und zudem echt erfolgreich an diesem Adapter gearbeitet wird.

Ich hoffe hier ist das so richtig erstellt bin ein absoluter GitHub Neuling was selbst erstellen/ kommentieren an geht.

Ich möchte gerne den Deebot über die Spot Area funktion bestimmte bereiche reinigen lassen.

Allerdings versteh ich das mit den spot areas nicht. Ich lese immer etwas von 0-9 sei valid und in der Ecovacs app zu finden. Allerdings wenn ich in der App schaue hab ich nur buchstaben für die Bereiche. Ich versuche halt meine Bereiche die ich per app leicht starten kann über alexa anzustoßen: zum Beispiel. Alexa saug die Küche (wäre dann als Beispiel Bereich F). Nur wie geb ich das an wenn ich nur zahlen von 0-9 nutzen kann. Hatte schonmal mit den Zahlen rumgetestet aber da verhält sich der Bot recht seltsam. Zbs bei 1 fährt er aus der station dreht den Sauger auf und bleibt so stehen?! Oder einmal mit F versucht, startet er sogar aber saugt dann anscheinend das Wohnzimmer.

Alles etwas sehr seltsam. Hoffe mir kann jemand helfen.

mrbungle64 commented 4 years ago

Hallo @ALL

Vorweg, ich finde es genial wie aktiv, und zudem echt erfolgreich an diesem Adapter gearbeitet wird.

Ich hoffe hier ist das so richtig erstellt bin ein absoluter GitHub Neuling was selbst erstellen/ kommentieren an geht.

Ich möchte gerne den Deebot über die Spot Area funktion bestimmte bereiche reinigen lassen.

Allerdings versteh ich das mit den spot areas nicht. Ich lese immer etwas von 0-9 sei valid und in der Ecovacs app zu finden. Allerdings wenn ich in der App schaue hab ich nur buchstaben für die Bereiche. Ich versuche halt meine Bereiche die ich per app leicht starten kann über alexa anzustoßen: zum Beispiel. Alexa saug die Küche (wäre dann als Beispiel Bereich F). Nur wie geb ich das an wenn ich nur zahlen von 0-9 nutzen kann. Hatte schonmal mit den Zahlen rumgetestet aber da verhält sich der Bot recht seltsam. Zbs bei 1 fährt er aus der station dreht den Sauger auf und bleibt so stehen?! Oder einmal mit F versucht, startet er sogar aber saugt dann anscheinend das Wohnzimmer.

Alles etwas sehr seltsam. Hoffe mir kann jemand helfen.

Hallo @sync85,

Du hast recht - die Dokumentation dazu ist missverständlich und ausbaufähig ;) Auch lässt sich das im Adpater sicherlich eleganter umsetzen.

Gedacht war es so:

Die API von Ecovacs erwartet numerische Werte - zumindest beim meinem Deebot Ozmo 930. So habe ich das erst mal mit numerischen Werten umgesetzt.

Beim Deebot Ozmo 950 kann es sein, dass die API andere Werte erwartet (z.B. den Buchstaben) @boriswerner Vielleicht kannst Du mehr dazu sagen :)

sync85 commented 4 years ago

ah also Buchstabe nach Zahl sozusagen. A = 0 B=1 usw. Da hätte ich auch drauf kommen können lol. Muss ich dann direkt mal fix testen. Besten Dank erstmal für die schnelle Rückmeldung :)

Es funktioniert mit 5 für F! :)

sync85 commented 4 years ago

sorry für Doppelpost aber weiß nicht ob edit untergehen würde.

Ich hab das jetzt nach deiner Erklärung für meine Bereiche Küche, Flur Wohnzimmer und Schlafzimmer angewendet. Und kann sagen es läuft einwandfrei :)

mrbungle64 commented 4 years ago

sorry für Doppelpost aber weiß nicht ob edit untergehen würde.

Ich hab das jetzt nach deiner Erklärung für meine Bereiche Küche, Flur Wohnzimmer und Schlafzimmer angewendet. Und kann sagen es läuft einwandfrei :)

Das freut mich :+1:

Kleiner Tipp noch: In der Spalte "Name" kannst du die Bereiche dann auch entsprechend bennen. Das wird später aber auch über die Adapter Einstellungen direkt möglich sein - so zumindest der Plan :)

Btw.: Ich habe auch schon angefangen die Doku anzupassen ;)

sync85 commented 4 years ago

Ich hab die Alexa Ansteuerung (zum Beispiel Alexa sauge die Küche) jetzt mit einem simplen Datenpunkt je Bereich, der dann im IOT Adapter hinzugefügt wurde, und einem simplen Blockly script das diese prüft umgesetzt. :)

Eventuell gehts einfacher aber so läuft es :)

Opa0815 commented 4 years ago

Hi Sascha, super Job! Meine Bereiche gehen bis K (zwei Stockwerke). Gibt es eine Möglichkeit einen 11ten Bereich einzurichten?

mrbungle64 commented 4 years ago

Hi Sascha, super Job! Meine Bereiche gehen bis K (zwei Stockwerke). Gibt es eine Möglichkeit einen 11ten Bereich einzurichten?

Hi @Opa0815

ich denke das bekommen wir hin :)

Btw: Hast Du auch einen Deebot Ozmo 950?

Opa0815 commented 4 years ago

Btw: Hast Du auch einen Deebot Ozmo 950?

Klingt vielversprechend. Jap, Ozmo 950

boriswerner commented 4 years ago

@Opa0815 hast du die beiden Stockwerke auf einer Karte? Wie hast du denn das hinbekommen? Ich bekomme das nur über die beiden separaten Karten hin und da fängt er wieder bei A an.

Opa0815 commented 4 years ago

@Opa0815 hast du die beiden Stockwerke auf einer Karte? Wie hast du denn das hinbekommen? Ich bekomme das nur über die beiden separaten Karten hin und da fängt er wieder bei A an.

Ich habe das auch auf 2 Karten. Allerdings sind bei mir im EG nur die Räume B, C, F, G, I und K. Ich vermute der Rest ist im OG (sind nämlich genau 5). Kann es aber grade nicht sehen da ich die Räume im OG benamst habe. Werde morgen mal den 950 ins OG stellen und die Namen rauswerfen.

boriswerner commented 4 years ago

Das scheint er wohl zumachen, wenn man Bereiche löscht. Hier meine Karten. Im EG habe ich zusammengeführt, da hat er A, B und C, im OG habe ich einige gelöscht (er kommt mit den Spiegeltüren des PAX nicht klar ;-), da gibt es Lücken. Screenshot_20200219-073410 Screenshot_20200219-073359

Ich versuche mal herauszufinden, ob man die verfügbaren Bereiche abfragen kann. Es gibt da einige Funktionen, die die Maps betreffen. Wäre ja cool, wenn man direkt die Bereiche dann auch in ioBroker anlegen lassen könnte und vielleicht sogar die Namen mitbekommt. Ich forsche :-)

Opa0815 commented 4 years ago

Das scheint er wohl zumachen, wenn man Bereiche löscht.

Das scheint es zu sein. Im OG habe ich A, B, C, D, und F

Im EG nur die Räume B, C, F, G, I und K.

boriswerner commented 4 years ago

So, ich hab es nun auch hinbekommen die verfügbaren Bereiche, inkl. der ggf. vergebenen Bezeichnung (Wohnzimmer, Esszimmer, ...) pro Karte auszulesen. Diese könnte man dann später automatisch in ioBroker anlegen lassen, sodass man immer nur die verfügbaren Areas bekommt. Etwas tricky wird aber wahrscheinlich wie man das mit den Maps in ioBroker koordiniert bekommt, da man ja für den 950 immer die aktive Karte durch ein Relocating bestimmen muss und nur dann die entsprechenden Bereiche zur Verfügung hat.

Im Moment räumen wir gerade erstmal die library etwas auf, bis es an neue Funktionen gehen wird.

Die technischen Infos der verfügbaren Funktionen hab ich schonmal hier grob dokumentiert (die Tabelle ist recht breit, daher am besten einmal kopieren und in Excel einfügen um alles zu sehen): https://github.com/boriswerner/ecovacs-API-docs/wiki/commands-toAPI-Deebot-Ozmo-950

Opa0815 commented 4 years ago

Super, danke!

Opa0815 commented 4 years ago

gibt es hier schon was neues?

Meine Bereiche gehen bis K (zwei Stockwerke). Gibt es eine Möglichkeit einen 11ten Bereich einzurichten?

ich denke das bekommen wir hin :)

mrbungle64 commented 4 years ago

gibt es hier schon was neues?

Meine Bereiche gehen bis K (zwei Stockwerke). Gibt es eine Möglichkeit einen 11ten Bereich einzurichten?

ich denke das bekommen wir hin :)

@Opa0815 Ja, der Code war schon geschrieben - dann ist mir aber aufgefallen, dass die Sortierung der Datenpunkte im Admin dann etwas unschön ist. Da war ich nicht so glücklich mit.

Beispiel:

Da diese Lösung sowieso schon nicht die beste war ("0" anstatt "A" bzw. individuell) würde ich da gerne einen anderen Ansatz finden wolllen.

@boriswerner Was ist Deine Meinung dazu?

boriswerner commented 4 years ago

Als kurze Zwischenlösung könnte man wohl nur die zusätzlichen Buttons einfügen, die über die Indizes laufen. Man könnte höchstens noch direkt im Bot abfragen, welche Indizes (map-übergreifend) überhaupt zur Verfügung stehen, aber dann ist man fast schon bei der großen Lösung:

Beim 950 wäre meine präferierte Lösung nämlich, das in die Maps einzubauen, sodass man nachher folgende Struktur hätte: path value
map.12345678
map.12345678.mapIndex 0
map.12345678.mapMID 12345678
map.12345678.mapName Erdgeschoss
map.12345678.spotArea_clean textinput über Index
map.12345678.spotAreas
map.12345678.spotAreas.0.spotAreaIndex 0
map.12345678.spotAreas.0.spotAreaName A
map.12345678.spotAreas.0.spotArea_clean button
map.12345678.spotAreas.1.spotAreaIndex 1
map.12345678.spotAreas.1.spotAreaName Wohnzimmer
map.12345678.spotAreas.1.spotArea_clean button
map.12345678.spotAreas.5.spotAreaIndex 5
map.12345678.spotAreas.5.spotAreaName F
map.12345678.spotAreas.5.spotArea_clean button
map.56789101
map.56789101.mapIndex 1
map.56789101.mapMID 56789101
map.56789101.mapName Obergeschoss
map.56789101.spotArea_clean textinput über Index
map.56789101.spotAreas
map.56789101.spotAreas.0.spotAreaIndex 0
map.56789101.spotAreas.0.spotAreaName Schlafzimmer
map.56789101.spotAreas.0.spotArea_clean button

Je nachdem in welcher currentMap (das ist ja bereits implementiert für den 950) man sich befindet, könnte man dann die entsprechenden SpotAreas ansprechen. Wenn der Bot nicht in der Etage steht, kann man erst ein relocate anstoßen und wenn dann die Karte immernoch nicht übereinstimmt, gibt man einen Fehler und startet die Reinigung nicht.

mrbungle64 commented 4 years ago

Als kurze Zwischenlösung könnte man wohl nur die zusätzlichen Buttons einfügen, die über die Indizes laufen. ...

@Opa0815 @boriswerner

ok, ich baue das dann am WE mal als Zwischenlösung ein.

... Man könnte höchstens noch direkt im Bot abfragen, welche Indizes (map-übergreifend) überhaupt zur Verfügung stehen, aber dann ist man fast schon bei der großen Lösung:

Beim 950 wäre meine präferierte Lösung nämlich, das in die Maps einzubauen, sodass man nachher folgende Struktur hätte:

path value map.12345678
map.12345678.mapIndex 0 map.12345678.mapMID 12345678 map.12345678.mapName Erdgeschoss map.12345678.spotArea_clean textinput über Index map.12345678.spotAreas
map.12345678.spotAreas.0.spotAreaIndex 0 map.12345678.spotAreas.0.spotAreaName A map.12345678.spotAreas.0.spotArea_clean button map.12345678.spotAreas.1.spotAreaIndex 1 map.12345678.spotAreas.1.spotAreaName Wohnzimmer map.12345678.spotAreas.1.spotArea_clean button map.12345678.spotAreas.5.spotAreaIndex 5 map.12345678.spotAreas.5.spotAreaName F map.12345678.spotAreas.5.spotArea_clean button map.56789101
map.56789101.mapIndex 1 map.56789101.mapMID 56789101 map.56789101.mapName Obergeschoss map.56789101.spotArea_clean textinput über Index map.56789101.spotAreas
map.56789101.spotAreas.0.spotAreaIndex 0 map.56789101.spotAreas.0.spotAreaName Schlafzimmer map.56789101.spotAreas.0.spotArea_clean button Je nachdem in welcher currentMap (das ist ja bereits implementiert für den 950) man sich befindet, könnte man dann die entsprechenden SpotAreas ansprechen. Wenn der Bot nicht in der Etage steht, kann man erst ein relocate anstoßen und wenn dann die Karte immernoch nicht übereinstimmt, gibt man einen Fehler und startet die Reinigung nicht.

Klingt gut - den Ansatz sollte man perspektivisch verfolgen

Opa0815 commented 4 years ago

Klingt gut aus meiner Sicht. Gibt es eigentlich evtl. einen Link zu den Maps?

boriswerner commented 4 years ago

@Opa0815 was meinst du mit Link? Ein Bild? Das gibt es nur "fertig" für das Reinigungsprotokoll (welches aber in Moment nicht vernünftig funktioniert, ist so kaputt wie in der App). Die aktuellen, gespeicherten Karten bekommt man nur als Punkte/Koordinaten. Das ist wie beim Roborock. Machbar aber etwas weiter hinten in der Prioritätenliste.

Opa0815 commented 4 years ago

Ja, meinte den Link zum Bild den Maps, aber nicht zum Liveview, würde mich auch wundern wenn es das gäbe.

Aber danke für die Info

mrbungle64 commented 4 years ago

@Opa0815 @boriswerner

In der Version, die ich gerade auf GitHub veröffentlich habe sind bis zu 19 Bereiche möglich. Hoffe, dass die 19 erst mal reichen ;)

Opa0815 commented 4 years ago

Anbau ist derzeit nicht geplant. 😁 Danke!