Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Ecovacs Deebot Adapter: Status und Feedback

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Ecovacs Deebot Adapter: Status und Feedback

Scheduled Pinned Locked Moved Entwicklung
deebotecovacsecovacs-deebotecovacs-deebot adaptersaugrobotervacuum
576 Posts 36 Posters 152.4k Views 31 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mrbungle64M mrbungle64

    @sigi234 sagte in Ecovacs Deebot Adapter: Status und Feedback:

    @mrbungle64

    Hallo, der Ladestatus ist immer auf charging, obwohl die Batterie bei 100 % ist. Lädt der dauernd?

    Das ist der Status den die API liefert. Grundsätzlich lädt das Gerät schon dauernd bzw immer mal wieder, da das Gerät ja alleine für die Bereitschaft und WiFi ein bisschen Akku verbraucht.

    des weiteren gibt es mehrere DP davon.

    ecovacs-deebot.0.info.chargestatus
    ecovacs-deebot.0.status.device

    "status.device" ist ein kombinierter Status und die anderen unter "Info" haben den Status den die API liefert ...

    Chris76eC Offline
    Chris76eC Offline
    Chris76e
    wrote on last edited by
    #357

    @mrbungle64

    Ist es möglich das du das änderst das die Daten die unter ecovacs-deebot.0.cleaninglog.current stehen erst zurückgesetzt werden wenn eine neue Renigung anfängt und nicht direkt wenn eine beenndet wird? Möchte ein paar Sachen loggen, habe aber Probleme damit das sich die DP von ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp, ecovacs-deebot.0.cleaninglog.lastSquareMeters usw. nicht zuverlässig aktualisieren.

    mrbungle64M 1 Reply Last reply
    0
    • Chris76eC Chris76e

      @mrbungle64 nein nach der Reinigung, die anderen DP werden aktualisiert.

      Wenn ich den DP lösche und den Adapter neustarte steht ganz kurz die Zahl "0" drin, und dann wieder "(null)"

      mrbungle64M Offline
      mrbungle64M Offline
      mrbungle64
      Developer
      wrote on last edited by
      #358

      @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

      @mrbungle64 nein nach der Reinigung, die anderen DP werden aktualisiert.

      Wenn ich den DP lösche und den Adapter neustarte steht ganz kurz die Zahl "0" drin, und dann wieder "(null)"

      Ich habe nachgeschaut - ich habe da zum letzten Mal im Mai 2022 was dran gemacht ...
      Also wenn die anderen Datenpunkte unter "cleaninglog" aktualisiert werden, dann weiß ich gerade nicht was da los sein könnte ...

      1 Reply Last reply
      0
      • Chris76eC Chris76e

        @mrbungle64

        Ist es möglich das du das änderst das die Daten die unter ecovacs-deebot.0.cleaninglog.current stehen erst zurückgesetzt werden wenn eine neue Renigung anfängt und nicht direkt wenn eine beenndet wird? Möchte ein paar Sachen loggen, habe aber Probleme damit das sich die DP von ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp, ecovacs-deebot.0.cleaninglog.lastSquareMeters usw. nicht zuverlässig aktualisieren.

        mrbungle64M Offline
        mrbungle64M Offline
        mrbungle64
        Developer
        wrote on last edited by
        #359

        @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

        habe aber Probleme damit das sich die DP von ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp, ecovacs-deebot.0.cleaninglog.lastSquareMeters usw. nicht zuverlässig aktualisieren.

        Was heißt das, dass die nicht zuverlässig aktualisiert werden?
        Ich dachte es wäre nur "cleaninglog.lastTotalSeconds" ...

        Chris76eC 1 Reply Last reply
        0
        • mrbungle64M mrbungle64

          @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

          habe aber Probleme damit das sich die DP von ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp, ecovacs-deebot.0.cleaninglog.lastSquareMeters usw. nicht zuverlässig aktualisieren.

          Was heißt das, dass die nicht zuverlässig aktualisiert werden?
          Ich dachte es wäre nur "cleaninglog.lastTotalSeconds" ...

          Chris76eC Offline
          Chris76eC Offline
          Chris76e
          wrote on last edited by Chris76e
          #360

          @mrbungle64

          Versuche schon seit gestern 2 Scripte zuschreiben, eines was ein JSON erstellt wenn der deebot zum "Wartungspunkt" fährt (das funktioniert jetzt) und ein das ein JSON für "normale" Reinigung. Problem ist das ich daten von "lastCleaning" dafür brauche die auch unter current.clean stehen. Bekomme es einfach nicht hin das wenn sich die Daten von lastCleaning ändern nach dem der Status von ecovacs-deebot.0.status.device auf "charging" steht zuerfassen.....

          Vieleicht kann ja sonst jemand helfen

          var idTable = '0_userdata.0.JSON.Deebot';
          var idRaum = 'ecovacs-deebot.0.map.lastCleanedSpotArea.spotAreaName';
          var idFlaeche = 'ecovacs-deebot.0.cleaninglog.lastSquareMeters';
          var idDauer = 'ecovacs-deebot.0.cleaninglog.lastTotalTimeString';
          var idAktiv = 'ecovacs-deebot.0.status.device';
          var idWartungsplatz = '0_userdata.0.Deebot.Wartungsplatz';
          var idWartungsplatzEIN = '0_userdata.0.Deebot.WartungsplatzEIN';
          var idCleaningTimestamp = 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp';
          
          var table = [];
          if (getState(idTable).val) table = JSON.parse(getState(idTable).val);
          var obj = {};
          var startDate = new Date();
          var lastExecutionTime = 0;
          var isCleaning = false;
          setState(idWartungsplatzEIN, false, true); // WartungsplatzEIN auf true setzen
          
          on(idAktiv, function (dp) {
            if (getState(idWartungsplatz).val === false && dp.state.val === 'cleaning') {
              obj = {};
              obj.Datum = formatDate(new Date(), 'YYYY-MM-DD ');
              obj.Start = formatDate(new Date(), 'hh:mm');
              startDate = new Date();
              isCleaning = true;
              setState(idWartungsplatzEIN, false, true); // WartungsplatzEIN auf true setzen
              lastExecutionTime = dp.state.ts;
            } else if (getState(idWartungsplatzEIN).val === false && dp.state.val === 'charging' && hasStateChanged(idCleaningTimestamp)) {
              obj.Ende = formatDate(new Date(), 'hh:mm');
              obj.Flaeche = getState(idFlaeche).val;
              obj.Raum = getState(idRaum).val;
              obj.Dauer = getState(idDauer).val;
              obj.Dauergesamt = formatDuration(Math.floor((new Date() - startDate) / 1000));
              table.unshift(obj);
              if (table.length > 100) {
                table.pop();
              }
              setState(idTable, JSON.stringify(table), true);
              lastExecutionTime = dp.state.ts;
              isCleaning = false;
            }
          });
          function hasStateChanged(id) {
            const state = getState(id);
            if(!state) return false; // Die State-Variable existiert nicht
            if(state.ts <= lastExecutionTime || state.val === null) return false; // Der State hat sich seit dem letzten Ausführen des Scripts nicht geändert oder hat keinen Wert
            return true;
          }
          
          function formatDuration(seconds) {
            var minutes = Math.floor(seconds / 60);
            var remainingSeconds = seconds % 60;
            return pad(minutes, 2) + ':' + pad(remainingSeconds, 2);
          }
          
          function pad(number, length) {
            var str = '' + number;
            while (str.length < length) {
              str = '0' + str;
            }
            return str;
          }
          
          
          //on({id: idWartungsplatz, change: "ne"}, function(obj) {
            //if (obj.state.val) {
              // Deebot ist am Wartungsplatz
             // isCleaning = false;
            //}
          //});
          
          
          1 Reply Last reply
          0
          • mrbungle64M Offline
            mrbungle64M Offline
            mrbungle64
            Developer
            wrote on last edited by mrbungle64
            #361

            @chris76e

            Ich verstehe leider noch nicht so ganz, was jetzt unabhängig vom Blockly Script deine Probleme sind ...
            Könntest Du das noch mal zusammenfassen?

            1. Welches geändertes oder fehlerhaftes Verhalten vom Adapter hast du genau festgestellt?
            2. Was wären jetzt deine Wünsche an den Adapter um das Blockly Script umzusetzen?
            3. Welche Fragen hast du speziell zur Fertigstellung des Blockly Scripts?
            Chris76eC 1 Reply Last reply
            0
            • sigi234S sigi234

              @mrbungle64

              Hallo,

              ecovacs-deebot.0
              2023-02-25 11:42:50.180	info	Entering spot area with ID 8 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:42:45.737	info	Loading map image
              
              ecovacs-deebot.0
              2023-02-25 11:42:36.961	info	Loading map image
              
              ecovacs-deebot.0
              2023-02-25 11:42:34.036	info	Entering spot area with ID 6 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:42:21.493	info	Entering spot area with ID 4 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:42:09.026	info	Entering spot area with ID 3 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:41:35.987	info	Entering spot area with ID 2 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:41:22.436	warn	Error: Error: IndexSizeError: The source width is 0.
              
              mrbungle64M Offline
              mrbungle64M Offline
              mrbungle64
              Developer
              wrote on last edited by
              #362

              @sigi234 sagte in Ecovacs Deebot Adapter: Status und Feedback:

              @mrbungle64

              Hallo,

              ecovacs-deebot.0
              2023-02-25 11:42:50.180	info	Entering spot area with ID 8 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:42:45.737	info	Loading map image
              
              ecovacs-deebot.0
              2023-02-25 11:42:36.961	info	Loading map image
              
              ecovacs-deebot.0
              2023-02-25 11:42:34.036	info	Entering spot area with ID 6 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:42:21.493	info	Entering spot area with ID 4 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:42:09.026	info	Entering spot area with ID 3 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:41:35.987	info	Entering spot area with ID 2 (cleanStatus: spot_area)
              
              ecovacs-deebot.0
              2023-02-25 11:41:22.436	warn	Error: Error: IndexSizeError: The source width is 0.
              

              Ich nehme mal an, dass du die "IndexSizeError: The source width is 0" Warnung meinst ...
              Hast du in dem Zusammenhang ein Fehlverhalten festgestellt?

              sigi234S 1 Reply Last reply
              0
              • mrbungle64M mrbungle64

                @chris76e

                Ich verstehe leider noch nicht so ganz, was jetzt unabhängig vom Blockly Script deine Probleme sind ...
                Könntest Du das noch mal zusammenfassen?

                1. Welches geändertes oder fehlerhaftes Verhalten vom Adapter hast du genau festgestellt?
                2. Was wären jetzt deine Wünsche an den Adapter um das Blockly Script umzusetzen?
                3. Welche Fragen hast du speziell zur Fertigstellung des Blockly Scripts?
                Chris76eC Offline
                Chris76eC Offline
                Chris76e
                wrote on last edited by
                #363

                @mrbungle64 ist ein javascript. Ich möchte mir eine Tabelle erstellen wo, Datum, Start, Ende Fläche, Raum und Dauer gespeichert werden nach jedem reinigungs durchgang. Als bedingung dafür habe ich das wenn der deebot wieder an der Ladestation befindet, also ecovacs-deebot.0.status.device auf "charging" steht. Aber ab und zu kommt es vor das die Daten die ich von lastCleaning brauche noch nicht da sind von der DP auf charging steht. Würden die Daten von current nicht direkt zurückgesetzt werden, könnte ich diese nehmen, sind ja die gleichen die dann und lastCleaning kommen.

                Hoffe du verstehts jetzt was ich meine :thinking_face:

                mrbungle64M 1 Reply Last reply
                0
                • Chris76eC Chris76e

                  @mrbungle64 ist ein javascript. Ich möchte mir eine Tabelle erstellen wo, Datum, Start, Ende Fläche, Raum und Dauer gespeichert werden nach jedem reinigungs durchgang. Als bedingung dafür habe ich das wenn der deebot wieder an der Ladestation befindet, also ecovacs-deebot.0.status.device auf "charging" steht. Aber ab und zu kommt es vor das die Daten die ich von lastCleaning brauche noch nicht da sind von der DP auf charging steht. Würden die Daten von current nicht direkt zurückgesetzt werden, könnte ich diese nehmen, sind ja die gleichen die dann und lastCleaning kommen.

                  Hoffe du verstehts jetzt was ich meine :thinking_face:

                  mrbungle64M Offline
                  mrbungle64M Offline
                  mrbungle64
                  Developer
                  wrote on last edited by mrbungle64
                  #364

                  @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                  @mrbungle64 ist ein javascript. Ich möchte mir eine Tabelle erstellen wo, Datum, Start, Ende Fläche, Raum und Dauer gespeichert werden nach jedem reinigungs durchgang. Als bedingung dafür habe ich das wenn der deebot wieder an der Ladestation befindet, also ecovacs-deebot.0.status.device auf "charging" steht. Aber ab und zu kommt es vor das die Daten die ich von lastCleaning brauche noch nicht da sind von der DP auf charging steht. Würden die Daten von current nicht direkt zurückgesetzt werden, könnte ich diese nehmen, sind ja die gleichen die dann und lastCleaning kommen.

                  Hoffe du verstehts jetzt was ich meine :thinking_face:

                  Sorry, ja das ist JavaScript Script (kein Blockly), aber bitte schreib das doch bitte nicht alles in einen großen Absatz bzw. Fließtext.
                  Ich hatte das doch extra schon so aufgeteilt wie ich das gerne hätte ;)

                  Chris76eC 1 Reply Last reply
                  0
                  • mrbungle64M mrbungle64

                    @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                    @mrbungle64 ist ein javascript. Ich möchte mir eine Tabelle erstellen wo, Datum, Start, Ende Fläche, Raum und Dauer gespeichert werden nach jedem reinigungs durchgang. Als bedingung dafür habe ich das wenn der deebot wieder an der Ladestation befindet, also ecovacs-deebot.0.status.device auf "charging" steht. Aber ab und zu kommt es vor das die Daten die ich von lastCleaning brauche noch nicht da sind von der DP auf charging steht. Würden die Daten von current nicht direkt zurückgesetzt werden, könnte ich diese nehmen, sind ja die gleichen die dann und lastCleaning kommen.

                    Hoffe du verstehts jetzt was ich meine :thinking_face:

                    Sorry, ja das ist JavaScript Script (kein Blockly), aber bitte schreib das doch bitte nicht alles in einen großen Absatz bzw. Fließtext.
                    Ich hatte das doch extra schon so aufgeteilt wie ich das gerne hätte ;)

                    Chris76eC Offline
                    Chris76eC Offline
                    Chris76e
                    wrote on last edited by Chris76e
                    #365

                    @mrbungle64

                    Sorry, versuche jetzt seit fast 3 Tagen das Script zuschreiben, mal bin ich nah an der Lösung dran, aber dann biege ich wieder ganz falsch ab und bin dann wieder ganz weit weg. Mit meine wunsch zur Änderung wäre das sehr einfach :grin:

                    Welches geändertes oder fehlerhaftest Verhalten vom Adapter hast du genau festgestellt?
                    - das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht
                    - das ist kein fehlverhalten aber die DP unter ecovacs-deebot.0.cleaninglog die mit last anfangen,
                    werden ja Zeitversetzt aktualisiert, da kannst du ja nicht sändern.

                    Was wären jetzt deine Wünsche an den Adapter um das Script umzusetzen?
                    - das die DP unter ecovacs-deebot.0.cleaninglog.current erst dann zurückgesetzt werden,
                    wenn eine neue Reinigung stattfindet und nicht sofort wenn sich der Status von
                    ecovacs-deebot.0.status.device von "cleaning" auf "returing" ändert.

                    Welche Fragen hast du speziell zur Fertigstellung des Scripts?
                    - wie mann es hinbekommt das wenn der DP ecovacs-deebot.0.status.device auf "charing" geändert hat
                    und sich der DP ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp (dient als trigger) aktualisiert hat.
                    Die aktualisierung soll aber während der aktuellen Reinigung passieren werden.

                    Damit bin ich wieder nah dran.....

                    var idTable = '0_userdata.0.JSON.Deebot';
                    var idRaum = 'ecovacs-deebot.0.map.lastCleanedSpotArea.spotAreaName';
                    var idFlaeche = 'ecovacs-deebot.0.cleaninglog.lastSquareMeters';
                    var idDauer = 'ecovacs-deebot.0.cleaninglog.lastTotalTimeString';
                    var idAktiv = 'ecovacs-deebot.0.status.device';
                    var idWartungsplatz = '0_userdata.0.Deebot.Wartungsplatz';
                    var idWartungsplatzEIN = '0_userdata.0.Deebot.WartungsplatzEIN';
                    var idCleaningTimestamp = 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp';
                    var lastCleaningTimestamp = getState(idCleaningTimestamp).val;
                    var table = [];
                    if (getState(idTable).val) table = JSON.parse(getState(idTable).val);
                    var obj = {};
                    var startDate = new Date();
                    var lastExecutionTime = 0;
                    var isCleaning = false;
                    var hasCleaned = false;
                    var hasCharged = false;
                    
                    on({id: idAktiv, change: "ne"}, function (dp) {
                      if (getState(idWartungsplatz).val === false && dp.state.val === 'cleaning') {
                        obj = {};
                        obj.Datum = formatDate(new Date(), 'YYYY-MM-DD ');
                        obj.Start = formatDate(new Date(), 'hh:mm');
                        startDate = new Date();
                        var lastCleaningTimestamp = getState(idCleaningTimestamp).val; // speichere den vorherigen Wert von idCleaningTimestamp
                        isCleaning = true;
                        setState(idWartungsplatzEIN, false, true); // WartungsplatzEIN auf false setzen
                        lastExecutionTime = dp.state.ts;
                      }
                    });
                    on({id: "ecovacs-deebot.0.status.device", val: "charging"}, function (dp) {
                      hasCharged = true;
                      checkWrite();
                    });
                    on({ id: idCleaningTimestamp, change: 'ne' }, function (dp) {
                      if (isCleaning && dp.state.val != lastCleaningTimestamp) { // überprüfe, ob sich idCleaningTimestamp seit der letzten Reinigung geändert hat
                        hasCleaned = true;
                        lastCleaningTimestamp = dp.state.val; // speichere den aktuellen Wert von idCleaningTimestamp als vorherigen Wert für den nächsten Durchlauf
                        checkWrite();
                      }
                    });
                    
                    function checkWrite() {
                      if (isCleaning && hasCleaned && hasCharged && getState(idWartungsplatzEIN).val === false) {
                        obj.Ende = formatDate(new Date(), 'hh:mm');
                        obj.Flaeche = getState(idFlaeche).val;
                        obj.Raum = getState(idRaum).val;
                        obj.Dauer = getState(idDauer).val;
                        obj.Dauergesamt = formatDuration(Math.floor((new Date() - startDate) / 1000));
                        table.unshift(obj);
                        if (table.length > 100) {
                          table.pop();
                        }
                        setState(idTable, JSON.stringify(table), true);
                        isCleaning = false;
                        hasCleaned = false;
                        hasCharged = false;
                      }
                    }
                    function formatDuration(seconds) {
                      var minutes = Math.floor(seconds / 60);
                      var remainingSeconds = seconds % 60;
                      return pad(minutes, 2) + ':' + pad(remainingSeconds, 2);
                    }
                    
                    function pad(number, length) {
                      var str = '' + number;
                      while (str.length < length) {
                        str = '0' + str;
                      }
                      return str;
                    }
                    
                    
                    mrbungle64M 1 Reply Last reply
                    0
                    • Chris76eC Chris76e

                      @mrbungle64

                      Sorry, versuche jetzt seit fast 3 Tagen das Script zuschreiben, mal bin ich nah an der Lösung dran, aber dann biege ich wieder ganz falsch ab und bin dann wieder ganz weit weg. Mit meine wunsch zur Änderung wäre das sehr einfach :grin:

                      Welches geändertes oder fehlerhaftest Verhalten vom Adapter hast du genau festgestellt?
                      - das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht
                      - das ist kein fehlverhalten aber die DP unter ecovacs-deebot.0.cleaninglog die mit last anfangen,
                      werden ja Zeitversetzt aktualisiert, da kannst du ja nicht sändern.

                      Was wären jetzt deine Wünsche an den Adapter um das Script umzusetzen?
                      - das die DP unter ecovacs-deebot.0.cleaninglog.current erst dann zurückgesetzt werden,
                      wenn eine neue Reinigung stattfindet und nicht sofort wenn sich der Status von
                      ecovacs-deebot.0.status.device von "cleaning" auf "returing" ändert.

                      Welche Fragen hast du speziell zur Fertigstellung des Scripts?
                      - wie mann es hinbekommt das wenn der DP ecovacs-deebot.0.status.device auf "charing" geändert hat
                      und sich der DP ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp (dient als trigger) aktualisiert hat.
                      Die aktualisierung soll aber während der aktuellen Reinigung passieren werden.

                      Damit bin ich wieder nah dran.....

                      var idTable = '0_userdata.0.JSON.Deebot';
                      var idRaum = 'ecovacs-deebot.0.map.lastCleanedSpotArea.spotAreaName';
                      var idFlaeche = 'ecovacs-deebot.0.cleaninglog.lastSquareMeters';
                      var idDauer = 'ecovacs-deebot.0.cleaninglog.lastTotalTimeString';
                      var idAktiv = 'ecovacs-deebot.0.status.device';
                      var idWartungsplatz = '0_userdata.0.Deebot.Wartungsplatz';
                      var idWartungsplatzEIN = '0_userdata.0.Deebot.WartungsplatzEIN';
                      var idCleaningTimestamp = 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp';
                      var lastCleaningTimestamp = getState(idCleaningTimestamp).val;
                      var table = [];
                      if (getState(idTable).val) table = JSON.parse(getState(idTable).val);
                      var obj = {};
                      var startDate = new Date();
                      var lastExecutionTime = 0;
                      var isCleaning = false;
                      var hasCleaned = false;
                      var hasCharged = false;
                      
                      on({id: idAktiv, change: "ne"}, function (dp) {
                        if (getState(idWartungsplatz).val === false && dp.state.val === 'cleaning') {
                          obj = {};
                          obj.Datum = formatDate(new Date(), 'YYYY-MM-DD ');
                          obj.Start = formatDate(new Date(), 'hh:mm');
                          startDate = new Date();
                          var lastCleaningTimestamp = getState(idCleaningTimestamp).val; // speichere den vorherigen Wert von idCleaningTimestamp
                          isCleaning = true;
                          setState(idWartungsplatzEIN, false, true); // WartungsplatzEIN auf false setzen
                          lastExecutionTime = dp.state.ts;
                        }
                      });
                      on({id: "ecovacs-deebot.0.status.device", val: "charging"}, function (dp) {
                        hasCharged = true;
                        checkWrite();
                      });
                      on({ id: idCleaningTimestamp, change: 'ne' }, function (dp) {
                        if (isCleaning && dp.state.val != lastCleaningTimestamp) { // überprüfe, ob sich idCleaningTimestamp seit der letzten Reinigung geändert hat
                          hasCleaned = true;
                          lastCleaningTimestamp = dp.state.val; // speichere den aktuellen Wert von idCleaningTimestamp als vorherigen Wert für den nächsten Durchlauf
                          checkWrite();
                        }
                      });
                      
                      function checkWrite() {
                        if (isCleaning && hasCleaned && hasCharged && getState(idWartungsplatzEIN).val === false) {
                          obj.Ende = formatDate(new Date(), 'hh:mm');
                          obj.Flaeche = getState(idFlaeche).val;
                          obj.Raum = getState(idRaum).val;
                          obj.Dauer = getState(idDauer).val;
                          obj.Dauergesamt = formatDuration(Math.floor((new Date() - startDate) / 1000));
                          table.unshift(obj);
                          if (table.length > 100) {
                            table.pop();
                          }
                          setState(idTable, JSON.stringify(table), true);
                          isCleaning = false;
                          hasCleaned = false;
                          hasCharged = false;
                        }
                      }
                      function formatDuration(seconds) {
                        var minutes = Math.floor(seconds / 60);
                        var remainingSeconds = seconds % 60;
                        return pad(minutes, 2) + ':' + pad(remainingSeconds, 2);
                      }
                      
                      function pad(number, length) {
                        var str = '' + number;
                        while (str.length < length) {
                          str = '0' + str;
                        }
                        return str;
                      }
                      
                      
                      mrbungle64M Offline
                      mrbungle64M Offline
                      mrbungle64
                      Developer
                      wrote on last edited by
                      #366

                      @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                      • das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht

                      Bist du dir eigentlich sicher, dass das vorher funktioniert hatte?

                      Chris76eC 2 Replies Last reply
                      0
                      • mrbungle64M mrbungle64

                        @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                        • das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht

                        Bist du dir eigentlich sicher, dass das vorher funktioniert hatte?

                        Chris76eC Offline
                        Chris76eC Offline
                        Chris76e
                        wrote on last edited by Chris76e
                        #367

                        @mrbungle64

                        Nein :sunglasses:

                        Ist mir erst aufgefallen als ich festgestellt habe das ecovacs-deebot.0.control.extended.savedGoToPositionValues auch bei Deebot 901 sehr gut funktioniert.

                        Hatte mich länger nicht mehr ausführlich mit den ganzen DP´s beschäftigt.......

                        mrbungle64M 1 Reply Last reply
                        0
                        • Chris76eC Chris76e

                          @mrbungle64

                          Nein :sunglasses:

                          Ist mir erst aufgefallen als ich festgestellt habe das ecovacs-deebot.0.control.extended.savedGoToPositionValues auch bei Deebot 901 sehr gut funktioniert.

                          Hatte mich länger nicht mehr ausführlich mit den ganzen DP´s beschäftigt.......

                          mrbungle64M Offline
                          mrbungle64M Offline
                          mrbungle64
                          Developer
                          wrote on last edited by
                          #368

                          @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                          @mrbungle64

                          Nein :sunglasses:

                          Ist mir erst aufgefallen als ich festgestellt habe das ecovacs-deebot.0.control.extended.savedGoToPositionValues auch bei Deebot 901 sehr gut funktioniert.

                          Hatte mich länger nicht mehr ausführlich mit den ganzen DP´s beschäftigt.......

                          Dann installier' doch bitte mal die letzte Stable (1.4.11) und schau mal ob der DP einen Wert hat.
                          Von den Datenpunkten her sollte sich eigentlich seit dem nichts mehr relevantes für den Deebot 901 geändert haben.

                          Chris76eC 1 Reply Last reply
                          0
                          • mrbungle64M mrbungle64

                            @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                            @mrbungle64

                            Nein :sunglasses:

                            Ist mir erst aufgefallen als ich festgestellt habe das ecovacs-deebot.0.control.extended.savedGoToPositionValues auch bei Deebot 901 sehr gut funktioniert.

                            Hatte mich länger nicht mehr ausführlich mit den ganzen DP´s beschäftigt.......

                            Dann installier' doch bitte mal die letzte Stable (1.4.11) und schau mal ob der DP einen Wert hat.
                            Von den Datenpunkten her sollte sich eigentlich seit dem nichts mehr relevantes für den Deebot 901 geändert haben.

                            Chris76eC Offline
                            Chris76eC Offline
                            Chris76e
                            wrote on last edited by
                            #369

                            @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                            Dann installier' doch bitte mal die letzte Stable (1.4.11) und schau mal ob der DP einen Wert hat.
                            Von den Datenpunkten her sollte sich eigentlich seit dem nichts mehr relevantes für den Deebot 901 geändert haben.

                            Ist bei der Version auch nicht vorhanden

                            mrbungle64M 1 Reply Last reply
                            0
                            • Chris76eC Chris76e

                              @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                              Dann installier' doch bitte mal die letzte Stable (1.4.11) und schau mal ob der DP einen Wert hat.
                              Von den Datenpunkten her sollte sich eigentlich seit dem nichts mehr relevantes für den Deebot 901 geändert haben.

                              Ist bei der Version auch nicht vorhanden

                              mrbungle64M Offline
                              mrbungle64M Offline
                              mrbungle64
                              Developer
                              wrote on last edited by
                              #370

                              @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                              @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                              Dann installier' doch bitte mal die letzte Stable (1.4.11) und schau mal ob der DP einen Wert hat.
                              Von den Datenpunkten her sollte sich eigentlich seit dem nichts mehr relevantes für den Deebot 901 geändert haben.

                              Ist bei der Version auch nicht vorhanden

                              Dann würde ich sagen, dass die API beim Deebot 901 dazu leider keinen Wert liefert ...

                              Chris76eC 1 Reply Last reply
                              0
                              • mrbungle64M mrbungle64

                                @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                Dann installier' doch bitte mal die letzte Stable (1.4.11) und schau mal ob der DP einen Wert hat.
                                Von den Datenpunkten her sollte sich eigentlich seit dem nichts mehr relevantes für den Deebot 901 geändert haben.

                                Ist bei der Version auch nicht vorhanden

                                Dann würde ich sagen, dass die API beim Deebot 901 dazu leider keinen Wert liefert ...

                                Chris76eC Offline
                                Chris76eC Offline
                                Chris76e
                                wrote on last edited by Chris76e
                                #371

                                @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                Dann würde ich sagen, dass die API beim Deebot 901 dazu leider keinen Wert liefert ...

                                Okay, aber dann würde das ja auch egal sein wenn die DP´s und current erst später zurückgesetzt werden, dann da gibt es den DP :stuck_out_tongue_winking_eye:

                                mrbungle64M 1 Reply Last reply
                                0
                                • Chris76eC Chris76e

                                  @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                  Dann würde ich sagen, dass die API beim Deebot 901 dazu leider keinen Wert liefert ...

                                  Okay, aber dann würde das ja auch egal sein wenn die DP´s und current erst später zurückgesetzt werden, dann da gibt es den DP :stuck_out_tongue_winking_eye:

                                  mrbungle64M Offline
                                  mrbungle64M Offline
                                  mrbungle64
                                  Developer
                                  wrote on last edited by
                                  #372

                                  @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                  @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                  Dann würde ich sagen, dass die API beim Deebot 901 dazu leider keinen Wert liefert ...

                                  Okay, aber dann würde das ja auch egal sein wenn die DP´s und current erst später zurückgesetzt werden, dann da gibt es den DP :stuck_out_tongue_winking_eye:

                                  Auf was ist das bezogen? :)

                                  1 Reply Last reply
                                  0
                                  • mrbungle64M mrbungle64

                                    @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                    • das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht

                                    Bist du dir eigentlich sicher, dass das vorher funktioniert hatte?

                                    Chris76eC Offline
                                    Chris76eC Offline
                                    Chris76e
                                    wrote on last edited by
                                    #373

                                    auf das

                                    @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                    das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht

                                    und das

                                    @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                    Was wären jetzt deine Wünsche an den Adapter um das Script umzusetzen?

                                    • das die DP unter ecovacs-deebot.0.cleaninglog.current erst dann zurückgesetzt werden,
                                      wenn eine neue Reinigung stattfindet und nicht sofort wenn sich der Status von
                                      ecovacs-deebot.0.status.device von "cleaning" auf "returing" ändert.
                                    mrbungle64M 1 Reply Last reply
                                    0
                                    • Chris76eC Chris76e

                                      auf das

                                      @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                      das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht

                                      und das

                                      @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                      Was wären jetzt deine Wünsche an den Adapter um das Script umzusetzen?

                                      • das die DP unter ecovacs-deebot.0.cleaninglog.current erst dann zurückgesetzt werden,
                                        wenn eine neue Reinigung stattfindet und nicht sofort wenn sich der Status von
                                        ecovacs-deebot.0.status.device von "cleaning" auf "returing" ändert.
                                      mrbungle64M Offline
                                      mrbungle64M Offline
                                      mrbungle64
                                      Developer
                                      wrote on last edited by
                                      #374

                                      @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                      auf das

                                      @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                      das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht

                                      und das

                                      @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                      Was wären jetzt deine Wünsche an den Adapter um das Script umzusetzen?

                                      • das die DP unter ecovacs-deebot.0.cleaninglog.current erst dann zurückgesetzt werden,
                                        wenn eine neue Reinigung stattfindet und nicht sofort wenn sich der Status von
                                        ecovacs-deebot.0.status.device von "cleaning" auf "returing" ändert.

                                      Ja, aber ich meine:

                                      • ist es dann "egal", ob dein Wunsch umgesetzt wird?
                                      • oder ist es "egal", weil der Datenpunkt eh keinen Wert hat man den Wunsch erst recht umsetzen kann?

                                      Ich würde gerne Deine Erwartungshaltung an mich verstehen :)

                                      Chris76eC 1 Reply Last reply
                                      0
                                      • mrbungle64M mrbungle64

                                        @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                        auf das

                                        @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                        das der DP ecovacs-deebot.0.cleaninglog.lastTotalSeconds auf (null) steht

                                        und das

                                        @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                        Was wären jetzt deine Wünsche an den Adapter um das Script umzusetzen?

                                        • das die DP unter ecovacs-deebot.0.cleaninglog.current erst dann zurückgesetzt werden,
                                          wenn eine neue Reinigung stattfindet und nicht sofort wenn sich der Status von
                                          ecovacs-deebot.0.status.device von "cleaning" auf "returing" ändert.

                                        Ja, aber ich meine:

                                        • ist es dann "egal", ob dein Wunsch umgesetzt wird?
                                        • oder ist es "egal", weil der Datenpunkt eh keinen Wert hat man den Wunsch erst recht umsetzen kann?

                                        Ich würde gerne Deine Erwartungshaltung an mich verstehen :)

                                        Chris76eC Offline
                                        Chris76eC Offline
                                        Chris76e
                                        wrote on last edited by
                                        #375

                                        @mrbungle64 Wenn das mit den current umgesetzt würde, währe das andere, zumindest für mich nicht mehr wichtig, da ich ja denn da die sekunden habe. :wink:

                                        ofri2607O 1 Reply Last reply
                                        0
                                        • mrbungle64M mrbungle64

                                          @sigi234 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                          @mrbungle64

                                          Hallo,

                                          ecovacs-deebot.0
                                          2023-02-25 11:42:50.180	info	Entering spot area with ID 8 (cleanStatus: spot_area)
                                          
                                          ecovacs-deebot.0
                                          2023-02-25 11:42:45.737	info	Loading map image
                                          
                                          ecovacs-deebot.0
                                          2023-02-25 11:42:36.961	info	Loading map image
                                          
                                          ecovacs-deebot.0
                                          2023-02-25 11:42:34.036	info	Entering spot area with ID 6 (cleanStatus: spot_area)
                                          
                                          ecovacs-deebot.0
                                          2023-02-25 11:42:21.493	info	Entering spot area with ID 4 (cleanStatus: spot_area)
                                          
                                          ecovacs-deebot.0
                                          2023-02-25 11:42:09.026	info	Entering spot area with ID 3 (cleanStatus: spot_area)
                                          
                                          ecovacs-deebot.0
                                          2023-02-25 11:41:35.987	info	Entering spot area with ID 2 (cleanStatus: spot_area)
                                          
                                          ecovacs-deebot.0
                                          2023-02-25 11:41:22.436	warn	Error: Error: IndexSizeError: The source width is 0.
                                          

                                          Ich nehme mal an, dass du die "IndexSizeError: The source width is 0" Warnung meinst ...
                                          Hast du in dem Zusammenhang ein Fehlverhalten festgestellt?

                                          sigi234S Online
                                          sigi234S Online
                                          sigi234
                                          Forum Testing Most Active
                                          wrote on last edited by
                                          #376

                                          @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                          Ich nehme mal an, dass du die "IndexSizeError: The source width is 0" Warnung meinst ...

                                          ja, aber bis jetzt nicht mehr aufgetreten.

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

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          378

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe