Weiter zum Inhalt
  • Home
  • Aktuell
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Ecovacs Deebot mit dynamischer Karte

NEWS

  • Monatsrückblick Juli / August 2026 ist online!
    BluefoxB
    Bluefox
    9
    1
    395

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    1.3k

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.8k

Ecovacs Deebot mit dynamischer Karte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
4 Beiträge 2 Kommentatoren 25 Aufrufe 2 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H Online
    H Online
    helfi9999
    schrieb zuletzt editiert von helfi9999
    #1

    Habe für meine Deebots eine dynamische Karte entwickelt da es für den Ecovacs Adapter dieses leider nicht gibt:
    435d8a1a-e7c9-4f65-b06a-6c2bfeed4f7d-image.jpeg
    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:
    f608add8-ad08-4860-9ef9-67e0647c6e1b-image.jpeg
    Das sind nur Beispiele.

    Die Baumstruktur sieht ungefähr so aus:
    916b4732-759c-41f3-94be-d09c29765840-image.jpeg
    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.txt

    Viel Spaß

    Intel NUC mit Iobroker

    sigi234S 1 Antwort Letzte Antwort
    0
    • H helfi9999

      Habe für meine Deebots eine dynamische Karte entwickelt da es für den Ecovacs Adapter dieses leider nicht gibt:
      435d8a1a-e7c9-4f65-b06a-6c2bfeed4f7d-image.jpeg
      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:
      f608add8-ad08-4860-9ef9-67e0647c6e1b-image.jpeg
      Das sind nur Beispiele.

      Die Baumstruktur sieht ungefähr so aus:
      916b4732-759c-41f3-94be-d09c29765840-image.jpeg
      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.txt

      Viel Spaß

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb zuletzt editiert von sigi234
      #2

      @helfi9999

      Hallo, brauche ich jetzt nicht mehr 6 Skripte?

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      H 1 Antwort Letzte Antwort
      0
      • sigi234S sigi234

        @helfi9999

        Hallo, brauche ich jetzt nicht mehr 6 Skripte?

        H Online
        H Online
        helfi9999
        schrieb zuletzt editiert von
        #3

        @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

        sigi234S 1 Antwort Letzte Antwort
        0
        • H helfi9999

          @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

          sigi234S Online
          sigi234S Online
          sigi234
          Forum Testing Most Active
          schrieb zuletzt editiert von sigi234
          #4

          @helfi9999

          Schaut schon besser aus. 👍

          f154b5a5-95b9-465c-81e4-04643607a00d-image.jpeg

          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!

          1 Antwort Letzte Antwort
          0

          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
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          349

          Online

          33.0k

          Benutzende

          83.7k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2026
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe