[Modul] Roborock / Xiaomi Vacuum Cleaner

Ich habe den noch nicht gerootet, und sehe keine Daten in IPS.

Positionen anfahren mit "Roborock_GotoTarget($instanceid, $x, $y); " geht gut, und die Positionen stimmen optisch auch gut.

Wenn ich diese Positionen Rechteckkanten dann mit der „Zone Clean“ Funktion aus IPS Starte geht es nicht.

Wie sind denn die Koordinaten die Du mit GotoTarget abfährst? Wie lautet dann der gesamte Aufruf der Methode bei dir mit den Koordinaten?

Die einzelnen Positionen 1-4 fahre ich so an, das kalppt auch supper.

Roborock_GotoTarget(10065 /*[x - TEST\Xiaomi Roborock S50\Roborock]*/, $x, $y);

Das ZoneClean habe ich versucht so anzufahren

Roborock_ZoneClean(10065 /*[x - TEST\Xiaomi Roborock S50\Roborock]*/, $x3, $y3, $x2, $y2, 1);	

oder so

Roborock_ZoneClean(10065 /*[x - TEST\Xiaomi Roborock S50\Roborock]*/, $x4, $y4, $x1, $y1, 1);	

oder so

Roborock_ZoneClean(10065 /*[x - TEST\Xiaomi Roborock S50\Roborock]*/, $x1, $y1, $x4, $y4, 1);	

Der S50 sagt dann sofort das er das Zone Clean abgeschlossen hat und fährt sofort in die Ladestation.

Ich habe jetzt noch mal einen Test gemacht und alle 4 Koordinaten als Ecken untereinander getauscht.

Es kommt immer der selbe Fehler.
Der S50 fährt aus die Ladestation raus ca 30cm, dann sagt er mir das er das Zone Clean abgeschlossen hat und fährt sofort wieder in die Ladestation.

Von der MI-HOME App aus geht das Zone Cleaning.

Mir geht es genauso…

$lower_left_corner_x = 25500; // X-Koordinate der unteren linken Ecke der Zone (Rechteck)
$lower_left_corner_y = 25500; // Y-Koordinate der unteren linken Ecke der Zone (Rechteck)
$upper_right_corner_x = 28000; // X-Koordinate der oberen rechten Ecke der Zone (Rechteck)
$upper_right_corner_y = 28000; // Y-Koordinate der oberen rechten Ecke der Zone (Rechteck)

$number = 1;
Roborock_ZoneClean(32491, $lower_left_corner_x, $lower_left_corner_y, $upper_right_corner_x, $upper_right_corner_y, $number);

…die Koordinaten sind per Befehl direkt erreichbar… aber nicht über den Befehl ZoneClean. Er fährt kurz raus und sagt dann: Vorgang abgeschlossen und kehrt zur Basis zurück :frowning:

Vielleicht irgendein Fehler an der Übermittlung der Daten? Ist ein Roborock (2. Gen) nicht gerootet.

Gruß
Dominik

…im Debug-Log steht mal:

{„id“:754,„method“:„app_zoned_clean“,„params“:[25500,25500,28000,28000,1]}

…also scheint die Software die Parameter richtig zu übermitteln, nur nicht umzusetzen. Einer eine Idee? oder bei wem funktioniert es? kann es sein, dass die o.g. Funktion nur bei gerooteten Geräten funktioniert?

Nein eigentlich nicht aber ich schaue mir das noch mal näher an.

Danke, das wäre nett und würde mir hier sehr helfen.

Danke für den entscheidenden Hinweis. Da habe ich doch glatt vergessen was aus der Testumgebung im Repository zu ergänzen, deshalb ist mir das leider selber nicht aufgefallen. Die Parameter sind so nämlich falsch, da fehlt noch ein , ich habe das jetzt mal ergänzt. Könnt ihr mal ein Modul Update machen und Rückmeldung geben ob das jetzt eine Besserung bringt und auch auch bei Euch funktioniert ohne das der Sauger gleich wieder zur Ladestation zurück kehrt.

Hallo Fonzo,

Ich habe das Module über den Module Manager upgedatet (nicht neu installiert)

momentan geht es noch nicht, er sagt jetzt aber schon mehr.

Er fährt kurz raus 30cm und sagt dann: „Vorgang wurde abgeschlossen, ein Teil oder Teilbereiche wurden nicht erreicht“ und kehrt zur Basis zurück.

Das scheint jetzt ein anderes Problem zu sein.

Er hat die Karte komplett neu aufgebaut in der MI-Übersicht aber um 90° gedreht.
Und jetzt stimmen alle ausgemessenen Punkte nicht mehr. X - Y sind alle vertauscht.

Warum macht der sowas .:confused:

Mit neuen Koordinaten geht es jetzt.

Könnte man denn Verbrauchsgegenstand auch als einzel Variable ausgeben ?

Ja klar kann ich als Option einbauen zum ankreuzen, dann werden halt Einzelvariablen angelegt. Ich bin nur immer etwas zurückhaltend nicht zu viele Variablen zu verbrauchen, aber wenn das keine Rolle spielt und man diese dann z.B. in IPSView besser einzeln platzieren kann ist das ja ok.

Ja genau für IPS-View, und für ein Alarm Meldesystem sind einzelne Variable auch gut.

Kann man beim ZoneClean auch zwei Zonen gleichzeitig machen ?
Muß man die hintereinander senden ? oder gleichzeitig in einem Befehl ?

Erledigt, mach mal ein Update dann sollte das auswählbar sein.

Theoretisch kann man die mit einem Befehl senden nur dazu muss ich mir was einfallen lassen bzw. die Methode anpassen.

Bei den einzelne Variable stimmen die Werte nicht, diese werden nicht aktualisiert und stehen alle bei 0%.

Kann ich jetzt nicht nachvollziehen, muss bei Gelegenheit mal schauen was da bei Dir der Unterschied sein könnte.
verbrauchsgegenstandanzeige.png

Fehler gefunden.

Wenn man nicht die alte Gesamtübersicht der Verbrauchsgegenstände anzeigen lässt. (Weil man die nicht braucht).
Werden die einzel Variable der Verbrauchsgegenstände nicht aktualisiert.

Ja stimmt, ist eine Funktion die aufgerufen wird die dann die Werte schreibt, ich kann mal schauen ob man das noch splitten kann, dann sollte das unabhängig gehen.

Ich hätte noch eine Idee,

Ein Variable die TRUE wird wenn ein Fehler im S50 ansteht.

Eine Variable die TRUE ist wenn der S50 sich im Abfrage Intervall (Zeit) gemeldet hat.Wenn die Variable FALSE wird,
kann man das nutzen um ein Meldung zu erzeugen, S50 Antwortet nicht. (zb. wenn AKKU leer, oder er Ausgeschaltet ist)