NEWS
Adapter mihome-vacuum anpassungen
-
@Meistertr said in Adapter mihome-vacuum anpassungen:
@base kommt die Karte in der bin Datei geladen? Oder welches Format? Bis welche fw? Hast du lust es zu integrieren? Besonders der token ist wahrscheinlich für viele interessant.
Die Version von Xento ist eine abgewandelte Version von Valetudo RE, welche die Daten mit Hilfe des Xiaomi-Logins aus der China-Cloud hohlt. Ich habe sie wie gesagt auf ein Raspberry installiert und konnte mich erfolgreich verbinden. Die Daten werden dann wie bei der normalen Valetudo RE App in Echtzeit angezeigt. Getestet habe ich es zuerst mit einer Valetudo-RE auf den Saubsauger und der abgewandelten Version auf dem Raspberry.
Danach bin ich auf den Staupsauger zurück auf Orginal Firmware (2008) gegangen. Die Daten wurden auch weiterhin korrekt in der Valetudo-RE auf dem Webinterface aufgebaut. Leider wird die Karte im iobroker nicht aufgebaut. (Konnte die mihome vacuum App mit der Valetudo-App auf dem Raspberry verbinden).Das liegt aber an der 2008 Firmware. Hatte zuvor schon erflglos den Versuch mit der letzeten Version von: vacuumz.info/download/gen2/
Karte wird binär geliefert, kommt aber verpixelt an.Zur Installation von Valetudo auf dem Rasperry hae ich mich für Interessierte im Roboter-Forum im Xiaomi Root-Bereich mit Xento ausgetauscht....
Wichtig noch, nachdem die 2008 Version installiert ist kann nicht mehr einfach downgegradet werden. Der Staubsauger muss erst in den Werkszustand resettet werden.
-
@ dirkhe Dann fährt er aber immer erst zur Ladestation und dann erst zum nächsten Raum.
Beim Multiclean jedoch gleich die Räume in Folge. Oder? -
@MP Bis zur Ladestation fährt er nicht. Er beendet den ersten Raum und fährt Richtung Station. Sobald der Status dass er auf den Weg zur Station ist im Adapter angekommen ist, fährt er zum nächsten Raum.
Um so kürzer du die Abrufzeit in der Instanz einstellst um so schneller erkennt der Adapter wann er fertig ist.
Es sind dann aber getrennte Saugvorgänge pro Raum und in der Karte ist immer nur der aktuelle Raum zu sehen.
Bei multiRoomClean werden direkt alle Räume übermittelt und dann fährt er die am Stück ab und man sieht auch alle Bahnen aller Räume in der Karte. -
@Diginix Ja, das passt zu meinen Beobachtungen. Die Abrufzeit steht auf 60s und der Sauger war nur 2m von der Ladestation entfernt. Werde die Zeit heute Abend verkürzen und die Ansteuerung prüfen.
Deshalb war mein Ansatz, die Räume im multiRoomClean einzutragen und anschließend zu starten.
Dann würde ich auch alle Bahnen sehen. Mit JavaScript kenne ich mich leider kaum aus.
Gibt es überhabt eine Möglichkeit die Räume mit Blockly zu bearbeiten? -
Ob das blocky geht, kann ich dir nicht sagen, das ist mir zu kompliziert. Aber da blocky ja eigentlich nur ein verschleiertes Javascript ist....
Was du auch machen kannst, ist dir für jede Kombi einen Timer anzulegfen und den auf disabled zu setzten. Dann kannst du per VIS diesen Timer bei Knopfdruck auf sofort starten setzten.
ZU der AbrufZeit, da hatte ich mir überlegt, ob ich während der Saugphase, oder sobad eine Queue entsteht, das intervall vorübergehend auf 10 sec zusetzten -
@dirkhe sagte in Adapter mihome-vacuum anpassungen:
ZU der AbrufZeit, da hatte ich mir überlegt, ob ich während der Saugphase, oder sobad eine Queue entsteht, das intervall vorübergehend auf 10 sec zusetzten
Das ist eine gute Idee. Wenn er lädt nimmst du die Zeit die in der Instanz eingestellt ist und wenn er einen anderen Zustand hat, kürzer.
-
So, eine neue Version 1.10.5 ist hochgeladen.
roommanager und timemanager sind jetzt der Übersichtlichkeit in eine eigene Datei gewandert.
Ich habe das ganze Statushandling ein ein eigenes Objekt cleaning ausgelagert. Zusätzlich gibt es jetzt noch einen Status queue unter info, indem dessen Anzahl eingetragen wird.
Ping wird jetzt nur am Anfang ausgeführt, danach wird direkt immer get_status aufgerufen. Diese Zeit kann jetzt auch in der config eingestellt werden.
Wenn jetzt ein Sauge Button gedrückt wurde, sollte der Status auf true gesetzt werden. Er wird aber dann nicht wieder auf false gesetzt. -
@dirkhe Installiert. Aber wirklich testen kann ich heute nicht mehr.
So habe ich mal die Abrufintervalle eingestellt.
Wenn der Sauger inaktiv in der Ladestation steht wird nun alle 60 Sekunden der Zustand abgerufen und wenn er "unterwegs" ist, dann alle 10 Sek? Oder doch anders?
Wenn ich ihn nicht über den Adapter aktiviere, würde er es also dann auch erst nach 60 Sekunden merken und dann aber alle 10 Sekunden weiter prüfen? -
Ganz genau. Sobald er am saugen ist, wird alle 10 sec abgerufen. Im Prinzip ist es egal, ob du über den Adapter oder manuell aufrufst. Er ruft alle 60 sec den Status ab. Wenn also 20 sek vergangen sind und du dann starten würdest, würde er das erst nach 40 sek mitbekommen, dann aber alle 10 Sekunden abfragen, bis er wieder nicht mehr am Saugen ist.
Wenn es über den Adapter getriggert wird, könnte man drüber nachdenken, dass die Statusabfrage sofort im 10 sek Takt abgefragt wird... -
@dirkhe Ja das dachte ich, weil der Adapter es ja dann ohne Abruf auch so weiß, dass der Sauger was macht.
Aber ok, passt auch so. Ein neues Objekt "Cleaning" konnte ich bei mir nicht finden. Nur das queue.Fehlt da was?
-
Nein, cleaning ist nur intern. Vorher waren das verschiedene Stellen im code, wo das gehandelt wurde, das habe ich jetzt zusammengefasst. War eher eine Info für @Meistertr
-
Hallo Zusammen,
ich habe den S50 und mir per try & error die Räume manuell eingerichtet. Ich würde nun gerne das Multi Room cleaning nutzen - und zwar durch Zuordnung der Räume zum Datenpunkt (nicht app_segment_clean).
Wie kann ich denn via JavaScript die Räume dem Datenpunkt zur Multi-Room-Reinigung zuweisen und auch wieder entfernen?
Ich habe bislang kaum mit Räumen gearbeitet und Zuweisungen maximal über das Admin Interface gemacht.
Installiert ist die aktuellste Version des Adapters von GitHub.
Besten Dank für einen Tipp! -
Du muss vom Raum ausgehen. Sprich wenn du die Räume von multiclean ändern möchstest, musst du die vorhanden Räume des Objektes erst von den Räumen (enum.rooms) trennen, indem du die aus der common.members liste löscht
und bei den neuen Räumen must du das Objeckt ("mihome-vacuum.0.rooms.multiRoomClean") der LIste common.members hinzufügen.
Kann sein, dass es da für einen JS-Script sogar passende Methoden gibt. Stichwort ist da auf jeden Fall enum.rooms.
Aber du brauchst es gar nicht so kompliziert machen. Starte einfach alle Räume direkt hintereinander, der Adapter merkt das und reiht die in eine Queue ein und arbeitet die nacheinnander ab. (Funktion ist erst nach Knopf multiRoom hinzugekommen) -
Meistertr Developer vor wenigen Sekunden
Für die S50 Besitzer habe ich noch die Raumerkennung mit eingebunden, wenn man eingeloggt ist, werden die Raüme aus der Karte gelesen und angelegt version 2.0.5
-
Hallo @Meistertr ,
funktioniert die Raum/Zonenreinigung mit Gen1 und Valetudo RE?
-
Hallo zusammen,
kann mir einer sagen welches Widget von euch benutzt wird für den Taster?
Ich habe es mit hqwidget on/off versucht, leider fährt der Roboter immer doppelt.
hat jemand eine Idee?
danke
-
@0018 sagte in Adapter mihome-vacuum anpassungen:
Hallo @Meistertr ,
funktioniert die Raum/Zonenreinigung mit Gen1 und Valetudo RE?
Ob das mit Valentudo funktioniert, kann ich nicht sagen. Aber du kannst den Gen1 in bestimmte Zonen schicken, wenn du die Koordinaten kennst.
-
@ttarzan sagte in Adapter mihome-vacuum anpassungen:
Gen1 in bestimmte Zonen schicken
Jep, die Zonen habe ich ja bereits in Valetudo konfiguriert. Wäre schön wenn der Adapter sich die konfigurierten Zonen aus Valetudo holt und ich diese dann über den Adapter auch starten könnte.
-
@xADDRx keiner ne Idee?
-
Hallo, habe mir ausnahmsweise mal die Testversion 2.0.7 des Adapters installiert. Die neuen Funktionen waren zu verlockend um auf die "stable" zu warten.
Bisher funktioniert auch alles soweit sehr gut mit meinem S5. Nur eine Sache vermisse ich...
In der MiHome-App kann man bei der Raumreinigung die Anzahl der Saugvorgänge festlegen. Im Adapter suche ich eine solche Funktion vergeblich. Ist es noch vorgesehen das mit zu implementieren? Oder hab ich einfach was übersehen?
Tolle Arbeit! Weiter so!