mrbungle64 / ioBroker.ecovacs-deebot

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

X2: "Benutzerdefinierte Reinigung" und weiteres #623

Open aski71 opened 6 months ago

aski71 commented 6 months ago

The feature request

Wie im anderen Forum besprochen: Die App stellt eine Möglichkeit zur Verfügung, benutzerdefinierte Reinigungen zu definieren, zu benennen und zu starten. Es wäre schön, wenn man solche benutzerdefinierte Reinigungsprogramme aus ioBroker heraus starten könnte.

Which model do you own?

Other model

Which version of the ioBroker adapter are you currently using?

latest

Additional information

Ich nutze einen Deebot T20.

mrbungle64 commented 6 months ago

@aski71

Du hattest mir im Forum ja schon mal den Payload geschickt:

[
    {
        "state": 0,
        "scid": "5890",
        "type": 0,
        "name": "KF_Mop",
        "mid": "202163637",
        "content": "1,0,Küche,1,0,9,0;1,6,Flur,1,0,9,0;"
    },
    {
        "state": 0,
        "scid": "5346",
        "type": 0,
        "name": "Taeglich",
        "mid": "202163637",
        "content": "1,1,Wohnzimmer,1,0,9,1;1,7,Schlafzimmer,1,0,9,1;"
    }
]

Könntest du mal versuchen herauszufinden, was die 7 Komma-separierten Werte im Property content jeweils bedeuten? Die Werte für die Bereiche sind dann ja noch mal mit einem Semikolon getrennt.

Mein Vermutung:

Du könntest mal schauen, ob einzelne Werte mit Werten unter map.[mapID].spotAreas.[spotAreaID].cleanPreference matcht.

aski71 commented 5 months ago

Sorry. Ich war jetzt eine Weile nicht hier. Da mein neuer T20 nicht unter wichtige Möbel passte, habe ich ihn leider zurück gegeben und durch einen X2 ersetzt. Ich kann die Tests also nur noch für den X2 machen.

Nach erster Beobachtung kommen da nicht zwangsläufig alle Werte rüber, wie beim T20. Ich habe zum Beispiel festgestellt, dass der Gerätestatus nicht aktualisiert wurde, wenn ich den X2 per App gestartet habe.

Auch startet er nicht, wenn man z.B. spotArea="6,7" setzt. Er tut einfach gar nichts.

Komischerweise wird der Gerätestatus aktualisiert, wenn man die automatische Reinigung über den ioBroker startet. So ganz verstanden hab ich es noch nicht.

Ich bin aber gerne bereit, den X2 mit Dir durchzutesten.

Jetzt zu den Zahlen oben: So wie ich das interpretiere, muss man das wiefolgt lesen:

1,0,Küche,1,0,9,0 1,6,Flur,1,0,9,0

Das ist die jeweilige Einstellung, was er für den Raum machen soll. Die zweite und dritte Stelle ist genau, was Du sagst. Die letzte Stelle ist der cleaningMode.

Ich hatte jetzt versucht, mittels getScene die neu definierten benutzerdefinierten Reinigungen des X2 abzurufen. Leider kriege ich in der responsePayload nichts zurück. Stattdessen wird aber in der Payload zur map was ergänzt. Nämlich eine id.

{
  "mid": "1882674456",
  "id": "27386302"
}

Muss ich da was anders machen?

mrbungle64 commented 5 months ago

@aski71

Das mit der id ist soweit ok, dass die eingetragen wird. Da musst du nichts anders machen. Da hat sich aber wohl am getScene Befehl was geändert ... Mal schauen wie wir das früher oder später rausfinden können.

Du könntest wegen dem Gerätestatus mal jeweils den getCleanInfo_V2 Befehl ausführen (leerer payload). Da sollte dann ein neuer Status im responsePayload zu finden sein.

aski71 commented 5 months ago

getCleanInfo_V2 ergibt:

{ "state": "idle", "trigger": "none" }

mrbungle64 commented 5 months ago

getCleanInfo_V2 ergibt:

{ "state": "idle", "trigger": "none" }

Sorry, die Info hatte gefehlt: während einer Reinigung wo der Status fehlt bzw. falsch ist 😉

aski71 commented 5 months ago

Ah, ok. 😀 Beobachte ich dann nächstesmal. Kann ich noch was bzgl. der benutzerdefinierten Programme und der Spotreinigung beitragen?

mrbungle64 commented 5 months ago

Ah, ok. 😀 Beobachte ich dann nächstesmal.

Alles klar 👍🏻

Kann ich noch was bzgl. der benutzerdefinierten Programme und der Spotreinigung beitragen?

Wenn du ein iPhone oder iPad hast könntest du mit mitmproxy mitschneiden was von der Ecovacs Home App an die API gesendet wird.

aski71 commented 5 months ago

Ich habe gestern noch versucht mitmproxy auf einer Linux-Kiste zum Laufen zu kriegen, bin aber bislang gescheitert. Wenn ich es starte, crashed es, weil es eine Datei nicht findet. Ich finde aber im Netz nix dazu:

ak@experimental:~$ sudo mitmproxy -m socks5 -rawtcp
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/mitmproxy/addons/readfile.py", line 63, in load_flows_from_path
    with open(path, "rb") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'awtcp'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/mitmproxy/addons/readfile.py", line 72, in doread
    await self.load_flows_from_path(ctx.options.rfile)
  File "/usr/lib/python3/dist-packages/mitmproxy/addons/readfile.py", line 67, in load_flows_from_path
    raise exceptions.FlowReadException(str(e)) from e
mitmproxy.exceptions.FlowReadException: [Errno 2] No such file or directory: 'awtcp'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/mitmproxy/master.py", line 86, in run_loop
    loop()
  File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 287, in run
    self._run()
  File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 385, in _run
    self.event_loop.run()
  File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 1494, in run
    reraise(*exc_info)
  File "/usr/lib/python3/dist-packages/urwid/compat.py", line 58, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/mitmproxy/addons/readfile.py", line 74, in doread
    raise exceptions.OptionsError(e) from e
mitmproxy.exceptions.OptionsError: [Errno 2] No such file or directory: 'awtcp'

mitmproxy has crashed!
Please lodge a bug report at:
    https://github.com/mitmproxy/mitmproxy

Ich habe es auch mal mit dem Docker Image versucht. Wenn ich das starte, bekomme ich zwar eine Benutzeroberfläche, habe aber keine Ahnung, was ich dann tun muss, damit die Helper App sich verbindet und Daten liefert.

Weißt Du da eventuell Bescheid? Ich mach auch mal ein Ticket dort auf.

mrbungle64 commented 5 months ago

@aski71

Ich habe diese Helper App bisher nicht benutzt, von daher habe ich da leider keine Erfahrungswerte.

Auf meinem Linux-Desktop habe ich die Version 6.0.2 von mitmproxy installiert und benutze da "mitmweb". Auf dem iPad habe ich das Zertifikat von mitmproxy installiert und stelle dann jeweils den Proxy auf den Host mit mitmproxy (und später wieder zurück)

Beim Mitschneiden sind dann die Posts an https://api-app.dc-eu.ww.ecouser.net/api/iot/devmanager.do interessant.

aski71 commented 5 months ago

@aski71

Ich habe diese Helper App bisher nicht benutzt, von daher habe ich da leider keine Erfahrungswerte.

Auf meinem Linux-Desktop habe ich die Version 6.0.2 von mitmproxy installiert und benutze da "mitmweb". Auf dem iPad habe ich das Zertifikat von mitmproxy installiert und stelle dann jeweils den Proxy auf den Host mit mitmproxy (und später wieder zurück)

Beim Mitschneiden sind dann die Posts an https://api-app.dc-eu.ww.ecouser.net/api/iot/devmanager.do interessant.

Dazu muss ich mitm erstmal zum Laufen bringen. :-) Was sind Deine Aufrufparameter für mitmweb? Den Proxy hast Du einfach im iOS direkt hinterlegt?

Mittlerweile habe ich eben habe eben mal das Saugen per App gestartet. Der devicestatus ging dabei von charging auf stopped und bleibt auch so.

getCleanInfo_V2 liefert:

{"cleanState":{"category":0,"cid":"122","content":{"subContent":{"subContent":null,"type":"freeClean","value":"1,3;1,4;1,6;1,7"},"type":"freeClean","value":"1,3;1,4;1,6;1,7"},"motionState":"working","router":"plan"},"state":"clean","trigger":"none"}

3,4,6 und 7 sind wohl jeweils die spotAreas aus der map.

mrbungle64 commented 5 months ago

@aski71

Der "type" freeClean war bisher noch nicht registriert. Welchem Reinigungsmodus entspricht das in der App?

aski71 commented 5 months ago

Das ist "Vacuum only". Heißt in der App "Saugen".

aski71 commented 5 months ago

Habe mitmproxy jetzt auch am Laufen und kann loslegen. :) Bin aber jetzt erstmal weg.

aski71 commented 5 months ago

Habe jetzt nochmal ein Saugen und Wischen Programm in zwei Räumen gestartet. Dann kurz pausiert, weil ich eine virtuelle Grenze in der App bearbeitet habe. Dann lief er wieder los, blieb aber im ioBroker auf "paused" stehen.

getCleaniInfo_V2 liefert:

{"cleanState":{"category":0,"cid":"122","content":{"subContent":{"subContent":null,"type":"freeClean","value":"1,4;1,6"},"type":"freeClean","value":"1,4;1,6"},"motionState":"working","router":"plan"},"state":"clean","trigger":"none"}

Damit kann man aber ausshließen, dass "freeClean" mit dem Reinigungsmodus zu tun hat. Obiger Post war ja nur Saugen. Und das hier war Saugen und wischen.

mrbungle64 commented 5 months ago

@aski71

Damit kann man aber ausshließen, dass "freeClean" mit dem Reinigungsmodus zu tun hat. Obiger Post war ja nur Saugen. Und das hier war Saugen und wischen.

Nicht jeder "type" entspricht genau einem (Reinigungs-)Modus.

aski71 commented 5 months ago

So sieht der clean_V2 Request vi mitmproxy aus, wenn ich in der App zwei Räume auswähle und den X2 zum Saugen und Wischen dorthin schicke:

{ "auth": { "accesstoken": "<accesstoken>", "with": "oauth" }, "cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"start\",\"content\":{\"type\":\"freeClean\",\"value\":\"1,0;1,3\"}}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"JwixxQ\",\"ts\":\"1706449985203\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" }

Und so der Response: { "id": "l6fj", "payloadType": "j", "resp": { "body": { "code": 0, "msg": "ok" }, "header": { "fwVer": "1.70.0", "hwVer": "0.1.1", "pri": 1, "ts": "1706449985207", "tzm": 60, "ver": "0.0.1", "wkVer": "0.1.54" } }, "ret": "ok" }

aski71 commented 5 months ago

Lass mich wissen, was Du brauchst. :)

mrbungle64 commented 5 months ago

@aski71

{
    "type": "freeClean",
    "value": "1,0;1,3"
}

Sind 0 und 3 die Areas? Was könnte dann der erste Wert sein? Ist die 1 vielleicht das Wischen?

aski71 commented 5 months ago

Das verstehe ich gerade auch nicht, was die 1 ist.

Wenn ich in der App den Reinigungsmodus umschalte, z.B. von Saugen&Wischen auf Nur Saugen, macht die App einfach einen setWorkMode Request. Wenn ich die Anzahl der Reinigungsdurchgänge ändere, macht sie einen setCleanCount. Und wenn ich die Saugleistung verändere, macht sie einen setSpeed.

Die 1 bleibt in allen Fällen im nachfolgenden clean_V2 Request bestehen.

mrbungle64 commented 5 months ago

@aski71

Du kannst ja mal folgendes per ioBroker Adapter probieren: command: clean_V2 payload:

{
    "type": "freeClean",
    "value": "0,0;"
}

Und dann schauen wie und ob sich die 0 auswirkt (Die Area kannst du natürlich ändern, wenn du möchtest)

aski71 commented 5 months ago

Wenn ich freeClean mit 0,0 als payload starte passiert gar nichts.

Ich dachte gerade noch, vielleicht ist es der AI Schalter. Aber der löst gar keinen API Call für sich selbst aus. Und bei einem clean_V2 Request bleibt die 1 auch stehen, wenn ich Räume auswähle.

Wähle ich keine Räume aus, sondern starte nur die Reinigung, passiert bei eingeschaltetem AI folgendes:

{ "auth": { "accesstoken": "<token>", "with": "oauth" }, "cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"start\",\"content\":{\"type\":\"entrust\"}}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"mwZdID\",\"ts\":\"1706453337549\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" }

Bei ausgeschaltetem AI folgendes:

{ "auth": { "accesstoken": "<token>", "with": "oauth" }, "cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"start\",\"content\":{\"type\":\"auto\"}}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"cKeTff\",\"ts\":\"1706453317560\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" }

Der Unterschied ist also: type: entrust -> AI ein type: auto -> AI aus

aski71 commented 5 months ago

Die Benutzerdefinierten Reinigungsprogramme erhält man übrigens mit:

{ "auth": { "accesstoken": "<token>", "with": "oauth" }, "cmdName": "getQuickCommand", "payload": "{\"body\":{\"data\":{\"type\":\"1,2\"}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"RRhVfE\",\"ts\":\"1706455080848\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" }

Beispielsresponse:

{ "id": "sGbU", "payloadType": "j", "resp": { "body": { "code": 0, "data": [ { "array": [ { "content": "1,3,,1,0,2,1,0;1,0,,1,0,2,1,0;1,5,,1,0,2,1,0;1,4,,1,0,2,1,0", "icon": "map-customize-daily", "mid": "1882674456", "name": "Tägliche Reinigung", "qcid": "5187", "state": 0, "type": 1 }, { "content": "1,4,,1,0,2,0,0", "icon": "map-customize-mop", "mid": "1882674456", "name": "Wischen", "qcid": "5632", "state": 0, "type": 1 } ], "mid": "1882674456", "sort": "" } ], "msg": "ok" }, "header": { "fwVer": "1.70.0", "hwVer": "0.1.1", "pri": 1, "ts": "1706455078783", "tzm": 60, "ver": "0.0.1", "wkVer": "0.1.54" } }, "ret": "ok" }

1,3,,1,0,2,1,0

1 ist wieder unbekannt. 3 ist der Raum.

Die erste nach dem Doppelkomma ist die Anzahl der Reinigungsdurchgänge.

Die folgende Ziffer ist die cleanSpeed: 0=Standard 1=Hoch 2=Maximal+ 1000=Leise

Dann folgt die Wassermenge für's Moppen: 1, 2 oder 3

Die dann folgende Nummer ist der cleaningMode: 3=Mop after Vacuum 0=Vacuum & Mop 2=Mop only 1=Vacuum only

Die letzte Ziffer ist dann 0 oder 1 für "Intensives Schrubben".

aski71 commented 5 months ago

Starten tut man sie dann mit:

{ "auth": { "accesstoken": "<token>", "with": "oauth" }, "cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"start\",\"content\":{\"type\":\"qcClean\",\"value\":\"5187\"}}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"VkDxXV\",\"ts\":\"1706455273056\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" }

Also type: qcClean value: -> qcid aus der liste oben

mrbungle64 commented 5 months ago

@aski71

Beispielsresponse:

{ "id": "sGbU", "payloadType": "j", "resp": { "body": { "code": 0, "data": [ { "array": [ { "content": "1,3,,1,0,2,1,0;1,0,,1,0,2,1,0;1,5,,1,0,2,1,0;1,4,,1,0,2,1,0", "icon": "map-customize-daily", "mid": "1882674456", "name": "Tägliche Reinigung", "qcid": "5187", "state": 0, "type": 1 }, { "content": "1,4,,1,0,2,0,0", "icon": "map-customize-mop", "mid": "1882674456", "name": "Wischen", "qcid": "5632", "state": 0, "type": 1 } ], "mid": "1882674456", "sort": "" } ], "msg": "ok" }, "header": { "fwVer": "1.70.0", "hwVer": "0.1.1", "pri": 1, "ts": "1706455078783", "tzm": 60, "ver": "0.0.1", "wkVer": "0.1.54" } }, "ret": "ok" }

Hier wäre leider wieder herauszufinden wie sich die Werte im Property content zusammensetzen

aski71 commented 5 months ago

Hier wäre leider wieder herauszufinden wie sich die Werte im Property content zusammensetzen

Schau Dir mal meinen Edit des Beitrages "Benutzerdefinierte Programme" an. Da habe ich das auseinander klamüsert.

mrbungle64 commented 5 months ago

Hier wäre leider wieder herauszufinden wie sich die Werte im Property content zusammensetzen

Schau Dir mal meinen Edit des Beitrages "Benutzerdefinierte Programme" an. Da habe ich das auseinander klamüsert.

Ah ok 👍🏻

aski71 commented 5 months ago

Sag an, wenn es wieder eine Version zum Testen gibt. :)

mrbungle64 commented 5 months ago

Wenn ich freeClean mit 0,0 als payload starte passiert gar nichts.

Ich dachte gerade noch, vielleicht ist es der AI Schalter. Aber der löst gar keinen API Call für sich selbst aus. Und bei einem clean_V2 Request bleibt die 1 auch stehen, wenn ich Räume auswähle.

Wähle ich keine Räume aus, sondern starte nur die Reinigung, passiert bei eingeschaltetem AI folgendes:

{ "auth": { "accesstoken": "<token>", "with": "oauth" }, "cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"start\",\"content\":{\"type\":\"entrust\"}}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"mwZdID\",\"ts\":\"1706453337549\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" }

Bei ausgeschaltetem AI folgendes:

{ "auth": { "accesstoken": "<token>", "with": "oauth" }, "cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"start\",\"content\":{\"type\":\"auto\"}}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"cKeTff\",\"ts\":\"1706453317560\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" }

Der Unterschied ist also: type: entrust -> AI ein type: auto -> AI aus

Beim Deebot X1 wird entrust benutzt, wenn der "Haushälter-Modus" aktiv ist. Ist das beim X2 auch so, oder gibt es diesen bei dem Modell gar nicht mehr?

aski71 commented 5 months ago

Wenn ich freeClean mit 0,0 als payload starte passiert gar nichts. Ich dachte gerade noch, vielleicht ist es der AI Schalter. Aber der löst gar keinen API Call für sich selbst aus. Und bei einem clean_V2 Request bleibt die 1 auch stehen, wenn ich Räume auswähle. Wähle ich keine Räume aus, sondern starte nur die Reinigung, passiert bei eingeschaltetem AI folgendes: { "auth": { "accesstoken": "<token>", "with": "oauth" }, "cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"start\",\"content\":{\"type\":\"entrust\"}}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"mwZdID\",\"ts\":\"1706453337549\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" } Bei ausgeschaltetem AI folgendes: { "auth": { "accesstoken": "<token>", "with": "oauth" }, "cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"start\",\"content\":{\"type\":\"auto\"}}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"cKeTff\",\"ts\":\"1706453317560\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j", "td": "q", "toId": "69b9ba3c-6726-48eb-ac7a-26a77ecb5741", "toRes": "Qtjm", "toType": "lf3bn4" } Der Unterschied ist also: type: entrust -> AI ein type: auto -> AI aus

Beim Deebot X1 wird entrust benutzt, wenn der "Haushälter-Modus" aktiv ist. Ist das beim X2 auch so, oder gibt es diesen bei dem Modell gar nicht mehr?

Stimmt. Den hatte der T20 auch. Beim X2 finde ich den nirgends mehr. Es scheint, als habe man den Haushälter-Modus durch "AI Aktivieren" ersetzt. Vielleicht ist das auch die gleiche Funktion, aber AI hört sich halt sexier an, als Haushälter. 😂 Die Beschreibung von AI ist: "Das System generiert automatisch Reinigungsparameter für verschiedene Räume basierend auf der KI-Erkennung von Raumtypen und Bodenmaterialien."

mrbungle64 commented 5 months ago

@aski71

Wenn ich freeClean mit 0,0 als payload starte passiert gar nichts.

Kann es sein, dass die 1 beim "freeClean" die Anzahl der Reinigungen für die jeweiligen Bereiche ist?

Also dass mit folgendem Payload der Bereich "0" 2x gereinigt wird?

{
    "type": "freeClean",
    "value": "2,0;"
}
mrbungle64 commented 5 months ago

@aski71

Mit der aktuellen Alpha sollte ein spotArea Clean nun in einen "freeClean" konvertiert werden. Bedeutet, dass die spotArea Befehle im ioBroker für den X2 funktioniert sollten.

Außerdem sollte die aktuelle Version qcClean und freeClean als Reinigungsstatus erkennen.

aski71 commented 5 months ago

@aski71

Wenn ich freeClean mit 0,0 als payload starte passiert gar nichts.

Kann es sein, dass die 1 beim "freeClean" die Anzahl der Reinigungen für die jeweiligen Bereiche ist?

Also dass mit folgendem Payload der Bereich "0" 2x gereinigt wird?

{
    "type": "freeClean",
    "value": "2,0;"
}

Die zweite Ziffer ist definitiv der Raum.

Die erste Ziffer war laut mitm immer 1, egal was ich gemacht habe. freeClean hat er ja nur verwendet, wenn ich in der Kartenansicht nur auf Starten gedrückt habe. Dieses Starten geht entweder mit aktiviertem AI (dann gibt es keine weiteren Einstellmöglichkeiten mehr) oder ohne AI (dann kann man manuell wählen, ob man Saugen / Wischen / Saugen & Wischen / Wischen nach dem Saugen will, die Saugkraft, den Wasserdurchfluss , die Durchgänge und das intensive Schrubben. Das waren beim qcClean ja die Werte nach dem Doppelkomma.)

aski71 commented 5 months ago

@aski71

Mit der aktuellen Alpha sollte ein spotArea Clean nun in einen "freeClean" konvertiert werden. Bedeutet, dass die spotArea Befehle im ioBroker für den X2 funktioniert sollten.

Außerdem sollte die aktuelle Version qcClean und freeClean als Reinigungsstatus erkennen.

Top. Danke. Probier ich gleich morgen.

aski71 commented 5 months ago

Also der Reinigungsstatus wird bei qcClean schon mal erkannt. freeClean hab ich noch keinen gestartet. spotArea Clean kann ich nicht bestätigen. Das sollte doch so funktionieren, dass ich nur z.B. 0,3 in das Objekt spotArea schreibe und er dann loslegt, richtig? Das 0,3 wird im ioBroker rot und es passiert nichts.

mrbungle64 commented 5 months ago

@aski71

spotArea Clean kann ich nicht bestätigen. Das sollte doch so funktionieren, dass ich nur z.B. 0,3 in das Objekt spotArea schreibe und er dann loslegt, richtig? Das 0,3 wird im ioBroker rot und es passiert nichts.

Ich habe den Fehler gefunden. Der nächste Release steht zum Testen bereit 😉

aski71 commented 5 months ago

spotArea hat jetzt funktioniert. Allerdings bleibt nach Beendigung der Reinigung der ioBroker device status auf cleaning stehen. In der App sieht alles ganz normal beendet aus.

aski71 commented 5 months ago

P.S.: Nach Neustart des Adapters steht der device status jetzt auf charging. Also fehlte da wohl irgendein Update in der Kommunikation.

aski71 commented 5 months ago

Noch was, was mir gerade nebenbei auffällt. Ich habe mir ein Script gebaut, das die Statusänderungen des Device Status protokolliert. Abhängig davon will ich später ggf. aufeinander aufbauende Reinigungsprogramme starten.

Um 12:47 habe ich die Reinigung gestartet: Status: "cleaning". Um 12:55 kam er zurück: Status: "returning" Eine Minute später folgt dann innerhalb einer Sekunde ein Statuswechsel: "charging" - "returning" - "charging" Ist das normal?

Um 14:11 habe ich den X2 per Sprachsteuerung aus der Station fahren lassen. Der Status ging auf "stopped". Nach dem wieder reinfahren sprang der Status wild zwischen "returning" - "charging" hin und her und endete schließlich in einem "idle" und dann "charging". Auch hier die Frage: Ist das normal?

javascript.0
2024-02-03 14:14:59.961 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = charging
2024-02-03 14:14:59.905 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = idle
2024-02-03 14:14:59.905 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = returning
2024-02-03 14:14:57.742 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = charging
2024-02-03 14:14:56.390 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = returning
2024-02-03 14:14:56.252 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = charging
2024-02-03 14:14:55.680 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = returning
2024-02-03 14:14:54.647 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = charging
2024-02-03 14:13:53.298 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = returning
2024-02-03 14:11:19.108 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = stopped
2024-02-03 12:56:16.257 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = charging
2024-02-03 12:56:16.198 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = returning
2024-02-03 12:56:15.495 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = charging
2024-02-03 12:55:18.834 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = returning
2024-02-03 12:47:24.985 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 state = cleaning
mrbungle64 commented 5 months ago

@aski71

Noch was, was mir gerade nebenbei auffällt. Ich habe mir ein Script gebaut, das die Statusänderungen des Device Status protokolliert. Abhängig davon will ich später ggf. aufeinander aufbauende Reinigungsprogramme starten.

Um 12:47 habe ich die Reinigung gestartet: Status: "cleaning". Um 12:55 kam er zurück: Status: "returning" Eine Minute später folgt dann innerhalb einer Sekunde ein Statuswechsel: "charging" - "returning" - "charging" Ist das normal?

Um 14:11 habe ich den X2 per Sprachsteuerung aus der Station fahren lassen. Der Status ging auf "stopped". Nach dem wieder reinfahren sprang der Status wild zwischen "returning" - "charging" hin und her und endete schließlich in einem "idle" und dann "charging". Auch hier die Frage: Ist das normal?

Im debug Modus solltest man genau sehen, welche Kombination aus "cleanStatus" und "chargeStatus" und einem "trigger" dazu führt. Du kannst das Log im Admin mit "setStatus" filtern. Dann sollte das gut zu sehen sein.


this.adapter.log.debug(`[setStatus] status = '${this.status}' (cleanStatus = '${this.cleanStatus}', chargeStatus = '${this.chargeStatus}')`);
aski71 commented 5 months ago

@aski71

Noch was, was mir gerade nebenbei auffällt. Ich habe mir ein Script gebaut, das die Statusänderungen des Device Status protokolliert. Abhängig davon will ich später ggf. aufeinander aufbauende Reinigungsprogramme starten. Um 12:47 habe ich die Reinigung gestartet: Status: "cleaning". Um 12:55 kam er zurück: Status: "returning" Eine Minute später folgt dann innerhalb einer Sekunde ein Statuswechsel: "charging" - "returning" - "charging" Ist das normal? Um 14:11 habe ich den X2 per Sprachsteuerung aus der Station fahren lassen. Der Status ging auf "stopped". Nach dem wieder reinfahren sprang der Status wild zwischen "returning" - "charging" hin und her und endete schließlich in einem "idle" und dann "charging". Auch hier die Frage: Ist das normal?

Im debug Modus solltest man genau sehen, welche Kombination aus "cleanStatus" und "chargeStatus" und einem "trigger" dazu führt. Du kannst das Log im Admin mit "setStatus" filtern. Dann sollte das gut zu sehen sein.

this.adapter.log.debug(`[setStatus] status = '${this.status}' (cleanStatus = '${this.cleanStatus}', chargeStatus = '${this.chargeStatus}')`);

Bau ich mal mit ein.

mrbungle64 commented 5 months ago

@aski71

this.adapter.log.debug(`[setStatus] status = '${this.status}' (cleanStatus = '${this.cleanStatus}', chargeStatus = '${this.chargeStatus}')`);

Bau ich mal mit ein.

Musst du nicht. Dieser Code ist im Adapter drin. Wollte dir damit nur die Debug Meldung zeigen. Du musst also nur auf Debug stellen.

aski71 commented 5 months ago

Ah verstehe.

Im debug sehe ich, dass mei jedem Waschvorgang offensichtlich Meldungen im Millisekundenbereich kommen. Ist das gewollt?

ecovacs-deebot.0
2024-02-04 17:21:22.442 debug   [setStatus] status = 'drying' (cleanStatus = 'drying', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:22.442 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:19.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:19.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:18.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:18.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:17.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:17.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:16.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:16.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:15.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:15.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:14.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:14.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:13.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:13.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:12.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:12.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:11.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:11.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:10.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:10.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:09.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:09.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:08.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:08.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:07.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:07.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:06.943 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:06.943 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:06.735 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:06.735 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:04.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:04.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:03.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:03.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:02.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:02.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:01.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:01.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:21:00.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:21:00.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:59.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:59.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:58.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:58.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:57.925 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:57.925 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:56.924 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:56.924 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:55.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:55.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:54.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:54.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:53.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:53.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:52.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:52.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:51.928 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:51.928 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:50.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:50.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:49.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:49.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:48.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:48.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:47.918 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:47.918 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:46.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:46.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:45.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:45.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:44.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:44.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:43.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:43.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:42.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:42.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:41.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:41.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:40.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:40.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:39.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:39.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:38.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:38.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:37.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:37.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:36.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:36.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:35.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:35.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:34.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:34.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:33.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:33.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:32.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:32.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:31.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:31.918 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:30.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:30.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:29.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:29.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:28.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:28.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:27.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:27.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:26.920 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:26.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:25.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:25.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:24.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:24.920 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:23.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:23.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:22.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:22.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:21.935 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:21.935 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:20.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:20.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:19.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:19.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:18.924 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:18.924 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:17.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:17.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:16.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:16.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:15.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:15.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:14.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:14.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:13.921 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:13.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:12.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:12.921 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:11.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:11.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:10.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:10.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:09.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:09.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:08.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:08.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:07.924 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:07.924 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:06.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:06.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:05.924 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:05.924 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:04.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:04.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:03.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:03.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:02.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:02.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:01.924 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:01.924 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:20:00.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:20:00.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:59.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:59.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:58.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:58.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:57.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:57.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:56.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:56.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:55.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:55.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:54.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:54.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:53.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:53.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:52.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:52.918 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:51.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:51.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:50.919 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:50.919 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:49.918 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:49.918 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:48.918 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:48.918 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:48.313 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:48.313 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:48.269 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:48.269 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:45.918 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:45.918 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:44.926 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:44.926 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:43.918 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:43.918 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:42.968 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:42.967 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:41.923 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:41.923 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:40.922 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:40.922 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:39.924 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:39.924 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:38.940 debug   [setStatus] status = 'washing' (cleanStatus = 'washing', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:38.940 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:17.441 debug   [setStatus] status = 'charging' (cleanStatus = 'idle', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:17.441 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:19:15.819 debug   [setStatus] status = 'charging' (cleanStatus = 'returning', chargeStatus = 'charging')

ecovacs-deebot.0
2024-02-04 17:19:15.819 debug   [setStatusByTrigger] trigger = 'chargestatus'

ecovacs-deebot.0
2024-02-04 17:18:49.927 debug   [setStatus] status = 'returning' (cleanStatus = 'returning', chargeStatus = 'returning')

ecovacs-deebot.0
2024-02-04 17:18:49.927 debug   [setStatusByTrigger] trigger = 'chargestatus'

ecovacs-deebot.0
2024-02-04 17:18:49.924 debug   [setStatus] status = 'returning' (cleanStatus = 'returning', chargeStatus = 'idle')

ecovacs-deebot.0
2024-02-04 17:18:49.924 debug   [setStatusByTrigger] trigger = 'cleanstatus'

ecovacs-deebot.0
2024-02-04 17:16:56.424 debug   [setStatus] status = 'cleaning' (cleanStatus = 'freeClean', chargeStatus = 'idle')

ecovacs-deebot.0
2024-02-04 17:16:56.424 debug   [setStatusByTrigger] trigger = 'chargestatus'

ecovacs-deebot.0
2024-02-04 17:16:52.301 debug   [setStatus] status = 'cleaning' (cleanStatus = 'freeClean', chargeStatus = 'charging') ](url)

Mein Script, das von device status Änderungen getriggert wird, sagt mir folgenden Ablauf:

javascript.0
2024-02-04 17:21:22.463 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = drying cleanStatus = washing chargeStatus = charging

javascript.0
2024-02-04 17:19:38.964 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = washing cleanStatus = idle chargeStatus = charging

javascript.0
2024-02-04 17:19:15.838 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = charging cleanStatus = returning chargeStatus = returning

javascript.0
2024-02-04 17:18:49.964 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = returning cleanStatus = freeClean chargeStatus = idle

javascript.0
2024-02-04 17:16:52.319 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = cleaning cleanStatus = washing chargeStatus = charging

javascript.0
2024-02-04 17:15:09.461 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = washing cleanStatus = idle chargeStatus = charging

javascript.0
2024-02-04 17:12:53.587 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = charging cleanStatus = returning chargeStatus = returning

javascript.0
2024-02-04 17:12:23.158 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = returning cleanStatus = freeClean chargeStatus = idle

javascript.0
2024-02-04 17:08:37.554 info    script.js.MoX2.setDayCleaningStateMoX2: MoX2 device state = cleaning cleanStatus = idle chargeStatus = charging

Heißt, die drei Status sind scheinbar out of sync und hängen in der Regel dem Device status hinterher? Oder welche Abhängigkeiten gibt es da?

mrbungle64 commented 5 months ago

@aski71

Im debug sehe ich, dass mei jedem Waschvorgang offensichtlich Meldungen im Millisekundenbereich kommen. Ist das gewollt?

Die meiste Zeit ist es genau 1 Sekunde. Ob das so gewollt ist weiß ich nicht - das kommt ja per MQTT vom Ecovacs Server. Der GetCleanState_V2 Befehl wird nur initial genau 1x vom Adapter geschickt.

aski71 commented 5 months ago

Ich hab heute mal versucht mein Programm zu starten, das zuerst alle Räume saugt und danach Küche und Flure mopped. Dazu warte ich nach dem Starten des Saugprogramms ein einer Schleife jeweils 5 Minuten, bis der Device Status wieder auf charging steht, um sicher zu sein, dass er zurück ist. Dann stelle ich den Reinigungsmodus auf 0 um und starte ihn erneut mit spotArea. Letzteres hat heute nicht funktioniert. Die Passage im Debug sieht so aus:

2024-02-05 07:52:16.834 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) state change control.spotArea => 4,6 2024-02-05 07:52:16.836 - ^[[32minfo^[[39m: ecovacs-deebot.0 (1946020) Start spot area cleaning (V2): 4,6 (1x) 2024-02-05 07:52:16.851 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) state change map.currentUsedSpotAreas => 4,6 2024-02-05 07:52:28.081 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [queue] Received CleanReport event: idle 2024-02-05 07:52:28.082 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [setStatusByTrigger] trigger = 'cleanstatus' 2024-02-05 07:52:28.082 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [setStatus] status = 'charging' (cleanStatus = 'idle', chargeStatus = 'charging') 2024-02-05 07:52:28.082 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [queue] Received CleanReport event: idle 2024-02-05 07:52:28.082 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [setStatusByTrigger] trigger = 'cleanstatus' 2024-02-05 07:52:28.082 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [setStatus] status = 'charging' (cleanStatus = 'idle', chargeStatus = 'charging') 2024-02-05 07:52:28.086 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [queue] Received ChargeState event: charging 2024-02-05 07:52:28.086 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [queue] Received ChargeState event: charging 2024-02-05 07:52:28.130 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) state change map.currentUsedSpotAreas => 2024-02-05 07:52:28.131 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) state change map.currentUsedSpotAreas => 2024-02-05 07:52:28.135 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) state change info.extended.cleaningStationActive => false 2024-02-05 07:52:28.136 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) state change info.extended.cleaningStationActive => false 2024-02-05 07:52:28.165 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [queue] Received ChargeState event: charging 2024-02-05 07:52:28.165 - ^[[34mdebug^[[39m: ecovacs-deebot.0 (1946020) [queue] Received ChargeState event: charging

Ideen? Ich habe danach manuell mit händischer Eingabe von 4,6 gestartet. Das ging.

----- EDIT 6.2.24 ----- Ich habe das Problem heute nicht mehr beobachten können. Das Skript funktionierte einwandfrei.

aski71 commented 5 months ago

Was jetzt aber tatsächlich nicht geht, ist der stop Befehl. Ich habe den X2 mittels clean_home=true gestartet und mit clean_home=false wieder nach Hause geschickt. Dann bleibt er auf pausiert stehen. Wenn ich dann stop=true setze, wird das nicht angenommen. Passiert gar nichts.

Ich habe mal manuell per App gestoppt und das zur Sicherheit mitgeschnitten:

"payload": "{\"body\":{\"data\":{\"act\":\"stop\"}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"hvIUAH\",\"ts\":\"1707219318055\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}",

mrbungle64 commented 5 months ago

@aski71

"payload": "{\"body\":{\"data\":{\"act\":\"stop\"}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"hvIUAH\",\"ts\":\"1707219318055\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}",

Der cmdName ist hier leider nicht dabei

aski71 commented 5 months ago

Sorry. Das war natürlich zu wenig.

Sowohl Pause, als auch Stop ist ein clean_V2.

"cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"stop\"}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"JWAHoy\",\"ts\":\"1707295058152\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}",

"cmdName": "clean_V2", "payload": "{\"body\":{\"data\":{\"act\":\"pause\"}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"rNRBjZ\",\"ts\":\"1707295013916\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", "payloadType": "j",

Bei Pause bleibt er nur stehen. Bei Stop beendet er nur das Reinigungsprogramm, fährt aber nicht zurück zur Station.

Das geht dann mit:

"cmdName": "charge", "payload": "{\"body\":{\"data\":{\"act\":\"go\"}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"RruYjB\",\"ts\":\"1707295112589\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}",

Gibt es auch eine Möglichkeit, on the fly die Saugstärke umzustellen? Habe da im Adapter nichts gefunden.

"cmdName": "setSpeed", "payload": "{\"body\":{\"data\":{\"speed\":0}},\"header\":{\"channel\":\"iOS\",\"reqid\":\"CUtHfU\",\"ts\":\"1707295249367\",\"ver\":\"0.0.50\",\"m\":\"request\",\"pri\":1,\"tzm\":60}}", Die Werte sind da auch:1000=low, 0=standard, 1=high, 2=turbo

mrbungle64 commented 5 months ago

@aski71

Sowohl Pause, als auch Stop ist ein clean_V2.

Ja, das ist das Problem. Bisher wurde dafür noch der "alte" clean Befehl benutzt. Ich passe das demnächst dann für den X2 an.

Gibt es auch eine Möglichkeit, on the fly die Saugstärke umzustellen? Habe da im Adapter nichts gefunden.

Mit "control.cleanSpeed" kannst du die Saugstärke steuern.

mrbungle64 commented 5 months ago

@aski71

Was jetzt aber tatsächlich nicht geht, ist der stop Befehl.

Mit der aktuellen Alpha sollte die Stop Funktion nun auch funktionieren.

aski71 commented 5 months ago

@aski71

Sowohl Pause, als auch Stop ist ein clean_V2.

Ja, das ist das Problem. Bisher wurde dafür noch der "alte" clean Befehl benutzt. Ich passe das demnächst dann für den X2 an.

Gibt es auch eine Möglichkeit, on the fly die Saugstärke umzustellen? Habe da im Adapter nichts gefunden.

Mit "control.cleanSpeed" kannst du die Saugstärke steuern.

Aaaah! Tomaten auf den Augen, sorry. 🤪🤪