-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
X2: "Benutzerdefinierte Reinigung" und weiteres #623
Comments
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 Mein Vermutung:
Du könntest mal schauen, ob einzelne Werte mit Werten unter |
Sorry. Ich war jetzt eine Weile nicht hier. 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: 1,0,Küche,1,0,9,0 Das ist die jeweilige Einstellung, was er für den Raum machen soll. Ich hatte jetzt versucht, mittels getScene die neu definierten benutzerdefinierten Reinigungen des X2 abzurufen.
Muss ich da was anders machen? |
Das mit der Du könntest wegen dem Gerätestatus mal jeweils den |
getCleanInfo_V2 ergibt:
|
Sorry, die Info hatte gefehlt: während einer Reinigung wo der Status fehlt bzw. falsch ist 😉 |
Ah, ok. 😀 Beobachte ich dann nächstesmal. |
Alles klar 👍🏻
Wenn du ein iPhone oder iPad hast könntest du mit mitmproxy mitschneiden was von der Ecovacs Home App an die API gesendet wird. |
Ich habe gestern noch versucht mitmproxy auf einer Linux-Kiste zum Laufen zu kriegen, bin aber bislang gescheitert.
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 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". 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. :-) 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:
3,4,6 und 7 sind wohl jeweils die spotAreas aus der map. |
Der "type" |
Das ist "Vacuum only". Heißt in der App "Saugen". |
Habe mitmproxy jetzt auch am Laufen und kann loslegen. :) |
Habe jetzt nochmal ein Saugen und Wischen Programm in zwei Räumen gestartet. getCleaniInfo_V2 liefert:
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. |
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:
Und so der Response: |
Lass mich wissen, was Du brauchst. :) |
{
"type": "freeClean",
"value": "1,0;1,3"
} Sind 0 und 3 die Areas? Was könnte dann der erste Wert sein? |
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. Die 1 bleibt in allen Fällen im nachfolgenden clean_V2 Request bestehen. |
Du kannst ja mal folgendes per ioBroker Adapter probieren: {
"type": "freeClean",
"value": "0,0;"
} Und dann schauen wie und ob sich die |
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:
Bei ausgeschaltetem AI folgendes:
Der Unterschied ist also: |
Die Benutzerdefinierten Reinigungsprogramme erhält man übrigens mit:
Beispielsresponse:
1,3,,1,0,2,1,0 1 ist wieder unbekannt. Die erste nach dem Doppelkomma ist die Anzahl der Reinigungsdurchgänge. Die folgende Ziffer ist die cleanSpeed: Dann folgt die Wassermenge für's Moppen: 1, 2 oder 3 Die dann folgende Nummer ist der cleaningMode: Die letzte Ziffer ist dann 0 oder 1 für "Intensives Schrubben". |
Starten tut man sie dann mit:
Also |
Hier wäre leider wieder herauszufinden wie sich die Werte im Property |
Schau Dir mal meinen Edit des Beitrages "Benutzerdefinierte Programme" an. Da habe ich das auseinander klamüsert. |
Ah ok 👍🏻 |
Sag an, wenn es wieder eine Version zum Testen gibt. :) |
Beim Deebot X1 wird |
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. 😂 |
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;"
} |
Mit der aktuellen Alpha sollte ein spotArea Clean nun in einen "freeClean" konvertiert werden. Außerdem sollte die aktuelle Version |
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.) |
Top. Danke. Probier ich gleich morgen. |
Also der Reinigungsstatus wird bei qcClean schon mal erkannt. freeClean hab ich noch keinen gestartet. |
Ich habe den Fehler gefunden. Der nächste Release steht zum Testen bereit 😉 |
spotArea hat jetzt funktioniert. |
P.S.: Nach Neustart des Adapters steht der device status jetzt auf charging. |
Noch was, was mir gerade nebenbei auffällt. Um 12:47 habe ich die Reinigung gestartet: Status: "cleaning". Um 14:11 habe ich den X2 per Sprachsteuerung aus der Station fahren lassen. Der Status ging auf "stopped".
|
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. |
Musst du nicht. Dieser Code ist im Adapter drin. Wollte dir damit nur die Debug Meldung zeigen. Du musst also nur auf Debug stellen. |
Ah verstehe. Im debug sehe ich, dass mei jedem Waschvorgang offensichtlich Meldungen im Millisekundenbereich kommen. Ist das gewollt?
Mein Script, das von device status Änderungen getriggert wird, sagt mir folgenden Ablauf:
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? |
Die meiste Zeit ist es genau 1 Sekunde. Ob das so gewollt ist weiß ich nicht - das kommt ja per MQTT vom Ecovacs Server. |
Ich hab heute mal versucht mein Programm zu starten, das zuerst alle Räume saugt und danach Küche und Flure mopped.
Ideen? ----- EDIT 6.2.24 ----- |
Was jetzt aber tatsächlich nicht geht, ist der stop Befehl. Ich habe mal manuell per App gestoppt und das zur Sicherheit mitgeschnitten:
|
Der |
Sorry. Das war natürlich zu wenig. Sowohl Pause, als auch Stop ist ein clean_V2.
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:
Gibt es auch eine Möglichkeit, on the fly die Saugstärke umzustellen? Habe da im Adapter nichts gefunden.
|
Ja, das ist das Problem. Bisher wurde dafür noch der "alte" clean Befehl benutzt.
Mit "control.cleanSpeed" kannst du die Saugstärke steuern. |
Mit der aktuellen Alpha sollte die Stop Funktion nun auch funktionieren. |
Aaaah! Tomaten auf den Augen, sorry. 🤪🤪 |
Probier ich gleich morgen, danke. |
Ja. Kann ich bestätigen: Stop funktioniert nun auch. 👍🏻 |
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.
The text was updated successfully, but these errors were encountered: