NEWS
Adapter mihome-vacuum anpassungen
-
In der vis geht das nicht, dafür gibt es ja die queue. Es gibt aber mehrere Workarounds, habe ich schon mehrfach beschrieben, einfach mal suchen
-
OK danke. Ich suche das mal.
-
Könnte mir vielleicht jemand sagen, wie ich zu den Datenpunkt Multi Home Clean die Räume zuweise um ihn dann auszuführen? Danke
-
@hohmannc Hab das vor langer Zeit mal genutzt. Ich glaub du musst dem Objekt die Räume (enum.room) zuweisen und diese müssen natürlich auch den room states korrekt zugeordnet sein.
Bei mir würde jetzt Bad und Wohnzimmer gesaugt. -
@hohmannc der multi Home Clean ist noch ein alter Button. Einfacher ist es, wenn du einfach alle zu saugenden Räume direkt losschickst. Wir haben ja die queue dahinter, die managt das. Du kannst dir auch einen Timer anlegen, den du auf inaktiv setzt und dann einfach immer manuell auslöst, wenn gewünscht
-
@diginix super danke!
-
@dirkhe ach gut zu wissen! d.h. alles Button drücken und dann fährt er nacheinander ab! super danke!
habt ihr vielleicht für mich nochmal einen link für eine Anleitung zum Übertragen der Räume (sind in der Cloud) ich hatte die schon drin (weiss aber nicht mehr wie ich es geschafft habe) und finde die Anleitung nicht mehr. (nur wenn ihr es zur Hand habt, sonst suche ich am Wochenende nochmal!)
Danke !!
-
@chillbreak Guten Morgen, ich habe noch einen Roborock der ersten Generation mit der Firmware 3.5.8_004028
So wie ich gelesen habe, soll es doch auch möglich sein hier die Räume zu verwenden. Alerdings habe ich unter Control nicht die Zeile X_Send_Command
Es wäre klasse, wenn Du mir helfen könntest, das bei mir einzurichten. Ich habe zwar alles gelesen, aber nicht so ganz verstanden, denn ioBroker ist für mich noch ziemliches Neuland
Auch die Karte wird bei mir nicht angezeigt.
Anbei mal zwei Screenshots: -
Moin Zusammen!
Hab jetzt auch eine Roborock S7 MaxV und bin nun auf diesen Adapter aufmerksam geworden. Die Grundfunktionen klappen soweit, auch die Karte wird geladen und ich kann sie in JARVIS darstellen.Problem
Was ein wichtiger Anwendungsfall ist, wo ich noch Probleme habe ist die Reinigung mehrerer Räume. Ich kann überroomClean
jeden Raum einzelnen starten und er wird auch in die Queue übernommen, sowie abgearbeitet. Ich sehe aber folgende Probleme damit:- Der Roboter spricht mit uns. Sobald ein Raum fertig ist, sagt er sei fertig und fährt zur Station. Dann merkt der Adapter, dass der nächste Raum kommandiert werden kann und tut das. > Nervig die unterschiedlichen Ansagen zw. jedem Raum
- Passend dazu bekommen wir auch zig Meldungen über die App
- Nach jedem Raum werden für Saug- und Wischstufe die Default-Werte vom Roboter selber gesetzt. D.h. wenn ich einen bestimmten Saug-/Wischmodus eingestellt habe geht dieser zw. jedem Raum verloren
- In der App sehen wir nicht mehr, welche Räume wir ausgewählt hatten (Kosmetisch)
Potentielle Lösung / Frage
Gibt es eine Möglichkeit mit einem Befehl mehrere Räume zu kommandieren?
Das würde m.E. alle genannten Probleme auf einmal lösen. Aktuell bin ich mind. unwissend wie das geht. Ich habe verstanden, dassmultiRoomClean
veraltet ist. Ggf. über einen manuellen Befehl? Falls über manuellen Befehl hat jemand ein Beispiel (bevor ich irgendwas kaputt mache )Vielen Dank im Voraus!!!
-
@rkccorian mehrere Räume geht, habe ich hiet schon mehrfach beschrieben, stichwort timer anlegen, den musst du nicht aktivieren und ksnnst ihn manuell auslösen oder per alexa.
-
@dirkhe Wenn ich es richtig verstehe...
Möglichkeit 1: über Skript den passenden Timer DP erstellen und dann auf aktiv schalten?! Geht das, oder muss der Timer manuell über die Adapter-Konfig (und dann viele, für alle möglichen Raumkombinationen) erstellt werden.
Möglichkeit 2 (Bevorzugt, falls möglich): Wie wäre die Alternative über SendTo? Wäre das folgende korrekt?sendTo("mihome-vacuum.0", cleanRooms, {rooms: "937001046387","937001046414","937001046404"}, function (response) { /* do something with the result */} );
Bzw. mein Ziel wäre Blockly
Vielen Dank!!!
Mein Ziel: Bereite gerade über iot Adapter die Alexa Integration vor und da können alle Kombinationen möglich sein. Wenn es klappt, kann ich es hier teilen
-
@rkccorian das einfachste ist es über die konfguration einen timer anzulegen. Den weist du die räume zu und schaltetst den dadurch angelegten dp per "jetzt starten"
Du kannst auch direkt die segmente über custom commsnd setzen
Sendto sollte aucb funktionieren. Icb habe die syntax nicht im kopf, dafür gibt es die readme oder das forum -
@dirkhe sagte in Adapter mihome-vacuum anpassungen:
@rkccorian das einfachste ist es über die konfguration einen timer anzulegen. Den weist du die räume zu und schaltetst den dadurch angelegten dp per "jetzt starten"
Da ich mehrere Räume habe müsst ich sehr viele Timer für alle Kombinationen, inkl. verschiedener Reihenfolge anlegen > Suche eine andere Lösung
Du kannst auch direkt die segmente über custom commsnd setzen
Hab in der Doku geschaut, aber nichts zu Multiroom gefunden
Sendto sollte aucb funktionieren. Icb habe die syntax nicht im kopf, dafür gibt es die readme oder das forum
Hab die Doku angeschaut, dort steht was vonrooms is a comma separated String with enum.rooms.XXX
Das verstehe ich leider nicht. Soweit ich den anderen Teil der Doku verstanden habe werden enums "nur" dazu genutzt, um den jeweiligen RoomIndex zu ermitteln. Daher wäre meine Vermutung, dass ich auch direkt den RoomIndex angeben kann.Bevor ich den folgenden Befehl abschicke... kann da was kaputt gehen? Vermute mal nicht, aber lieber einmal mehr fragen...
sendTo("mihome-vacuum.0", "cleanRooms", { "rooms": '937001046387,937001046414,937001046404' }, async function (result) { console.log('result'); } );
Vgl. auch Doku...
sendTo("mihome-vacuum.0", commandName, {param1: value1, param2: value2, ...}, function (response) { /* do something with the result */} );
Danke und sorry, falls ich nerve. Will nur nichts direkt verzocken, der Roboter war teuer genug.
-
@rkccorian kaputt machen kannst du eigentlich nichts, soweig ich weiß.
Icb weiss nicht, was du ds für werte hast, aber cleanrooms bezieht sich auf die iobroker räume.
Was du willst, idt eher clesnsegments. Da musst du dann deine indexe angeben, die aus der app kommen.
Stell den adapter einfach auf debug und schicke ihn mal los, da diehst du ja, was er macht. -
@dirkhe Moin! Hab jetzt mal Folgendes Laufen lassen, mit dem Log:
Blockly:
Raum-Konfig / Enum wurde zugewiesen
Log
Eine Idee was ich noch machen kann?
Probiere am WE mal den Workaround über Timer aus.
-
@rkccorian man sieht halt nicht, was an den robbi gesendet wird. Blocky kann ich nicht lesen, ist mir zu kompliziert
Also entweder setzt du den adapter vorher auf debug, damit man sieht was passiert oder du nimmst den dp customcommand und schreibst da folendes rein
app_segment_clean;[18,20] um zb. die 2 räume zu reinigen -
@dirkhe Moin!
Nochmal den Blockly-Code in JS-AnsichtsendTo("mihome-vacuum.0", "cleanRooms", { "rooms": 'enum.rooms.wohnzimmer' }, async function (result) { console.log(result); });
Adapter auf Debug, Log. Hab mich an die Doku gehalten, allerdings kommt die unten sichtbare Exception.
Hab gerade auch noch die von Dir genannte Alternative mit
app_segment_clean;[18,20]
ausprobiert. Die hat funktioniert und ich werde diese nutzen. Vielen Dank!
Würde empfehlen das funktionierende Beispiel direkt in die Adapter Doku aufzunehmen, da vermutlich viele danach fragen. Bzgl. der Exception... soll ich ein Issue aufmachen?!
-
@rkccorian ich kann mir das ja mal anschschauen.
Das mit der doku nehme ich mal mit -
@dirkhe Nachdem das mit den Räumen wunderbar funktioniert versuche ich mich gerade an der Zonenreinigung.
-
Versuch 1: Schreiben auf
DP mihome-vacuum.0.control.zoneClean
hat keine Effekt. Auch nicht mit den Daten, welche vorher aufgrund einer Zonenreinigung, welche über die App angefragt habe, eingegeben werden. Die Werte werden beim ersten Versuch sogar aus dem DP gelöscht. Anbei das Log...
-
Versuch 2: Die Zonendaten vom DP
mihome-vacuum.0.control.zoneClean
nehmen undapp_zoned_clean;[20950,23000,23650,20500,1]
auf den DPmihome-vacuum.0.control.X_send_command
schreiben. Dann legt der Roboter los, fährt aber komplett woanders hin. Woher bekomme ich die "richtigen" Koordinaten?
Hab jetzt keinen dazu passenden offenen Issue gefunden. Mache ich einen Fehler? Vielen Dank erneut!!
-
-
@rkccorian also nochmal zu den clean rooms, da steht in der readme, das dort ein String erwartet wird:
also muss das heißen:sendTo("mihome-vacuum.0", "cleanRooms", 'enum.rooms.wohnzimmer,enum.rooms.kueche' , async function (result) { console.log(result); });
Ich habe die readme aber daraufhin nochmal angepasst. Zusätzlich gebe ich dann noch im log aus, dass ein string erwartet wird. Kommt dann bald
Für das andere bitte den adapter nochmal auf debug stellen und nochmal machen, bitte.