- ioBroker Community Home
- Deutsch
- Skripten / Logik
- Ecovacs Deebot mit dynamischer Karte
Ecovacs Deebot mit dynamischer Karte
-
Habe für meine Deebots eine dynamische Karte entwickelt da es für den Ecovacs Adapter dieses leider nicht gibt:

Eine Fahrspur ersccheint auch wenn der Sauger losfährt
Ihr könnt auf der Karte die Räume aussuchen die ihr reinigen wollt. Die restlichen Buttons müsst ihr selbst erstellen:

Das sind nur Beispiele.Die Baumstruktur sieht ungefähr so aus:

Anleitung:
ECOVACS ioBroker UNIVERSAL v7.3 KOMPLETTE INSTALLATIONSANLEITUNG FÜR EIN FREMDES / NEUES SYSTEM ================================================================ ZIEL ==== Dieses Paket ist für eine komplett andere ioBroker-Installation gedacht. Es ist NICHT auf bestimmte Namen wie Luna oder Sky fest programmiert. Es versucht automatisch alle vorhandenen Ecovacs-Instanzen zu erkennen. Unterstützte Instanznamen sind zum Beispiel: ecovacs-deebot.0 ecovacs-deebot.1 ecovacs-deebot.2 Die Instanznummer ist egal. DAS PAKET ENTHÄLT ================= 1. 01_Ecovacs_Universal_Setup_v7.3.js 2. 02_Ecovacs_Universal_Runtime_v7.3.js 3. 03_Ecovacs_Universal_VIS_v7.3.js 4. KURZANLEITUNG.txt VORAUSSETZUNGEN =============== Auf dem Zielsystem müssen vorhanden sein: - ioBroker - JavaScript-Adapter - Ecovacs-Deebot-Adapter - mindestens ein eingerichteter Ecovacs-Sauger Der Ecovacs-Adapter muss bereits funktionieren. Unter: Objekte sollten Datenpunkte sichtbar sein, die mit: ecovacs-deebot. beginnen. BEISPIEL ======== Das kann z.B. so aussehen: ecovacs-deebot.0 ecovacs-deebot.1 oder: ecovacs-deebot.2 Die Scripts erkennen automatisch, welche Instanzen vorhanden sind. WICHTIG ======= Jede .js-Datei wird als eigenes JavaScript-Skript in ioBroker angelegt. Nicht diese Anleitung oder eine README in ein JavaScript-Skript kopieren. ============================================================ SCHRITT 1 - DREI JAVASCRIPT-SKRIPTE ANLEGEN ============================================================ In ioBroker: Skripte -> JavaScript drei neue JavaScript-Skripte anlegen. Zum Beispiel: Ecovacs - Setup Ecovacs - Runtime Ecovacs - VIS In "Ecovacs - Setup" den kompletten Inhalt von: 01_Ecovacs_Universal_Setup_v7.3.js einfügen. In "Ecovacs - Runtime" den kompletten Inhalt von: 02_Ecovacs_Universal_Runtime_v7.3.js einfügen. In "Ecovacs - VIS" den kompletten Inhalt von: 03_Ecovacs_Universal_VIS_v7.3.js einfügen. ============================================================ SCHRITT 2 - NUR DAS SETUP STARTEN ============================================================ Zuerst: Setup = AN Runtime = AUS VIS = AUS Das Setup durchsucht automatisch alle: ecovacs-deebot.* Instanzen. Es versucht automatisch zu erkennen: - Gerätename - Adapter-Prefix - Map-ID - Räume / spotAreas Danach wird unter: 0_userdata.0.Sauger für jeden gefundenen Sauger eine eigene Struktur angelegt. BEISPIEL ======== Das kann zum Beispiel werden: 0_userdata.0.Sauger.Deebot_T20 oder: 0_userdata.0.Sauger.Sauger_1 oder der tatsächlich vom Adapter gelieferte Gerätename. ============================================================ SCHRITT 3 - PRÜFEN, OB DAS SETUP ERFOLGREICH WAR ============================================================ Unter: Objekte -> 0_userdata -> 0 -> Sauger sollte mindestens ein Sauger erscheinen. Darin sollten unter anderem vorhanden sein: name deebotPrefix mapId Runtime Map Rooms VIS Wenn das vorhanden ist: Setup = AUS Das Setup muss im normalen Betrieb NICHT laufen. ============================================================ SCHRITT 4 - RUNTIME STARTEN ============================================================ Jetzt: Runtime = AN Das Runtime-Skript enthält zusammen: 1. Kartenquellen-Erkennung 2. Position 3. Fahrspur 4. Raum-Auswahl-Synchronisierung 5. automatische Raumflächen-Erkennung 6. automatische AutoBounds-Berechnung pro Sauger Das Runtime-Skript verarbeitet automatisch ALLE Sauger unter: 0_userdata.0.Sauger.*.deebotPrefix ============================================================ SCHRITT 5 - VIS STARTEN ============================================================ Jetzt: VIS = AN Das VIS-Skript erzeugt pro Sauger: 0_userdata.0.Sauger.<Name>.VIS.html Beispiel: 0_userdata.0.Sauger.Deebot_T20.VIS.html ============================================================ SCHRITT 6 - VIS-WIDGET EINRICHTEN ============================================================ In ioBroker VIS: Basic -> String (unescaped) verwenden. Als Objekt-ID direkt eintragen: 0_userdata.0.Sauger.<Name>.VIS.html Beispiel: 0_userdata.0.Sauger.Deebot_T20.VIS.html WICHTIG ======= Keine geschweiften Klammern verwenden. RICHTIG: 0_userdata.0.Sauger.Deebot_T20.VIS.html FALSCH: {0_userdata.0.Sauger.Deebot_T20.VIS.html} ============================================================ RESPONSIVE KARTENGRÖSSE ============================================================ Die Karte passt sich automatisch an die Größe des VIS-Widgets an. Du musst KEINE Breite und Höhe in Datenpunkten einstellen. Einfach im VIS-Editor das String-(unescaped)-Widget: - breiter ziehen - schmaler ziehen - höher ziehen - niedriger ziehen Die komplette Darstellung skaliert automatisch mit: - Raumflächen - Fahrspur - Roboterposition Das interne Koordinatensystem bleibt: 540 x 231 Für eine proportionale Darstellung ungefähr dieses Verhältnis beibehalten. Beispiele: 540 x 231 720 x 308 900 x 385 1080 x 462 Wenn das Widget stark anders proportioniert wird, wird die Darstellung gestreckt. ============================================================ RAUM AUSWÄHLEN ============================================================ Einfach direkt auf die farbige Raumfläche klicken. Beim Klick wird intern der passende Ecovacs-State geschaltet: ecovacs-deebot.x.map.<mapId>.spotAreas.<id>.markForNextSpotAreaCleaning Ein ausgewählter Raum wird stärker dargestellt. Es gibt keine zusätzlichen Auswahlbuttons mehr. ============================================================ MEHRERE RÄUME AUSWÄHLEN ============================================================ Mehrere Raumflächen können nacheinander angeklickt werden. Die Auswahl wird direkt im Ecovacs-Adapter gesetzt. ============================================================ MEHRERE SAUGER ============================================================ Das Paket ist nicht auf einen einzelnen Sauger begrenzt. Wenn mehrere Instanzen vorhanden sind: ecovacs-deebot.0 ecovacs-deebot.1 ecovacs-deebot.2 werden sie automatisch getrennt verarbeitet. Jeder Sauger bekommt: - eigene Map-ID - eigene Räume - eigene Raumflächen - eigene AutoBounds - eigene Position - eigene Fahrspur - eigenes VIS.html ============================================================ AUTOMATISCHE RAUMFLÄCHEN ============================================================ Die Runtime sucht pro Raum automatisch nach Geometriedaten. Gesucht wird zum Beispiel nach: polygon boundary boundaries coordinates coords points vertices outline contour rect bounds Wenn passende Geometrie gefunden wird: Rooms.<id>.polygonPoints wird gefüllt. Die VIS zeichnet daraus die farbige Raumfläche. ============================================================ AUTOMATISCHE AUTOBOUNDS ============================================================ Für jeden Sauger werden die Raumgrenzen automatisch berechnet. Datenpunkte: 0_userdata.0.Sauger.<Name>.Map.AutoBounds.minX 0_userdata.0.Sauger.<Name>.Map.AutoBounds.maxX 0_userdata.0.Sauger.<Name>.Map.AutoBounds.minY 0_userdata.0.Sauger.<Name>.Map.AutoBounds.maxY 0_userdata.0.Sauger.<Name>.Map.AutoBounds.valid Damit ist die Raumdarstellung nicht mehr auf feste Kartenkoordinaten eines bestimmten Saugers angewiesen. ============================================================ POSITION UND FAHRSPUR ============================================================ Wenn vorhanden, wird verwendet: ecovacs-deebot.x.map.deebotPosition Daraus werden erzeugt: Map.pixelXcss Map.pixelYcss Map.rotateCss Map.trailPoints Die Roboterposition wird zusammen mit den automatisch erkannten AutoBounds auf die aktuelle Raumkarte angepasst. Die Fahrspur wird bei einem neuen Reinigungsvorgang zurückgesetzt. ============================================================ KARTENQUELLEN-ERKENNUNG ============================================================ Die Runtime sucht außerdem automatisch nach Kartenquellen. Bevorzugt wird: ecovacs-deebot.x.map.<mapId>.map64 Diagnose: 0_userdata.0.Sauger.<Name>.Map.Source.type 0_userdata.0.Sauger.<Name>.Map.Source.state 0_userdata.0.Sauger.<Name>.Map.Source.image 0_userdata.0.Sauger.<Name>.Map.Source.status Hinweis: Die aktuelle VIS v7.3 verwendet absichtlich KEIN Kartenbild als Hintergrund. Dargestellt werden nur: - Raumflächen - Fahrspur - Roboterposition ============================================================ DATENSTRUKTUR ============================================================ Beispiel: 0_userdata.0.Sauger.<Name> | +-- name +-- deebotPrefix +-- mapId | +-- Runtime | +-- statusText | +-- positionName | +-- Map | +-- pixelXcss | +-- pixelYcss | +-- rotateCss | +-- trailPoints | | | +-- AutoBounds | | +-- minX | | +-- maxX | | +-- minY | | +-- maxY | | +-- valid | | | +-- Config | | +-- minX | | +-- maxX | | +-- minY | | +-- maxY | | +-- imgW | | +-- imgH | | | +-- Source | +-- type | +-- state | +-- image | +-- status | +-- Rooms | +-- <Raum-ID> | +-- id | +-- name | +-- selected | +-- geometryState | +-- geometryType | +-- polygonPoints | +-- rawGeometry | +-- geometryStatus | +-- VIS +-- html ============================================================ NEUEN SAUGER SPÄTER HINZUFÜGEN ============================================================ Wenn später ein weiterer Ecovacs-Sauger hinzukommt: 1. neuen Sauger im Ecovacs-Adapter vollständig einrichten 2. Setup kurz AN 3. warten, bis der neue Sauger unter: 0_userdata.0.Sauger erscheint 4. Setup wieder AUS 5. Runtime einmal neu starten 6. VIS einmal neu starten Danach wird der neue Sauger automatisch mit verarbeitet. ============================================================ FEHLERSUCHE ============================================================ 1. SAUGER WIRD NICHT ANGELEGT ----------------------------- Prüfen: - läuft der Ecovacs-Adapter? - existieren ecovacs-deebot.* Datenpunkte? - Setup kurz AN? 2. KEINE RÄUME -------------- Prüfen, ob unter: ecovacs-deebot.x.map.<mapId>.spotAreas Räume vorhanden sind. Wenn der Adapter keine spotAreas liefert, kann das Paket keine Räume erzeugen. 3. RAUM WIRD NICHT GEZEICHNET ----------------------------- Prüfen: 0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStatus 0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryState 0_userdata.0.Sauger.<Name>.Rooms.<id>.polygonPoints Wenn dort keine Geometrie gefunden wird, liefert das Modell / die Adapterversion für diesen Raum keine verwertbaren Raumkoordinaten. 4. NUR EIN KLEINER STREIFEN DER KARTE SICHTBAR ----------------------------------------------- Prüfen: Map.AutoBounds.valid sollte: true sein. Außerdem prüfen: Map.AutoBounds.minX Map.AutoBounds.maxX Map.AutoBounds.minY Map.AutoBounds.maxY v7.3 berechnet diese Werte pro Sauger automatisch. 5. KEINE ROBOTERPOSITION ------------------------ Prüfen: ecovacs-deebot.x.map.deebotPosition Wenn dieser State nicht vorhanden ist, kann keine Live-Position dargestellt werden. 6. FAHRSPUR FEHLT ----------------- Prüfen: 0_userdata.0.Sauger.<Name>.Map.trailPoints Außerdem muss: ecovacs-deebot.x.map.deebotPosition regelmäßig neue Werte liefern. 7. VIS BLEIBT LEER ------------------ Prüfen: - Runtime = AN? - VIS = AN? - String (unescaped) Widget verwendet? - richtige Objekt-ID? - VIS.html hat einen Inhalt? 8. RAUM LÄSST SICH NICHT AUSWÄHLEN ---------------------------------- Prüfen, ob dieser State vorhanden ist: ecovacs-deebot.x.map.<mapId>.spotAreas.<id>.markForNextSpotAreaCleaning Dieser State muss vom Ecovacs-Adapter bereitgestellt werden. 9. FALSCHE RAUMNAMEN -------------------- Prüfen unter: 0_userdata.0.Sauger.<Name>.Rooms.<id>.name Die Namen werden beim Setup automatisch aus dem Adapter übernommen, sofern der Adapter einen Namen bereitstellt. Setup nur erneut starten, wenn: - ein neuer Sauger hinzukommt - neue Setup-Datenpunkte gebraucht werden - die Struktur neu aufgebaut werden soll ============================================================ NORMALBETRIEB ============================================================ Nach erfolgreicher Installation: Setup = AUS Runtime = AN VIS = AN ============================================================ KURZFASSUNG FÜR EIN FREMDES SYSTEM ============================================================ 1. Ecovacs-Deebot-Adapter installieren und Sauger einrichten 2. Drei JavaScript-Skripte anlegen 3. Dateien einfügen: - Setup - Runtime - VIS 4. Nur Setup AN 5. Prüfen: 0_userdata.0.Sauger 6. Setup AUS 7. Runtime AN 8. VIS AN 9. In VIS: Basic -> String (unescaped) 10. Objekt-ID: 0_userdata.0.Sauger.<Name>.VIS.html 11. Widget einfach mit der Maus auf gewünschte Größe ziehen 12. Räume direkt in der Karte anklicken FERTIG ====== Normalbetrieb: Setup = AUS Runtime = AN VIS = AN
Hier die Dateien:
01_Ecovacs_Universal_Setup_v7.3.js
02_Ecovacs_Universal_Runtime_v7.3.js
03_Ecovacs_Universal_VIS_v7.3.js
KURZANLEITUNG.txtViel Spaß
Intel NUC mit Iobroker
-
Habe für meine Deebots eine dynamische Karte entwickelt da es für den Ecovacs Adapter dieses leider nicht gibt:

Eine Fahrspur ersccheint auch wenn der Sauger losfährt
Ihr könnt auf der Karte die Räume aussuchen die ihr reinigen wollt. Die restlichen Buttons müsst ihr selbst erstellen:

Das sind nur Beispiele.Die Baumstruktur sieht ungefähr so aus:

Anleitung:
ECOVACS ioBroker UNIVERSAL v7.3 KOMPLETTE INSTALLATIONSANLEITUNG FÜR EIN FREMDES / NEUES SYSTEM ================================================================ ZIEL ==== Dieses Paket ist für eine komplett andere ioBroker-Installation gedacht. Es ist NICHT auf bestimmte Namen wie Luna oder Sky fest programmiert. Es versucht automatisch alle vorhandenen Ecovacs-Instanzen zu erkennen. Unterstützte Instanznamen sind zum Beispiel: ecovacs-deebot.0 ecovacs-deebot.1 ecovacs-deebot.2 Die Instanznummer ist egal. DAS PAKET ENTHÄLT ================= 1. 01_Ecovacs_Universal_Setup_v7.3.js 2. 02_Ecovacs_Universal_Runtime_v7.3.js 3. 03_Ecovacs_Universal_VIS_v7.3.js 4. KURZANLEITUNG.txt VORAUSSETZUNGEN =============== Auf dem Zielsystem müssen vorhanden sein: - ioBroker - JavaScript-Adapter - Ecovacs-Deebot-Adapter - mindestens ein eingerichteter Ecovacs-Sauger Der Ecovacs-Adapter muss bereits funktionieren. Unter: Objekte sollten Datenpunkte sichtbar sein, die mit: ecovacs-deebot. beginnen. BEISPIEL ======== Das kann z.B. so aussehen: ecovacs-deebot.0 ecovacs-deebot.1 oder: ecovacs-deebot.2 Die Scripts erkennen automatisch, welche Instanzen vorhanden sind. WICHTIG ======= Jede .js-Datei wird als eigenes JavaScript-Skript in ioBroker angelegt. Nicht diese Anleitung oder eine README in ein JavaScript-Skript kopieren. ============================================================ SCHRITT 1 - DREI JAVASCRIPT-SKRIPTE ANLEGEN ============================================================ In ioBroker: Skripte -> JavaScript drei neue JavaScript-Skripte anlegen. Zum Beispiel: Ecovacs - Setup Ecovacs - Runtime Ecovacs - VIS In "Ecovacs - Setup" den kompletten Inhalt von: 01_Ecovacs_Universal_Setup_v7.3.js einfügen. In "Ecovacs - Runtime" den kompletten Inhalt von: 02_Ecovacs_Universal_Runtime_v7.3.js einfügen. In "Ecovacs - VIS" den kompletten Inhalt von: 03_Ecovacs_Universal_VIS_v7.3.js einfügen. ============================================================ SCHRITT 2 - NUR DAS SETUP STARTEN ============================================================ Zuerst: Setup = AN Runtime = AUS VIS = AUS Das Setup durchsucht automatisch alle: ecovacs-deebot.* Instanzen. Es versucht automatisch zu erkennen: - Gerätename - Adapter-Prefix - Map-ID - Räume / spotAreas Danach wird unter: 0_userdata.0.Sauger für jeden gefundenen Sauger eine eigene Struktur angelegt. BEISPIEL ======== Das kann zum Beispiel werden: 0_userdata.0.Sauger.Deebot_T20 oder: 0_userdata.0.Sauger.Sauger_1 oder der tatsächlich vom Adapter gelieferte Gerätename. ============================================================ SCHRITT 3 - PRÜFEN, OB DAS SETUP ERFOLGREICH WAR ============================================================ Unter: Objekte -> 0_userdata -> 0 -> Sauger sollte mindestens ein Sauger erscheinen. Darin sollten unter anderem vorhanden sein: name deebotPrefix mapId Runtime Map Rooms VIS Wenn das vorhanden ist: Setup = AUS Das Setup muss im normalen Betrieb NICHT laufen. ============================================================ SCHRITT 4 - RUNTIME STARTEN ============================================================ Jetzt: Runtime = AN Das Runtime-Skript enthält zusammen: 1. Kartenquellen-Erkennung 2. Position 3. Fahrspur 4. Raum-Auswahl-Synchronisierung 5. automatische Raumflächen-Erkennung 6. automatische AutoBounds-Berechnung pro Sauger Das Runtime-Skript verarbeitet automatisch ALLE Sauger unter: 0_userdata.0.Sauger.*.deebotPrefix ============================================================ SCHRITT 5 - VIS STARTEN ============================================================ Jetzt: VIS = AN Das VIS-Skript erzeugt pro Sauger: 0_userdata.0.Sauger.<Name>.VIS.html Beispiel: 0_userdata.0.Sauger.Deebot_T20.VIS.html ============================================================ SCHRITT 6 - VIS-WIDGET EINRICHTEN ============================================================ In ioBroker VIS: Basic -> String (unescaped) verwenden. Als Objekt-ID direkt eintragen: 0_userdata.0.Sauger.<Name>.VIS.html Beispiel: 0_userdata.0.Sauger.Deebot_T20.VIS.html WICHTIG ======= Keine geschweiften Klammern verwenden. RICHTIG: 0_userdata.0.Sauger.Deebot_T20.VIS.html FALSCH: {0_userdata.0.Sauger.Deebot_T20.VIS.html} ============================================================ RESPONSIVE KARTENGRÖSSE ============================================================ Die Karte passt sich automatisch an die Größe des VIS-Widgets an. Du musst KEINE Breite und Höhe in Datenpunkten einstellen. Einfach im VIS-Editor das String-(unescaped)-Widget: - breiter ziehen - schmaler ziehen - höher ziehen - niedriger ziehen Die komplette Darstellung skaliert automatisch mit: - Raumflächen - Fahrspur - Roboterposition Das interne Koordinatensystem bleibt: 540 x 231 Für eine proportionale Darstellung ungefähr dieses Verhältnis beibehalten. Beispiele: 540 x 231 720 x 308 900 x 385 1080 x 462 Wenn das Widget stark anders proportioniert wird, wird die Darstellung gestreckt. ============================================================ RAUM AUSWÄHLEN ============================================================ Einfach direkt auf die farbige Raumfläche klicken. Beim Klick wird intern der passende Ecovacs-State geschaltet: ecovacs-deebot.x.map.<mapId>.spotAreas.<id>.markForNextSpotAreaCleaning Ein ausgewählter Raum wird stärker dargestellt. Es gibt keine zusätzlichen Auswahlbuttons mehr. ============================================================ MEHRERE RÄUME AUSWÄHLEN ============================================================ Mehrere Raumflächen können nacheinander angeklickt werden. Die Auswahl wird direkt im Ecovacs-Adapter gesetzt. ============================================================ MEHRERE SAUGER ============================================================ Das Paket ist nicht auf einen einzelnen Sauger begrenzt. Wenn mehrere Instanzen vorhanden sind: ecovacs-deebot.0 ecovacs-deebot.1 ecovacs-deebot.2 werden sie automatisch getrennt verarbeitet. Jeder Sauger bekommt: - eigene Map-ID - eigene Räume - eigene Raumflächen - eigene AutoBounds - eigene Position - eigene Fahrspur - eigenes VIS.html ============================================================ AUTOMATISCHE RAUMFLÄCHEN ============================================================ Die Runtime sucht pro Raum automatisch nach Geometriedaten. Gesucht wird zum Beispiel nach: polygon boundary boundaries coordinates coords points vertices outline contour rect bounds Wenn passende Geometrie gefunden wird: Rooms.<id>.polygonPoints wird gefüllt. Die VIS zeichnet daraus die farbige Raumfläche. ============================================================ AUTOMATISCHE AUTOBOUNDS ============================================================ Für jeden Sauger werden die Raumgrenzen automatisch berechnet. Datenpunkte: 0_userdata.0.Sauger.<Name>.Map.AutoBounds.minX 0_userdata.0.Sauger.<Name>.Map.AutoBounds.maxX 0_userdata.0.Sauger.<Name>.Map.AutoBounds.minY 0_userdata.0.Sauger.<Name>.Map.AutoBounds.maxY 0_userdata.0.Sauger.<Name>.Map.AutoBounds.valid Damit ist die Raumdarstellung nicht mehr auf feste Kartenkoordinaten eines bestimmten Saugers angewiesen. ============================================================ POSITION UND FAHRSPUR ============================================================ Wenn vorhanden, wird verwendet: ecovacs-deebot.x.map.deebotPosition Daraus werden erzeugt: Map.pixelXcss Map.pixelYcss Map.rotateCss Map.trailPoints Die Roboterposition wird zusammen mit den automatisch erkannten AutoBounds auf die aktuelle Raumkarte angepasst. Die Fahrspur wird bei einem neuen Reinigungsvorgang zurückgesetzt. ============================================================ KARTENQUELLEN-ERKENNUNG ============================================================ Die Runtime sucht außerdem automatisch nach Kartenquellen. Bevorzugt wird: ecovacs-deebot.x.map.<mapId>.map64 Diagnose: 0_userdata.0.Sauger.<Name>.Map.Source.type 0_userdata.0.Sauger.<Name>.Map.Source.state 0_userdata.0.Sauger.<Name>.Map.Source.image 0_userdata.0.Sauger.<Name>.Map.Source.status Hinweis: Die aktuelle VIS v7.3 verwendet absichtlich KEIN Kartenbild als Hintergrund. Dargestellt werden nur: - Raumflächen - Fahrspur - Roboterposition ============================================================ DATENSTRUKTUR ============================================================ Beispiel: 0_userdata.0.Sauger.<Name> | +-- name +-- deebotPrefix +-- mapId | +-- Runtime | +-- statusText | +-- positionName | +-- Map | +-- pixelXcss | +-- pixelYcss | +-- rotateCss | +-- trailPoints | | | +-- AutoBounds | | +-- minX | | +-- maxX | | +-- minY | | +-- maxY | | +-- valid | | | +-- Config | | +-- minX | | +-- maxX | | +-- minY | | +-- maxY | | +-- imgW | | +-- imgH | | | +-- Source | +-- type | +-- state | +-- image | +-- status | +-- Rooms | +-- <Raum-ID> | +-- id | +-- name | +-- selected | +-- geometryState | +-- geometryType | +-- polygonPoints | +-- rawGeometry | +-- geometryStatus | +-- VIS +-- html ============================================================ NEUEN SAUGER SPÄTER HINZUFÜGEN ============================================================ Wenn später ein weiterer Ecovacs-Sauger hinzukommt: 1. neuen Sauger im Ecovacs-Adapter vollständig einrichten 2. Setup kurz AN 3. warten, bis der neue Sauger unter: 0_userdata.0.Sauger erscheint 4. Setup wieder AUS 5. Runtime einmal neu starten 6. VIS einmal neu starten Danach wird der neue Sauger automatisch mit verarbeitet. ============================================================ FEHLERSUCHE ============================================================ 1. SAUGER WIRD NICHT ANGELEGT ----------------------------- Prüfen: - läuft der Ecovacs-Adapter? - existieren ecovacs-deebot.* Datenpunkte? - Setup kurz AN? 2. KEINE RÄUME -------------- Prüfen, ob unter: ecovacs-deebot.x.map.<mapId>.spotAreas Räume vorhanden sind. Wenn der Adapter keine spotAreas liefert, kann das Paket keine Räume erzeugen. 3. RAUM WIRD NICHT GEZEICHNET ----------------------------- Prüfen: 0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStatus 0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryState 0_userdata.0.Sauger.<Name>.Rooms.<id>.polygonPoints Wenn dort keine Geometrie gefunden wird, liefert das Modell / die Adapterversion für diesen Raum keine verwertbaren Raumkoordinaten. 4. NUR EIN KLEINER STREIFEN DER KARTE SICHTBAR ----------------------------------------------- Prüfen: Map.AutoBounds.valid sollte: true sein. Außerdem prüfen: Map.AutoBounds.minX Map.AutoBounds.maxX Map.AutoBounds.minY Map.AutoBounds.maxY v7.3 berechnet diese Werte pro Sauger automatisch. 5. KEINE ROBOTERPOSITION ------------------------ Prüfen: ecovacs-deebot.x.map.deebotPosition Wenn dieser State nicht vorhanden ist, kann keine Live-Position dargestellt werden. 6. FAHRSPUR FEHLT ----------------- Prüfen: 0_userdata.0.Sauger.<Name>.Map.trailPoints Außerdem muss: ecovacs-deebot.x.map.deebotPosition regelmäßig neue Werte liefern. 7. VIS BLEIBT LEER ------------------ Prüfen: - Runtime = AN? - VIS = AN? - String (unescaped) Widget verwendet? - richtige Objekt-ID? - VIS.html hat einen Inhalt? 8. RAUM LÄSST SICH NICHT AUSWÄHLEN ---------------------------------- Prüfen, ob dieser State vorhanden ist: ecovacs-deebot.x.map.<mapId>.spotAreas.<id>.markForNextSpotAreaCleaning Dieser State muss vom Ecovacs-Adapter bereitgestellt werden. 9. FALSCHE RAUMNAMEN -------------------- Prüfen unter: 0_userdata.0.Sauger.<Name>.Rooms.<id>.name Die Namen werden beim Setup automatisch aus dem Adapter übernommen, sofern der Adapter einen Namen bereitstellt. Setup nur erneut starten, wenn: - ein neuer Sauger hinzukommt - neue Setup-Datenpunkte gebraucht werden - die Struktur neu aufgebaut werden soll ============================================================ NORMALBETRIEB ============================================================ Nach erfolgreicher Installation: Setup = AUS Runtime = AN VIS = AN ============================================================ KURZFASSUNG FÜR EIN FREMDES SYSTEM ============================================================ 1. Ecovacs-Deebot-Adapter installieren und Sauger einrichten 2. Drei JavaScript-Skripte anlegen 3. Dateien einfügen: - Setup - Runtime - VIS 4. Nur Setup AN 5. Prüfen: 0_userdata.0.Sauger 6. Setup AUS 7. Runtime AN 8. VIS AN 9. In VIS: Basic -> String (unescaped) 10. Objekt-ID: 0_userdata.0.Sauger.<Name>.VIS.html 11. Widget einfach mit der Maus auf gewünschte Größe ziehen 12. Räume direkt in der Karte anklicken FERTIG ====== Normalbetrieb: Setup = AUS Runtime = AN VIS = AN
Hier die Dateien:
01_Ecovacs_Universal_Setup_v7.3.js
02_Ecovacs_Universal_Runtime_v7.3.js
03_Ecovacs_Universal_VIS_v7.3.js
KURZANLEITUNG.txtViel Spaß
Hallo, brauche ich jetzt nicht mehr 6 Skripte?
Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
Immer Daten sichern! -
Hallo, brauche ich jetzt nicht mehr 6 Skripte?
@sigi234 schau mal habe gerade gemerkt das man die Karte über das Widget nicht vergrößern kann und habe alles etwas komprimiert so das jetzt nur 3 Skripte übrig sind. Schau mal bitte nach ob soweit alles klappt. Habe vor 2 Minuten die Skripte aktualisiert
Gruß Helfi9999
Intel NUC mit Iobroker
-
@sigi234 schau mal habe gerade gemerkt das man die Karte über das Widget nicht vergrößern kann und habe alles etwas komprimiert so das jetzt nur 3 Skripte übrig sind. Schau mal bitte nach ob soweit alles klappt. Habe vor 2 Minuten die Skripte aktualisiert
Gruß Helfi9999
Schaut schon besser aus.


Wie kann ich beim Hintergrund die Farbe ändern bzw. auf transparent?
Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
Immer Daten sichern!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden