NEWS
Test Dreame Home Adapter
-
@mcbirne Hat den Ebenenwechsel schon jemand mit dem x40 hinbekommen? Über einen Tipp würde ich mich freuen.
-
In den letzten Wochen habe ich große Fortschritte gemacht. Die Dream Map ist nun fast vollständig. Außerdem können Teppiche nun für eine spezielle Reinigung ausgewählt werden.
Was den Code betrifft, habe ich mich entschieden, auf die MIOT (https://miot-spec.org/) zu verzichten. Der komplette Code ist derzeit offline.
Es fehlen nur noch einige Feinarbeiten, dann werde ich den Code veröffentlichen.
Eine deutsche Übersetzung ist ebenfalls geplant.
Unter dem folgenden Link habe ich ein Video hinterlegt: https://youtu.be/3Po3cvdTVzU
-
Um die Karte des Dream Roboters zu wechseln, wird die richtige Map-ID benötigt. Es ist jedoch schwierig, diese ID zu finden, da die Kartenaktualisierung kontinuierlich erfolgt, während der Roboter seinen Reinigungsvorgang durchführt.
Ich habe eine Dummy-Oberetage erstellt, um die Funktion zu testen. Für die untere Etage wurde dem Saugroboter die Karte mit der Nummer 59 zugewiesen, während die obere Etage die Karte mit der Nummer 292 erhalten hat.Ich habe dieses Problem in der neuen Version integriert und erfolgreich getestet.
Hier ist der Code für die Map-Aktionen:
-
Room Settings:
[{"piid": 4,"value":"{\"customeClean\":[[[Room ID, Suction Level, Water Volume, Repeats, Cleaning Mode, Route]]]}"}]
-
Kartenwechsel:
[{"piid": 4,"value": "{\"sm\":{},\"mapid\":map_id}"}]
-
Kartenumbenennung:
[{"piid": 4, "value": "{\"nrism\": {map_id: {\"name\": \"New_name\"}}}"]
-
Karten löschen:
[{"piid": 4,"value": "{\"cm\":{},\"mapid\":map_id}"}]
Ich werde außerdem den Adapter umbenennen, da die neue Version derzeit nur einen Roboter unterstützt und die Baum-Objektstrukturen nun grundlegend anders sind als in der alten tombox-Version.
Falls es noch Ideen oder Vorschläge gibt, bitte gerne hier teilen! Ich kann nicht versprechen, dass ich alles umsetzen kann, aber vielleicht lässt sich das eine oder andere bereits vor der ersten Veröffentlichung integrieren.
-
-
@wawyo Super. Schon einmal vielen Dank für deine Arbeit. Bin schon sehr gespannt. Was noch cool wäre, wäre der Wechsel zwischen Clean Genius und den manuellen Raumeinstellungen. Wie muss man das übergeben?
Sonst ist es bei mir so, dass er die manuellen Raumeinstellungen nicht übernimmt, wenn er vorher in Clean Genius lief.
Die individuellen Raumeinstellungen werden erst angenommen, wenn vorher in der App ein manueller Vorgang gestartet wurde. -
@heinz2100
Die Umsetzung des Wechsels zwischen dem Clean Genius-Modus und den manuellen Raumeinstellungen ist grundsätzlich machbar. Allerdings muss ich noch weiter recherchieren, wie genau der Genius- und der manuelle Modus aufgebaut sind, da die Genius-Funktion keine Standardfunktion ist.Was ich bisher herausgefunden habe, ist, dass der Umschalter unter SIID 4 und PIID 50 angesiedelt ist. Diese Funktion wird später als Zusatzoption implementiert.
[ { "k": "AutoDry", "v": 1 }, { "k": "SmartAutoWash", "v": 2 }, { "k": "CarpetOnlyClean", "v": 1 }, { "k": "MopEffectSwitch", "v": 1 }, { "k": "FluctuationTestResult", "v": 0 }, { "k": "CleanRoute", "v": 1 }, { "k": "SuperWash", "v": 0 }, { "k": "MopScalable", "v": 2 }, { "k": "SuctionMax", "v": 0 }, { "k": "LessColl", "v": 1 }, { "k": "CarpetFineClean", "v": 1 }, { "k": "FillinLight", "v": 1 }, { "k": "MonitorHumanFollow", "v": 0 }, { "k": "MopScalableVersion", "v": 0 }, { "k": "SmartDrying", "v": 0 }, { "k": "LacuneMopScalable", "v": 1 }, { "k": "HotWash", "v": 1 }, { "k": "CleanType", "v": 0 }, { "k": "DetergentNote", "v": 1 }, { "k": "MeticulousTwist", "v": -7 }, { "k": "MopEffectState", "v": 3 }, { "k": "MaterialDirectionClean", "v": 0 }, { "k": "PetPartClean", "v": 0 }, { "k": "RobotCarpetPressEnable", "v": 1 }, { "k": "MopScalable2", "v": 1 }, { "k": "MonitorPromptLevel", "v": 1 }, { "k": "UVLight", "v": 0 }, { "k": "MopFullyScalable", "v": 0 }, { "k": "StainIdentify", "v": 1 }, { "k": "SmartAutoMop", "v": 2 }, { "k": "SmartCharge", "v": 1 }, { "k": "FluctuationConfirmResult", "v": 0 }, { "k": "SmartHost", "v": 0 } ]
-
Hallo zusammen,
ich möchte euch den Download-Link für die neue Version von Dreame zur Verfügung stellen. Der Name der Adapter wurde auf „Dreame Home“ geändert. Bitte beachtet, dass es sich um eine Alpha Pre-Release handelt.
Download DreameHome pre-release alpha 0.1.0
Mein Hauptanliegen ist es herauszufinden, ob die Karte für andere Roboter als den L20 (meinen Saugroboter) heruntergeladen werden kann. Es wäre hilfreich, wenn ihr mir eine Rückmeldung darüber gebt, ob der Download funktioniert.
Für die Rückmeldung benötige ich bitte folgende Informationen:
1. Saugroboter-Modelle? 2. Wurde der Login erfolgreich durchgeführt? 3. Wurde die HTML-Datei erstellt? 4. Was wurde im Objektbaum erstellt?
Es gibt noch viele Funktionen, die derzeit nicht freigeschaltet sind, daher liegt der Fokus momentan auf diesen spezifischen Punkten.
Ich freue mich auf euer Feedback!
Achtung!!
Check if canvas is installed using the following command:
cd /opt/iobroker/ npm list canvas
If canvas is not installed, run the following command to install it:
cd /opt/iobroker/ npm install canvas
Then, check again by running the first command to ensure that canvas is properly installed.
EDIT
Um die Karte herunterzuladen, setzt bitte das Objekt dreamehome.0.xxxxxxxx.map.NewMap auf true. Für den Wechsel zwischen den Etagen muss das Objekt dreamehome.0.xxxxxxxx.map.MapNumber auf Map 1 oder Map 2 umgeschaltet werden.
Die Objekte Start-Clean, Update und Restart sind aktuell deaktiviert.
-
@wawyo Hallo! Vielen Dank für Deine Arbeit am Adapter!
Ich habe einen L10 Prime (dreame.vacuum.r2251a): Der Adapter hat mit diesem Model leider Probleme mit der Karte:
2024-12-29 12:16:44.107 - info: dreamehome.0 (258419) Die aktuell eingestellte Standard-Kartennummer ist eingestellt auf 0 2024-12-29 12:16:44.116 - info: dreamehome.0 (258419) Die Karte wurde erfolgreich aus der Cloud heruntergeladen 2024-12-29 12:16:44.145 - info: dreamehome.0 (258419) Die aktuell eingestellte Standard-Kartennummer ist eingestellt auf 0 2024-12-29 12:16:44.201 - error: dreamehome.0 (258419) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2024-12-29 12:16:44.201 - error: dreamehome.0 (258419) unhandled promise rejection: Cannot read properties of undefined (reading 'storeys') 2024-12-29 12:16:44.202 - error: dreamehome.0 (258419) TypeError: Cannot read properties of undefined (reading 'storeys') at Dreamehome.onReady (/opt/iobroker/node_modules/iobroker.dreamehome/main.js:1306:47)
Ohne existierende 2. Karte ist der Adapter gestartet und zeigt Ladestatus etc. an - ich hab Testweise eine 2. Karte erstellt, jetzt stürzt der Adapter mit der gleichen Fehlermeldung bei jeder ausgewählten ID ab. Die Karten mit Namen erkennt er - Inhalt map cloud data (map-id sicherheistshalber mal entfernt):
{ "mapstr": [ { "id": 1, "name": "Treppenhaus", "angle": "0", "map": "<redacted>" }, { "id": 0, "name": "Wohnung", "angle": "270", "map": "<redacted>" } ], "curr_id": 2 }
Canvas ist installiert und zur Sicherheit Iobroker fixer ausgeführt. Werfe gerade mal selber einen Blick in den Code. Bin gerne bereit zu unterstützen.
Gruß Martin
-
@mcbirne die aktuelle Version gibt unter Maps alle Karten aus mit den jeweiligen IDs damit sollte der Kartenwechsel einfacher möglich sein
-
@tombox
Ich bin gerade im Skiurlaub. Ich habe gerade den neuen Adapter installiert. Testen kann ich es von hier aber nicht. Sobald ich wied3r zu Hause bin, werde ich es ausprobieren.
Vielen Dank für die Mühe! -
@evilbrewer
Vielen Dank für dein Feedback! Bitte teste die neue Version auf GitHub und versuche auch, die Map unter dreamehome.0.xxxxx.map.MapNumber zu ändern. Die Daten werden jetzt automatisch von der Cloud heruntergeladen.Changelog:
- Der Absturz nach dem Herunterladen der Karte wurde behoben.
- Teppichreinigungsfunktion hinzugefügt.
- Funktionen zur Zonenreinigung und Fleckenreinigung wurden hinzugefügt.
- Raumnamen sind jetzt unter dem Ordner Map.0 oder M.01 sichtbar.
PS: Bitte verzeiht mir, wenn ich zukünftig nicht mehr im Forum antworte. Stattdessen werde ich die Updates direkt unter GitHub bereitstellen.