Comments (20)
Stand denn im Log die richtige Anzahl? Da müsste ein Eintrag gewesen sein
start cleaning custom area: x1,y1,x2,y2 (2x)
Stand da 1x oder 2x in Klammern?
from iobroker.ecovacs-deebot.
Da steht 2x in Klammern, allerdings steht zwei Log-Einträge vorher auch noch 1x
Das Blockly dazu sieht so aus:
from iobroker.ecovacs-deebot.
Passiert im Blockly Skript vorher noch was anderes mit "customArea"?
Sieht mir danach aus, als würde das zuerst mit einem ungültigen Wert (wird wohl als true
gewertet) ausgelöst werden, bevor die eigentlich korrekt aussehenden Befehle ausgeführt werden.
from iobroker.ecovacs-deebot.
@mrbungle64
Ja - das könnte das Problem sein, ich habe verschiedene Datenpunkte (true/false) unter "customArea" angelegt, die ich mittels Alexa/iot-Adapter setze und auf die das Blockly Skript triggert:
Ich nutze ioBroker noch nicht so lange und das erschien mir als der sinnvollste Weg, mir war aber nicht wirklich klar, dass der (von außen gesetzte) Wert eines Datenpunktes an den übergeordneten DP "hochgereicht" wird.
from iobroker.ecovacs-deebot.
Wir könnten die Anzahl noch als optionalen Wert am Ende erlauben, so dass man nur den einen Befehl absetzen muss. Was hältst Du davon?
Evtl. sogar unter "info" die Werte für "customArea" (z.B. als "lastCustomArea") und "customArea_cleanings" (z.B. als "lastCustomArea_cleanings") noch mal als read only. Dann wäre "CustomArea_cleanings" unter "control" sogar eigentlich überflüssig.
Beispiel
-3900,3600,-1000,4800 // 1x reinigen, wenn wir control.customArea_cleanings streichen
-3900,3600,-1000,4800[,c] // Wert aus control.customArea_cleanings, wenn wir es behalten
-3900,3600,-1000,4800,1 // 2x reinigen
-3900,3600,-1000,4800,2 // 2x reinigen
from iobroker.ecovacs-deebot.
@mrbungle64
Ja - das könnte das Problem sein, ich habe verschiedene Datenpunkte (true/false) unter "customArea" angelegt, die ich mittels Alexa/iot-Adapter setze und auf die das Blockly Skript triggert:
@volkerverkamp
Ist das direkt im ecovacs-deebot Adapter?
Also unter "ecovacs-deebot.0.control.customArea"?
from iobroker.ecovacs-deebot.
@mrbungle64 klingt gut und macht es einfacher zu bedienen.
Der 950 unterstützt übrigens auch 2 fache Reinigung bei der spotArea. Im Moment ist das in der library aber noch hart auf 1 gesetzt.
from iobroker.ecovacs-deebot.
@volkerverkamp
Ist das direkt im ecovacs-deebot Adapter?
Also unter "ecovacs-deebot.0.control.customArea"?
from iobroker.ecovacs-deebot.
@volkerverkamp
Ist das direkt im ecovacs-deebot Adapter?
Also unter "ecovacs-deebot.0.control.customArea"?
@volkerverkamp
Das ist keine gute Idee und führt u.U. zu solchen Fehlfunktionen.
Dieser Bereich wird vom Adapter erstellt und verwaltet.
Es gibt z.B. unter "0_userdata.0" die Möglichkeit individuelle Datenpunkte zu erstellen.
Du könntest da ggf. im ioBroker Forum mal nachfragen, was für Deine Zwecke am sinnvollsten sein könnte.
Ich würde Dir jetzt empfehlen den Channel 'control' vom ecovacs-deebot Adapter manuell zu löschen - dann werden die notwendigen Datenpunkte beim nächsten Neustart des Adapters neu erstellt.
from iobroker.ecovacs-deebot.
Wir könnten die Anzahl noch als optionalen Wert am Ende erlauben, so dass man nur den einen Befehl absetzen muss.
Ich habe da mal was in der onStateChange()
eingebaut:
case 'customArea':
let cleanings = this.cleanings;
let customAreaValues = state.val.replace(/ /g,'');
// Without number of cleanings
let pattern = /^-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*$/;
if (customAreaValues.split(',').length === 5) {
// Including number of cleanings
pattern = /^-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,[1-2]$/;
cleanings = customAreaValues.split(',')[4];
this.setState('control.customArea_cleanings', cleanings, true);
}
if (pattern.test(customAreaValues)) {
this.vacbot.run(stateName, 'start', customAreaValues, cleanings);
this.log.info('start cleaning custom area: ' + state.val + ' (' + cleanings + 'x)');
}
break;
from iobroker.ecovacs-deebot.
@volkerverkamp
Das ist keine gute Idee und führt u.U. zu solchen Fehlfunktionen.
Dieser Bereich wird vom Adapter erstellt und verwaltet.Es gibt z.B. unter "0_userdata.0" die Möglichkeit individuelle Datenpunkte zu erstellen.
Du könntest da ggf. im ioBroker Forum mal nachfragen, was für Deine Zwecke am sinnvollsten sein könnte.Ich würde Dir jetzt empfehlen den Channel 'control' vom ecovacs-deebot Adapter manuell zu löschen - dann werden die notwendigen Datenpunkte beim nächsten Neustart des Adapters neu erstellt.
Das war mich nicht klar - danke für den Hinweis!
from iobroker.ecovacs-deebot.
Die Anzahl kann nun mit der aktuellen Version von GitHub als optionaler Wert direkt genutzt werden.
Beispiel: -3900,3600,-1000,4800,2
https://github.com/mrbungle64/ioBroker.ecovacs-deebot/wiki/customArea
from iobroker.ecovacs-deebot.
Habs gerade getestet, Anzeige im Log ist zwar korrekt, aber der Bot reinigt den Bereich trotzdem nur einmal (mit Firmware v1.7.9):
from iobroker.ecovacs-deebot.
Habs gerade getestet, Anzeige im Log ist zwar korrekt, aber der Bot reinigt den Bereich trotzdem nur einmal (mit Firmware v1.7.9):
Hattest Du die Datenpunkte unter "control" mal alle komplett gelöscht?
from iobroker.ecovacs-deebot.
Vielleicht übergebe ich aber auch einfach den Parameter falsch in der library. Möchte ich nicht ausschließen und würde ich mir bei Gelegenheit Mal anschauen
from iobroker.ecovacs-deebot.
Habs gerade getestet, Anzeige im Log ist zwar korrekt, aber der Bot reinigt den Bereich trotzdem nur einmal (mit Firmware v1.7.9):
Hattest Du die Datenpunkte unter "control" mal alle komplett gelöscht?
Ja, hab ich.
from iobroker.ecovacs-deebot.
@mrbungle64 @volkerverkamp
Also, ich hab das gerade alles mal mit meinem 950 und der Adapter v0.5.5 durchgespielt.
Der Wert in customArea_cleanings wird bei mir sauber übergeben und er führt auch 2 Reinigungen durch, wenn ich das gesetzt habe und nur die 4 Koordinaten an den customArea Befehl übergebe.
Die neue Syntax (Bsp. -3900,3600,-1000,4800,2) funktioniert bei mir nicht so ganz. Sie führt dazu, dass die customArea_cleanings zwar auf den Wert gesetzt werden im ioBroker, allerdings wird der Wert nicht sauber an die Library übergeben, hier wird immer nur einmal gereinigt, auch egal, was in den customArea_cleanings vorher stand.
Entferne ich den 5ten Wert wieder aus dem customArea Kommando, berücksichtigt er wieder den Wert aus customArea_cleanings.
Fazit: alte Funktion ist voll gegeben, der neue Parameter funktioniert noch nicht wie gewollt.
from iobroker.ecovacs-deebot.
Was steht denn im Log, wenn Du die neue Syntax verwendest?
In beiden Fällen sollte eigentlich das, was mit "(1x)" oder "(2x)" im Log steht an die Library übergeben werden:
const patternWithCleanings = /^-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,[1-2]$/;
const patternWithoutCleanings = /^-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*,-?[0-9]+\.?[0-9]*$/;
if (patternWithCleanings.test(customAreaValues)) {
let cleanings = customAreaValues.split(',')[4];
customAreaValues = customAreaValues.split(',',4).toString();
this.startCustomArea(customAreaValues, cleanings);
this.setState('control.customArea_cleanings', cleanings, true);
} else if (patternWithoutCleanings.test(customAreaValues)) {
this.startCustomArea(customAreaValues, this.cleanings);
}
...
startCustomArea(areaValues, cleanings) {
this.vacbot.run('customArea', 'start', areaValues, cleanings);
this.log.info('start cleaning custom area: ' + areaValues + ' (' + cleanings + 'x)');
}
Vielleicht greift auch das patternWithCleanings
Pattern nicht, bei den Werten mit denen Du es getestet hast ...
from iobroker.ecovacs-deebot.
@volkerverkamp auch das hier bitte Mal mit der neuesten GitHub Version testen. Das müsste jetzt mit beiden Möglichkeiten funktionieren
from iobroker.ecovacs-deebot.
Jup - funktioniert auch (mal abgesehen davon, dass der Deebot seit dem letzten Firmware-Update generell Probleme mit der Spot-/Bereichsreinigung zu haben scheint, auch wenn man diese per App auslöst).
from iobroker.ecovacs-deebot.
Related Issues (20)
- Zu häufige API anfragen vom Adapter HOT 5
- ecovacs-deebot.0.status > status not changing HOT 3
- X2 Steuerung HOT 15
- Video Screenshot HOT 1
- X2: "Benutzerdefinierte Reinigung" und weiteres HOT 52
- Adapter Error undefined is not a valid state value HOT 7
- GotoPosition doesn't work in 1.4.14 HOT 9
- Update stable version in repo from 1.4.13 to 1.4.14 HOT 1
- X2: resume und error HOT 15
- T20 Cleaning Mode Umstellung HOT 1
- Crash durch Authentiation Error? HOT 3
- T20 zusätzliche DP für Airdrying HOT 5
- Update stable version in repo from 1.4.14 to 1.4.15 HOT 1
- X2: Evencodes 1126 HOT 1
- Adapter crashes after update HOT 2
- SSL Verify = False - Use with local bumper server
- Adapter in restart loop HOT 1
- T30 Omni - New Device HOT 3
- Einbindung Goat Rasenmähroboter HOT 2
- Kartenwechsel Deebot T20 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iobroker.ecovacs-deebot.