NEWS
verschiedene Skripte
-
ECOVACS ioBroker UNIVERSAL – KOMPLETTPAKET v6.4
Dieses Paket ist universell aufgebaut.
Es ist NICHT fest auf Namen wie Luna oder Sky programmiert.
Es erkennt alle eingebundenen Instanzen nach dem Muster:ecovacs-deebot.xund legt pro erkanntem Sauger eine eigene Struktur an:
0_userdata.0.Sauger.<Gerätename>Beispiel:
0_userdata.0.Sauger.Luna 0_userdata.0.Sauger.SkyBei einem anderen Benutzer entstehen automatisch dessen eigene Gerätenamen.
ENTHALTENE SKRIPTE- 01_Ecovacs_Universal_Setup_v6.0.js
Aufgabe:
- erkennt alle ecovacs-deebot.* Instanzen
- versucht den Gerätenamen automatisch zu lesen
- erkennt die Map-ID
- erkennt alle spotAreas / Räume
- legt die benötigten 0_userdata-Datenpunkte an
Betrieb:
- EINMAL starten
- danach wieder AUS
Wenn später ein neuer Sauger hinzukommt:
- Setup erneut kurz starten
- danach wieder AUS
-
sucht pro Sauger automatisch nach einer Kartenquelle
-
bevorzugt:
ecovacs-deebot.x.map.<mapId>.map64 -
versucht bei vorhandenem loadMapImage die Karte regelmäßig neu anzufordern
-
schreibt die erkannte Quelle nach:
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
Betrieb:
- dauerhaft AN
Hinweis:
Die aktuelle VIS v6.4 verwendet das Kartenbild nicht mehr als Hintergrund.
Der MapSource kann trotzdem aktiv bleiben, weil er weiterhin universell die
Kartenquelle ermittelt und für Diagnose / spätere Erweiterungen verfügbar hält.Aufgabe:
-
liest pro Sauger:
ecovacs-deebot.x.map.deebotPosition
-
berechnet daraus die Position auf der Karte
-
aktualisiert:
Map.pixelXcss
Map.pixelYcss
Map.rotateCss -
zeichnet eine Fahrspur
-
setzt die Fahrspur bei einem neuen Reinigungsvorgang zurück
-
übernimmt Status und Positionsname, sofern vorhanden
Betrieb:
- dauerhaft AN
Aufgabe:
-
synchronisiert pro Raum:
markForNextSpotAreaCleaning
mit:
0_userdata.0.Sauger.<Name>.Rooms.<id>.selectedDadurch weiß die VIS, ob ein Raum ausgewählt ist.
Betrieb:
- dauerhaft AN
-
durchsucht jeden automatisch erkannten Raum nach Geometriedaten
-
sucht unter anderem nach:
polygon
boundary
boundaries
coordinates
coords
points
vertices
outline
contour
rect
bounds -
wandelt gefundene Raumgeometrien in SVG-Punkte um
-
speichert pro Raum:
Rooms.<id>.geometryState
Rooms.<id>.geometryType
Rooms.<id>.polygonPoints
Rooms.<id>.geometryStatus
Betrieb:
- dauerhaft AN
Wenn ein Sauger keine Raumgeometrie bereitstellt:
- polygonPoints bleibt leer
- die VIS kann dann keine Raumfläche zeichnen
Aufgabe:
- erzeugt die komplette VIS-Darstellung
- dunkler Hintergrund
- automatisch erkannte farbige Raumflächen
- Raumflächen direkt anklickbar
- Fahrspur
- Roboterposition
- KEINE zusätzlichen Raum-Buttons mehr
Betrieb:
- dauerhaft AN
INSTALLATION:
-
In ioBroker unter JavaScript für jede .js-Datei ein eigenes Skript anlegen.
-
Den Inhalt der jeweiligen .js-Datei komplett in das entsprechende
JavaScript-Skript kopieren.
EMPFOHLENE REIHENFOLGE
Schritt 1:
01_Ecovacs_Universal_Setup_v6.0.js
kurz ANWarten, bis die Struktur unter:
0_userdata.0.Saugerangelegt wurde.
Danach:
01 Setup AUSSchritt 2:
Folgende Skripte dauerhaft AN:02_Ecovacs_Universal_MapSource_v6.1.js 03_Ecovacs_Universal_Position_Fahrspur_v6.0.js 04_Ecovacs_Universal_RaumSync_v6.0.js 05_Ecovacs_Universal_Raumflaechen_Detektor_v6.2.js 06_Ecovacs_Universal_VIS_Raumflaechen_v6.4.jsWELCHE SKRIPTE SIND AN / AUS?
01 Setup:
AUS
Nur bei Erstinstallation oder neuem Sauger kurz AN.02 MapSource:
AN03 Position/Fahrspur:
AN04 RaumSync:
AN05 Raumflächen-Detektor:
AN06 VIS:
ANVIS EINRICHTEN
In VIS ein Widget verwenden:
Basic -> String (unescaped)Als Objekt-ID:
0_userdata.0.Sauger.<Gerätename>.VIS.htmlBeispiel:
0_userdata.0.Sauger.Luna.VIS.htmlKeine geschweiften Klammern verwenden.
Also NICHT:
{0_userdata.0.Sauger.Luna.VIS.html}sondern direkt:
0_userdata.0.Sauger.Luna.VIS.htmlBEDIENUNG
RAUM AUSWÄHLEN
Einfach direkt auf die farbige Raumfläche in der Karte klicken.
Beim Klick wird der zugehörige Adapter-State geschaltet:
ecovacs-deebot.x.map.<mapId>.spotAreas.<id>.markForNextSpotAreaCleaningDer RaumSync übernimmt den Zustand anschließend nach:
0_userdata.0.Sauger.<Name>.Rooms.<id>.selectedEin ausgewählter Raum wird in der VIS stärker hervorgehoben.
MEHRERE RÄUME
Mehrere Raumflächen können nacheinander angeklickt werden.
Die Auswahl wird direkt über die Adapter-States vorgenommen.
FAHRSPUR
Die Fahrspur wird aus deebotPosition erzeugt.
Sie liegt in:
0_userdata.0.Sauger.<Name>.Map.trailPointsBeim Beginn eines neuen Reinigungsvorgangs wird sie zurückgesetzt.
ROBOTERPOSITION
Die Position wird aus:
ecovacs-deebot.x.map.deebotPositionermittelt.
Die VIS verwendet:
Map.pixelXcss Map.pixelYcss Map.rotateCssRAUMFLÄCHEN-DIAGNOSE
Wenn ein Raum nicht gezeichnet wird, prüfen:
0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStatusund:
0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStateund:
0_userdata.0.Sauger.<Name>.Rooms.<id>.polygonPointsWenn geometryStatus meldet:
Keine Raumgeometrie im Adapter gefundendann liefert dieses Modell / diese Adapterversion für diesen Raum keine
verwertbaren Polygon- oder Boundary-Daten.KARTENQUELLEN-DIAGNOSE
Prüfen:
0_userdata.0.Sauger.<Name>.Map.Source.statusund:
0_userdata.0.Sauger.<Name>.Map.Source.statePOSITION PASST NICHT ZUR KARTE
Die Koordinatenumrechnung verwendet pro Sauger:
Map.Config.minX Map.Config.maxX Map.Config.minY Map.Config.maxY Map.Config.imgW Map.Config.imgHStandard:
minX = -250 maxX = 10700 minY = -4350 maxY = 400 imgW = 540 imgH = 231Diese Werte können pro Sauger angepasst werden.
Wichtig:
Die Raumflächen-Erkennung versucht selbst zu unterscheiden, ob Raumkoordinaten
bereits Pixelwerte sind oder Weltkoordinaten umgerechnet werden müssen.NEUER SAUGER
Wenn später eine weitere ecovacs-deebot.* Instanz installiert wird:
- Setup v6.0 kurz AN.
- Warten, bis der neue Sauger unter 0_userdata.0.Sauger erscheint.
- Setup wieder AUS.
- Die dauerhaft laufenden Skripte einmal neu starten.
Danach wird der neue Sauger automatisch mit verarbeitet.
MEHRERE SAUGER
Alle dauerhaft laufenden Skripte suchen automatisch nach:
0_userdata.0.Sauger.*.deebotPrefixDadurch wird nicht nur ein einzelner Sauger verarbeitet.
Jeder Sauger besitzt:
- eigene Map-ID
- eigene Räume
- eigene Raumflächen
- eigene Position
- eigene Fahrspur
- eigenes VIS.html
WICHTIGE GRENZEN
Das Paket kann nur Daten verwenden, die der Ecovacs-Adapter für das jeweilige
Modell bereitstellt.Wenn ein Modell:
- keine deebotPosition liefert -> keine Live-Position/Fahrspur
- keine spotAreas liefert -> keine automatische Raumauswahl
- keine Geometrie für spotAreas liefert -> keine gezeichneten Raumflächen
Das Paket versucht diese Funktionen automatisch zu erkennen und ist nicht
auf einen bestimmten Sauger oder Grundriss fest programmiert.Die Buttons muss man selbst erstellen wie hier:

Viel Spass beim ausprobieren !!
- 01_Ecovacs_Universal_Setup_v6.0.js
-
ECOVACS ioBroker UNIVERSAL – KOMPLETTPAKET v6.4
Dieses Paket ist universell aufgebaut.
Es ist NICHT fest auf Namen wie Luna oder Sky programmiert.
Es erkennt alle eingebundenen Instanzen nach dem Muster:ecovacs-deebot.xund legt pro erkanntem Sauger eine eigene Struktur an:
0_userdata.0.Sauger.<Gerätename>Beispiel:
0_userdata.0.Sauger.Luna 0_userdata.0.Sauger.SkyBei einem anderen Benutzer entstehen automatisch dessen eigene Gerätenamen.
ENTHALTENE SKRIPTE- 01_Ecovacs_Universal_Setup_v6.0.js
Aufgabe:
- erkennt alle ecovacs-deebot.* Instanzen
- versucht den Gerätenamen automatisch zu lesen
- erkennt die Map-ID
- erkennt alle spotAreas / Räume
- legt die benötigten 0_userdata-Datenpunkte an
Betrieb:
- EINMAL starten
- danach wieder AUS
Wenn später ein neuer Sauger hinzukommt:
- Setup erneut kurz starten
- danach wieder AUS
-
sucht pro Sauger automatisch nach einer Kartenquelle
-
bevorzugt:
ecovacs-deebot.x.map.<mapId>.map64 -
versucht bei vorhandenem loadMapImage die Karte regelmäßig neu anzufordern
-
schreibt die erkannte Quelle nach:
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
Betrieb:
- dauerhaft AN
Hinweis:
Die aktuelle VIS v6.4 verwendet das Kartenbild nicht mehr als Hintergrund.
Der MapSource kann trotzdem aktiv bleiben, weil er weiterhin universell die
Kartenquelle ermittelt und für Diagnose / spätere Erweiterungen verfügbar hält.Aufgabe:
-
liest pro Sauger:
ecovacs-deebot.x.map.deebotPosition
-
berechnet daraus die Position auf der Karte
-
aktualisiert:
Map.pixelXcss
Map.pixelYcss
Map.rotateCss -
zeichnet eine Fahrspur
-
setzt die Fahrspur bei einem neuen Reinigungsvorgang zurück
-
übernimmt Status und Positionsname, sofern vorhanden
Betrieb:
- dauerhaft AN
Aufgabe:
-
synchronisiert pro Raum:
markForNextSpotAreaCleaning
mit:
0_userdata.0.Sauger.<Name>.Rooms.<id>.selectedDadurch weiß die VIS, ob ein Raum ausgewählt ist.
Betrieb:
- dauerhaft AN
-
durchsucht jeden automatisch erkannten Raum nach Geometriedaten
-
sucht unter anderem nach:
polygon
boundary
boundaries
coordinates
coords
points
vertices
outline
contour
rect
bounds -
wandelt gefundene Raumgeometrien in SVG-Punkte um
-
speichert pro Raum:
Rooms.<id>.geometryState
Rooms.<id>.geometryType
Rooms.<id>.polygonPoints
Rooms.<id>.geometryStatus
Betrieb:
- dauerhaft AN
Wenn ein Sauger keine Raumgeometrie bereitstellt:
- polygonPoints bleibt leer
- die VIS kann dann keine Raumfläche zeichnen
Aufgabe:
- erzeugt die komplette VIS-Darstellung
- dunkler Hintergrund
- automatisch erkannte farbige Raumflächen
- Raumflächen direkt anklickbar
- Fahrspur
- Roboterposition
- KEINE zusätzlichen Raum-Buttons mehr
Betrieb:
- dauerhaft AN
INSTALLATION:
-
In ioBroker unter JavaScript für jede .js-Datei ein eigenes Skript anlegen.
-
Den Inhalt der jeweiligen .js-Datei komplett in das entsprechende
JavaScript-Skript kopieren.
EMPFOHLENE REIHENFOLGE
Schritt 1:
01_Ecovacs_Universal_Setup_v6.0.js
kurz ANWarten, bis die Struktur unter:
0_userdata.0.Saugerangelegt wurde.
Danach:
01 Setup AUSSchritt 2:
Folgende Skripte dauerhaft AN:02_Ecovacs_Universal_MapSource_v6.1.js 03_Ecovacs_Universal_Position_Fahrspur_v6.0.js 04_Ecovacs_Universal_RaumSync_v6.0.js 05_Ecovacs_Universal_Raumflaechen_Detektor_v6.2.js 06_Ecovacs_Universal_VIS_Raumflaechen_v6.4.jsWELCHE SKRIPTE SIND AN / AUS?
01 Setup:
AUS
Nur bei Erstinstallation oder neuem Sauger kurz AN.02 MapSource:
AN03 Position/Fahrspur:
AN04 RaumSync:
AN05 Raumflächen-Detektor:
AN06 VIS:
ANVIS EINRICHTEN
In VIS ein Widget verwenden:
Basic -> String (unescaped)Als Objekt-ID:
0_userdata.0.Sauger.<Gerätename>.VIS.htmlBeispiel:
0_userdata.0.Sauger.Luna.VIS.htmlKeine geschweiften Klammern verwenden.
Also NICHT:
{0_userdata.0.Sauger.Luna.VIS.html}sondern direkt:
0_userdata.0.Sauger.Luna.VIS.htmlBEDIENUNG
RAUM AUSWÄHLEN
Einfach direkt auf die farbige Raumfläche in der Karte klicken.
Beim Klick wird der zugehörige Adapter-State geschaltet:
ecovacs-deebot.x.map.<mapId>.spotAreas.<id>.markForNextSpotAreaCleaningDer RaumSync übernimmt den Zustand anschließend nach:
0_userdata.0.Sauger.<Name>.Rooms.<id>.selectedEin ausgewählter Raum wird in der VIS stärker hervorgehoben.
MEHRERE RÄUME
Mehrere Raumflächen können nacheinander angeklickt werden.
Die Auswahl wird direkt über die Adapter-States vorgenommen.
FAHRSPUR
Die Fahrspur wird aus deebotPosition erzeugt.
Sie liegt in:
0_userdata.0.Sauger.<Name>.Map.trailPointsBeim Beginn eines neuen Reinigungsvorgangs wird sie zurückgesetzt.
ROBOTERPOSITION
Die Position wird aus:
ecovacs-deebot.x.map.deebotPositionermittelt.
Die VIS verwendet:
Map.pixelXcss Map.pixelYcss Map.rotateCssRAUMFLÄCHEN-DIAGNOSE
Wenn ein Raum nicht gezeichnet wird, prüfen:
0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStatusund:
0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStateund:
0_userdata.0.Sauger.<Name>.Rooms.<id>.polygonPointsWenn geometryStatus meldet:
Keine Raumgeometrie im Adapter gefundendann liefert dieses Modell / diese Adapterversion für diesen Raum keine
verwertbaren Polygon- oder Boundary-Daten.KARTENQUELLEN-DIAGNOSE
Prüfen:
0_userdata.0.Sauger.<Name>.Map.Source.statusund:
0_userdata.0.Sauger.<Name>.Map.Source.statePOSITION PASST NICHT ZUR KARTE
Die Koordinatenumrechnung verwendet pro Sauger:
Map.Config.minX Map.Config.maxX Map.Config.minY Map.Config.maxY Map.Config.imgW Map.Config.imgHStandard:
minX = -250 maxX = 10700 minY = -4350 maxY = 400 imgW = 540 imgH = 231Diese Werte können pro Sauger angepasst werden.
Wichtig:
Die Raumflächen-Erkennung versucht selbst zu unterscheiden, ob Raumkoordinaten
bereits Pixelwerte sind oder Weltkoordinaten umgerechnet werden müssen.NEUER SAUGER
Wenn später eine weitere ecovacs-deebot.* Instanz installiert wird:
- Setup v6.0 kurz AN.
- Warten, bis der neue Sauger unter 0_userdata.0.Sauger erscheint.
- Setup wieder AUS.
- Die dauerhaft laufenden Skripte einmal neu starten.
Danach wird der neue Sauger automatisch mit verarbeitet.
MEHRERE SAUGER
Alle dauerhaft laufenden Skripte suchen automatisch nach:
0_userdata.0.Sauger.*.deebotPrefixDadurch wird nicht nur ein einzelner Sauger verarbeitet.
Jeder Sauger besitzt:
- eigene Map-ID
- eigene Räume
- eigene Raumflächen
- eigene Position
- eigene Fahrspur
- eigenes VIS.html
WICHTIGE GRENZEN
Das Paket kann nur Daten verwenden, die der Ecovacs-Adapter für das jeweilige
Modell bereitstellt.Wenn ein Modell:
- keine deebotPosition liefert -> keine Live-Position/Fahrspur
- keine spotAreas liefert -> keine automatische Raumauswahl
- keine Geometrie für spotAreas liefert -> keine gezeichneten Raumflächen
Das Paket versucht diese Funktionen automatisch zu erkennen und ist nicht
auf einen bestimmten Sauger oder Grundriss fest programmiert.Die Buttons muss man selbst erstellen wie hier:

Viel Spass beim ausprobieren !!
@helfi9999
So ganz begreife ich nicht wo ich was ersetzen muss, werden die DP automatisch angelegt? - 01_Ecovacs_Universal_Setup_v6.0.js
-
@helfi9999
So ganz begreife ich nicht wo ich was ersetzen muss, werden die DP automatisch angelegt? -
@helfi9999
So ganz begreife ich nicht wo ich was ersetzen muss, werden die DP automatisch angelegt? -
ECOVACS ioBroker UNIVERSAL – KOMPLETTPAKET v6.4
Dieses Paket ist universell aufgebaut.
Es ist NICHT fest auf Namen wie Luna oder Sky programmiert.
Es erkennt alle eingebundenen Instanzen nach dem Muster:ecovacs-deebot.xund legt pro erkanntem Sauger eine eigene Struktur an:
0_userdata.0.Sauger.<Gerätename>Beispiel:
0_userdata.0.Sauger.Luna 0_userdata.0.Sauger.SkyBei einem anderen Benutzer entstehen automatisch dessen eigene Gerätenamen.
ENTHALTENE SKRIPTE- 01_Ecovacs_Universal_Setup_v6.0.js
Aufgabe:
- erkennt alle ecovacs-deebot.* Instanzen
- versucht den Gerätenamen automatisch zu lesen
- erkennt die Map-ID
- erkennt alle spotAreas / Räume
- legt die benötigten 0_userdata-Datenpunkte an
Betrieb:
- EINMAL starten
- danach wieder AUS
Wenn später ein neuer Sauger hinzukommt:
- Setup erneut kurz starten
- danach wieder AUS
-
sucht pro Sauger automatisch nach einer Kartenquelle
-
bevorzugt:
ecovacs-deebot.x.map.<mapId>.map64 -
versucht bei vorhandenem loadMapImage die Karte regelmäßig neu anzufordern
-
schreibt die erkannte Quelle nach:
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
Betrieb:
- dauerhaft AN
Hinweis:
Die aktuelle VIS v6.4 verwendet das Kartenbild nicht mehr als Hintergrund.
Der MapSource kann trotzdem aktiv bleiben, weil er weiterhin universell die
Kartenquelle ermittelt und für Diagnose / spätere Erweiterungen verfügbar hält.Aufgabe:
-
liest pro Sauger:
ecovacs-deebot.x.map.deebotPosition
-
berechnet daraus die Position auf der Karte
-
aktualisiert:
Map.pixelXcss
Map.pixelYcss
Map.rotateCss -
zeichnet eine Fahrspur
-
setzt die Fahrspur bei einem neuen Reinigungsvorgang zurück
-
übernimmt Status und Positionsname, sofern vorhanden
Betrieb:
- dauerhaft AN
Aufgabe:
-
synchronisiert pro Raum:
markForNextSpotAreaCleaning
mit:
0_userdata.0.Sauger.<Name>.Rooms.<id>.selectedDadurch weiß die VIS, ob ein Raum ausgewählt ist.
Betrieb:
- dauerhaft AN
-
durchsucht jeden automatisch erkannten Raum nach Geometriedaten
-
sucht unter anderem nach:
polygon
boundary
boundaries
coordinates
coords
points
vertices
outline
contour
rect
bounds -
wandelt gefundene Raumgeometrien in SVG-Punkte um
-
speichert pro Raum:
Rooms.<id>.geometryState
Rooms.<id>.geometryType
Rooms.<id>.polygonPoints
Rooms.<id>.geometryStatus
Betrieb:
- dauerhaft AN
Wenn ein Sauger keine Raumgeometrie bereitstellt:
- polygonPoints bleibt leer
- die VIS kann dann keine Raumfläche zeichnen
Aufgabe:
- erzeugt die komplette VIS-Darstellung
- dunkler Hintergrund
- automatisch erkannte farbige Raumflächen
- Raumflächen direkt anklickbar
- Fahrspur
- Roboterposition
- KEINE zusätzlichen Raum-Buttons mehr
Betrieb:
- dauerhaft AN
INSTALLATION:
-
In ioBroker unter JavaScript für jede .js-Datei ein eigenes Skript anlegen.
-
Den Inhalt der jeweiligen .js-Datei komplett in das entsprechende
JavaScript-Skript kopieren.
EMPFOHLENE REIHENFOLGE
Schritt 1:
01_Ecovacs_Universal_Setup_v6.0.js
kurz ANWarten, bis die Struktur unter:
0_userdata.0.Saugerangelegt wurde.
Danach:
01 Setup AUSSchritt 2:
Folgende Skripte dauerhaft AN:02_Ecovacs_Universal_MapSource_v6.1.js 03_Ecovacs_Universal_Position_Fahrspur_v6.0.js 04_Ecovacs_Universal_RaumSync_v6.0.js 05_Ecovacs_Universal_Raumflaechen_Detektor_v6.2.js 06_Ecovacs_Universal_VIS_Raumflaechen_v6.4.jsWELCHE SKRIPTE SIND AN / AUS?
01 Setup:
AUS
Nur bei Erstinstallation oder neuem Sauger kurz AN.02 MapSource:
AN03 Position/Fahrspur:
AN04 RaumSync:
AN05 Raumflächen-Detektor:
AN06 VIS:
ANVIS EINRICHTEN
In VIS ein Widget verwenden:
Basic -> String (unescaped)Als Objekt-ID:
0_userdata.0.Sauger.<Gerätename>.VIS.htmlBeispiel:
0_userdata.0.Sauger.Luna.VIS.htmlKeine geschweiften Klammern verwenden.
Also NICHT:
{0_userdata.0.Sauger.Luna.VIS.html}sondern direkt:
0_userdata.0.Sauger.Luna.VIS.htmlBEDIENUNG
RAUM AUSWÄHLEN
Einfach direkt auf die farbige Raumfläche in der Karte klicken.
Beim Klick wird der zugehörige Adapter-State geschaltet:
ecovacs-deebot.x.map.<mapId>.spotAreas.<id>.markForNextSpotAreaCleaningDer RaumSync übernimmt den Zustand anschließend nach:
0_userdata.0.Sauger.<Name>.Rooms.<id>.selectedEin ausgewählter Raum wird in der VIS stärker hervorgehoben.
MEHRERE RÄUME
Mehrere Raumflächen können nacheinander angeklickt werden.
Die Auswahl wird direkt über die Adapter-States vorgenommen.
FAHRSPUR
Die Fahrspur wird aus deebotPosition erzeugt.
Sie liegt in:
0_userdata.0.Sauger.<Name>.Map.trailPointsBeim Beginn eines neuen Reinigungsvorgangs wird sie zurückgesetzt.
ROBOTERPOSITION
Die Position wird aus:
ecovacs-deebot.x.map.deebotPositionermittelt.
Die VIS verwendet:
Map.pixelXcss Map.pixelYcss Map.rotateCssRAUMFLÄCHEN-DIAGNOSE
Wenn ein Raum nicht gezeichnet wird, prüfen:
0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStatusund:
0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStateund:
0_userdata.0.Sauger.<Name>.Rooms.<id>.polygonPointsWenn geometryStatus meldet:
Keine Raumgeometrie im Adapter gefundendann liefert dieses Modell / diese Adapterversion für diesen Raum keine
verwertbaren Polygon- oder Boundary-Daten.KARTENQUELLEN-DIAGNOSE
Prüfen:
0_userdata.0.Sauger.<Name>.Map.Source.statusund:
0_userdata.0.Sauger.<Name>.Map.Source.statePOSITION PASST NICHT ZUR KARTE
Die Koordinatenumrechnung verwendet pro Sauger:
Map.Config.minX Map.Config.maxX Map.Config.minY Map.Config.maxY Map.Config.imgW Map.Config.imgHStandard:
minX = -250 maxX = 10700 minY = -4350 maxY = 400 imgW = 540 imgH = 231Diese Werte können pro Sauger angepasst werden.
Wichtig:
Die Raumflächen-Erkennung versucht selbst zu unterscheiden, ob Raumkoordinaten
bereits Pixelwerte sind oder Weltkoordinaten umgerechnet werden müssen.NEUER SAUGER
Wenn später eine weitere ecovacs-deebot.* Instanz installiert wird:
- Setup v6.0 kurz AN.
- Warten, bis der neue Sauger unter 0_userdata.0.Sauger erscheint.
- Setup wieder AUS.
- Die dauerhaft laufenden Skripte einmal neu starten.
Danach wird der neue Sauger automatisch mit verarbeitet.
MEHRERE SAUGER
Alle dauerhaft laufenden Skripte suchen automatisch nach:
0_userdata.0.Sauger.*.deebotPrefixDadurch wird nicht nur ein einzelner Sauger verarbeitet.
Jeder Sauger besitzt:
- eigene Map-ID
- eigene Räume
- eigene Raumflächen
- eigene Position
- eigene Fahrspur
- eigenes VIS.html
WICHTIGE GRENZEN
Das Paket kann nur Daten verwenden, die der Ecovacs-Adapter für das jeweilige
Modell bereitstellt.Wenn ein Modell:
- keine deebotPosition liefert -> keine Live-Position/Fahrspur
- keine spotAreas liefert -> keine automatische Raumauswahl
- keine Geometrie für spotAreas liefert -> keine gezeichneten Raumflächen
Das Paket versucht diese Funktionen automatisch zu erkennen und ist nicht
auf einen bestimmten Sauger oder Grundriss fest programmiert.Die Buttons muss man selbst erstellen wie hier:

Viel Spass beim ausprobieren !!
01_Ecovacs_Universal_Setup_v6.0.js
javascript.0 2026-08-28 20:08:38.599 info script.js.Ecovacs.Skript_1: Stopping script javascript.0 2026-08-28 20:08:10.334 info script.js.Ecovacs.Skript_1: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2026-08-28 20:08:10.334 info script.js.Ecovacs.Skript_1: Universal Setup 6.0.0Name: ChepettoBasis: 0_userdata.0.Sauger.ChepettoAdapter: ecovacs-deebot.0Map-ID: 88846xxxxRäume: 50: A1: B2: C3: D4: E javascript.0 2026-08-28 20:08:10.334 warn at script.js.Ecovacs.Skript_1:368:3 javascript.0 2026-08-28 20:08:10.334 warn at script.js.Ecovacs.Skript_1:359:9 javascript.0 2026-08-28 20:08:10.334 warn at setState (C:\SmartHome\node_modules\iobroker.javascript\build\lib\sandbox.js:2240:20) javascript.0 2026-08-28 20:08:10.333 warn State "0_userdata.0.Sauger.Chepetto.lastSetupReport" not found javascript.0 2026-08-28 20:08:10.324 info script.js.Ecovacs.Skript_1: start JavaScript (Javascript/js)EDIT:
javascript.0 2026-08-28 20:17:08.182 info script.js.Ecovacs.Skript_6: registered 14 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2026-08-28 20:17:08.182 info script.js.Ecovacs.Skript_6: Universal VIS Raumflächen v6.4: 1 Sauger geladen. javascript.0 2026-08-28 20:17:08.177 info script.js.Ecovacs.Skript_6: start JavaScript (Javascript/js) javascript.0 2026-08-28 20:16:23.593 info script.js.Ecovacs.Skript_5: registered 5 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions javascript.0 2026-08-28 20:16:23.593 info script.js.Ecovacs.Skript_5: Universal Raumflächen-Detektor v6.2: 1 Sauger geladen. javascript.0 2026-08-28 20:16:23.567 info script.js.Ecovacs.Skript_5: start JavaScript (Javascript/js) javascript.0 2026-08-28 20:15:39.803 info script.js.Ecovacs.Skript_4: registered 5 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2026-08-28 20:15:39.803 info script.js.Ecovacs.Skript_4: Chepetto: Raum-Sync aktiv javascript.0 2026-08-28 20:15:39.794 info script.js.Ecovacs.Skript_4: start JavaScript (Javascript/js) javascript.0 2026-08-28 20:14:46.691 info script.js.Ecovacs.Skript_3: registered 3 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2026-08-28 20:14:46.690 info script.js.Ecovacs.Skript_3: Chepetto: Position/Fahrspur aktiv (ecovacs-deebot.0.map.deebotPosition) javascript.0 2026-08-28 20:14:46.685 info script.js.Ecovacs.Skript_3: start JavaScript (Javascript/js) javascript.0 2026-08-28 20:13:51.524 info script.js.Ecovacs.Skript_2: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions javascript.0 2026-08-28 20:13:51.524 info script.js.Ecovacs.Skript_2: Universal Map Source v6.1: 1 Sauger geladen. javascript.0 2026-08-28 20:13:51.516 info script.js.Ecovacs.Skript_2: start JavaScript (Javascript/js) - 01_Ecovacs_Universal_Setup_v6.0.js
-
Schaut nicht schlecht aus, läuft , Karte wirkt ein wenig abgeschnitten.
Hier die der App und vom Adapter:

Hier die vom Skript:


Edit2:
Dein DP:

-
Schaut nicht schlecht aus, läuft , Karte wirkt ein wenig abgeschnitten.
Hier die der App und vom Adapter:

Hier die vom Skript:


Edit2:
Dein DP:

@sigi234 das abgeschittene hängt damit zusammen das es die Außenkante des Raumes ist wo der Sauger läuft. Das heißt er nimmt die Daten des Saugers. Wenn es keine Verbindung zum nächsten Raum gibt steht da irgendetwas wie z.B. ein Schrank wo der Sauger nicht drunter herfahren kann. Ich weiß noch nicht wie ich dieses ändern kann.
Habe es jetzt meine Skripte getrennt:
https://forum.iobroker.net/post/1352789 -
ECOVACS ioBroker UNIVERSAL – KOMPLETTPAKET v6.4
Dieses Paket ist universell aufgebaut.
Es ist NICHT fest auf Namen wie Luna oder Sky programmiert.
Es erkennt alle eingebundenen Instanzen nach dem Muster:ecovacs-deebot.xund legt pro erkanntem Sauger eine eigene Struktur an:
0_userdata.0.Sauger.<Gerätename>Beispiel:
0_userdata.0.Sauger.Luna 0_userdata.0.Sauger.SkyBei einem anderen Benutzer entstehen automatisch dessen eigene Gerätenamen.
ENTHALTENE SKRIPTE- 01_Ecovacs_Universal_Setup_v6.0.js
Aufgabe:
- erkennt alle ecovacs-deebot.* Instanzen
- versucht den Gerätenamen automatisch zu lesen
- erkennt die Map-ID
- erkennt alle spotAreas / Räume
- legt die benötigten 0_userdata-Datenpunkte an
Betrieb:
- EINMAL starten
- danach wieder AUS
Wenn später ein neuer Sauger hinzukommt:
- Setup erneut kurz starten
- danach wieder AUS
-
sucht pro Sauger automatisch nach einer Kartenquelle
-
bevorzugt:
ecovacs-deebot.x.map.<mapId>.map64 -
versucht bei vorhandenem loadMapImage die Karte regelmäßig neu anzufordern
-
schreibt die erkannte Quelle nach:
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
Betrieb:
- dauerhaft AN
Hinweis:
Die aktuelle VIS v6.4 verwendet das Kartenbild nicht mehr als Hintergrund.
Der MapSource kann trotzdem aktiv bleiben, weil er weiterhin universell die
Kartenquelle ermittelt und für Diagnose / spätere Erweiterungen verfügbar hält.Aufgabe:
-
liest pro Sauger:
ecovacs-deebot.x.map.deebotPosition
-
berechnet daraus die Position auf der Karte
-
aktualisiert:
Map.pixelXcss
Map.pixelYcss
Map.rotateCss -
zeichnet eine Fahrspur
-
setzt die Fahrspur bei einem neuen Reinigungsvorgang zurück
-
übernimmt Status und Positionsname, sofern vorhanden
Betrieb:
- dauerhaft AN
Aufgabe:
-
synchronisiert pro Raum:
markForNextSpotAreaCleaning
mit:
0_userdata.0.Sauger.<Name>.Rooms.<id>.selectedDadurch weiß die VIS, ob ein Raum ausgewählt ist.
Betrieb:
- dauerhaft AN
-
durchsucht jeden automatisch erkannten Raum nach Geometriedaten
-
sucht unter anderem nach:
polygon
boundary
boundaries
coordinates
coords
points
vertices
outline
contour
rect
bounds -
wandelt gefundene Raumgeometrien in SVG-Punkte um
-
speichert pro Raum:
Rooms.<id>.geometryState
Rooms.<id>.geometryType
Rooms.<id>.polygonPoints
Rooms.<id>.geometryStatus
Betrieb:
- dauerhaft AN
Wenn ein Sauger keine Raumgeometrie bereitstellt:
- polygonPoints bleibt leer
- die VIS kann dann keine Raumfläche zeichnen
Aufgabe:
- erzeugt die komplette VIS-Darstellung
- dunkler Hintergrund
- automatisch erkannte farbige Raumflächen
- Raumflächen direkt anklickbar
- Fahrspur
- Roboterposition
- KEINE zusätzlichen Raum-Buttons mehr
Betrieb:
- dauerhaft AN
INSTALLATION:
-
In ioBroker unter JavaScript für jede .js-Datei ein eigenes Skript anlegen.
-
Den Inhalt der jeweiligen .js-Datei komplett in das entsprechende
JavaScript-Skript kopieren.
EMPFOHLENE REIHENFOLGE
Schritt 1:
01_Ecovacs_Universal_Setup_v6.0.js
kurz ANWarten, bis die Struktur unter:
0_userdata.0.Saugerangelegt wurde.
Danach:
01 Setup AUSSchritt 2:
Folgende Skripte dauerhaft AN:02_Ecovacs_Universal_MapSource_v6.1.js 03_Ecovacs_Universal_Position_Fahrspur_v6.0.js 04_Ecovacs_Universal_RaumSync_v6.0.js 05_Ecovacs_Universal_Raumflaechen_Detektor_v6.2.js 06_Ecovacs_Universal_VIS_Raumflaechen_v6.4.jsWELCHE SKRIPTE SIND AN / AUS?
01 Setup:
AUS
Nur bei Erstinstallation oder neuem Sauger kurz AN.02 MapSource:
AN03 Position/Fahrspur:
AN04 RaumSync:
AN05 Raumflächen-Detektor:
AN06 VIS:
ANVIS EINRICHTEN
In VIS ein Widget verwenden:
Basic -> String (unescaped)Als Objekt-ID:
0_userdata.0.Sauger.<Gerätename>.VIS.htmlBeispiel:
0_userdata.0.Sauger.Luna.VIS.htmlKeine geschweiften Klammern verwenden.
Also NICHT:
{0_userdata.0.Sauger.Luna.VIS.html}sondern direkt:
0_userdata.0.Sauger.Luna.VIS.htmlBEDIENUNG
RAUM AUSWÄHLEN
Einfach direkt auf die farbige Raumfläche in der Karte klicken.
Beim Klick wird der zugehörige Adapter-State geschaltet:
ecovacs-deebot.x.map.<mapId>.spotAreas.<id>.markForNextSpotAreaCleaningDer RaumSync übernimmt den Zustand anschließend nach:
0_userdata.0.Sauger.<Name>.Rooms.<id>.selectedEin ausgewählter Raum wird in der VIS stärker hervorgehoben.
MEHRERE RÄUME
Mehrere Raumflächen können nacheinander angeklickt werden.
Die Auswahl wird direkt über die Adapter-States vorgenommen.
FAHRSPUR
Die Fahrspur wird aus deebotPosition erzeugt.
Sie liegt in:
0_userdata.0.Sauger.<Name>.Map.trailPointsBeim Beginn eines neuen Reinigungsvorgangs wird sie zurückgesetzt.
ROBOTERPOSITION
Die Position wird aus:
ecovacs-deebot.x.map.deebotPositionermittelt.
Die VIS verwendet:
Map.pixelXcss Map.pixelYcss Map.rotateCssRAUMFLÄCHEN-DIAGNOSE
Wenn ein Raum nicht gezeichnet wird, prüfen:
0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStatusund:
0_userdata.0.Sauger.<Name>.Rooms.<id>.geometryStateund:
0_userdata.0.Sauger.<Name>.Rooms.<id>.polygonPointsWenn geometryStatus meldet:
Keine Raumgeometrie im Adapter gefundendann liefert dieses Modell / diese Adapterversion für diesen Raum keine
verwertbaren Polygon- oder Boundary-Daten.KARTENQUELLEN-DIAGNOSE
Prüfen:
0_userdata.0.Sauger.<Name>.Map.Source.statusund:
0_userdata.0.Sauger.<Name>.Map.Source.statePOSITION PASST NICHT ZUR KARTE
Die Koordinatenumrechnung verwendet pro Sauger:
Map.Config.minX Map.Config.maxX Map.Config.minY Map.Config.maxY Map.Config.imgW Map.Config.imgHStandard:
minX = -250 maxX = 10700 minY = -4350 maxY = 400 imgW = 540 imgH = 231Diese Werte können pro Sauger angepasst werden.
Wichtig:
Die Raumflächen-Erkennung versucht selbst zu unterscheiden, ob Raumkoordinaten
bereits Pixelwerte sind oder Weltkoordinaten umgerechnet werden müssen.NEUER SAUGER
Wenn später eine weitere ecovacs-deebot.* Instanz installiert wird:
- Setup v6.0 kurz AN.
- Warten, bis der neue Sauger unter 0_userdata.0.Sauger erscheint.
- Setup wieder AUS.
- Die dauerhaft laufenden Skripte einmal neu starten.
Danach wird der neue Sauger automatisch mit verarbeitet.
MEHRERE SAUGER
Alle dauerhaft laufenden Skripte suchen automatisch nach:
0_userdata.0.Sauger.*.deebotPrefixDadurch wird nicht nur ein einzelner Sauger verarbeitet.
Jeder Sauger besitzt:
- eigene Map-ID
- eigene Räume
- eigene Raumflächen
- eigene Position
- eigene Fahrspur
- eigenes VIS.html
WICHTIGE GRENZEN
Das Paket kann nur Daten verwenden, die der Ecovacs-Adapter für das jeweilige
Modell bereitstellt.Wenn ein Modell:
- keine deebotPosition liefert -> keine Live-Position/Fahrspur
- keine spotAreas liefert -> keine automatische Raumauswahl
- keine Geometrie für spotAreas liefert -> keine gezeichneten Raumflächen
Das Paket versucht diese Funktionen automatisch zu erkennen und ist nicht
auf einen bestimmten Sauger oder Grundriss fest programmiert.Die Buttons muss man selbst erstellen wie hier:

Viel Spass beim ausprobieren !!
@mrbungle64 wäre das nicht etwas was man eventuell in deinen Adapter einbauen könnte
https://forum.iobroker.net/post/1352789 - 01_Ecovacs_Universal_Setup_v6.0.js
-
TADO SKRIPT
Hallo zusammen ich habe die Tado Thermostate und verschiedene Fenstersensoren deshalb habe ich ein Skript das automatisch die Thermostate sucht und diese unter 0_userdata.0.Heizung erstellt dort kann man die Sensoren eintragen und div. Einstellungen machen:
und eine Anleitung:
Viel Spass beim ausprobieren
-
Habe die einzelnen Sachen getrennt:
Musikstatus für Alexa und /oder Sonos:
https://forum.iobroker.net/post/1352784Tado mit externen Sensoren:
https://forum.iobroker.net/post/1352786Ecovacs Deebot dynamische Karte mit Fahrspur:
https://forum.iobroker.net/post/1352789
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

