Git Product home page Git Product logo

Comments (20)

boriswerner avatar boriswerner commented on September 24, 2024

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.

volkerverkamp avatar volkerverkamp commented on September 24, 2024

Da steht 2x in Klammern, allerdings steht zwei Log-Einträge vorher auch noch 1x

image

Das Blockly dazu sieht so aus:
image

from iobroker.ecovacs-deebot.

mrbungle64 avatar mrbungle64 commented on September 24, 2024

@volkerverkamp

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.

volkerverkamp avatar volkerverkamp commented on September 24, 2024

@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:

image

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.

mrbungle64 avatar mrbungle64 commented on September 24, 2024

@boriswerner

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 avatar mrbungle64 commented on September 24, 2024

@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:

image

@volkerverkamp
Ist das direkt im ecovacs-deebot Adapter?
Also unter "ecovacs-deebot.0.control.customArea"?

from iobroker.ecovacs-deebot.

boriswerner avatar boriswerner commented on September 24, 2024

@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 avatar volkerverkamp commented on September 24, 2024

@volkerverkamp
Ist das direkt im ecovacs-deebot Adapter?
Also unter "ecovacs-deebot.0.control.customArea"?

Ja:
image

from iobroker.ecovacs-deebot.

mrbungle64 avatar mrbungle64 commented on September 24, 2024

@volkerverkamp
Ist das direkt im ecovacs-deebot Adapter?
Also unter "ecovacs-deebot.0.control.customArea"?

Ja:
image

@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.

mrbungle64 avatar mrbungle64 commented on September 24, 2024

@boriswerner

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 avatar volkerverkamp commented on September 24, 2024

@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.

mrbungle64 avatar mrbungle64 commented on September 24, 2024

@volkerverkamp @boriswerner

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.

volkerverkamp avatar volkerverkamp commented on September 24, 2024

Habs gerade getestet, Anzeige im Log ist zwar korrekt, aber der Bot reinigt den Bereich trotzdem nur einmal (mit Firmware v1.7.9):
image

from iobroker.ecovacs-deebot.

mrbungle64 avatar mrbungle64 commented on September 24, 2024

Habs gerade getestet, Anzeige im Log ist zwar korrekt, aber der Bot reinigt den Bereich trotzdem nur einmal (mit Firmware v1.7.9):
image

Hattest Du die Datenpunkte unter "control" mal alle komplett gelöscht?

from iobroker.ecovacs-deebot.

boriswerner avatar boriswerner commented on September 24, 2024

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.

volkerverkamp avatar volkerverkamp commented on September 24, 2024

Habs gerade getestet, Anzeige im Log ist zwar korrekt, aber der Bot reinigt den Bereich trotzdem nur einmal (mit Firmware v1.7.9):
image

Hattest Du die Datenpunkte unter "control" mal alle komplett gelöscht?

Ja, hab ich.

from iobroker.ecovacs-deebot.

boriswerner avatar boriswerner commented on September 24, 2024

@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.

mrbungle64 avatar mrbungle64 commented on September 24, 2024

@boriswerner

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.

boriswerner avatar boriswerner commented on September 24, 2024

@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.

volkerverkamp avatar volkerverkamp commented on September 24, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.