Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Ecovacs Deebot Adapter: Status und Feedback

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Ecovacs Deebot Adapter: Status und Feedback

Geplant Angeheftet Gesperrt Verschoben Entwicklung
deebotecovacsecovacs-deebotecovacs-deebot adaptersaugrobotervacuum
576 Beiträge 36 Kommentatoren 141.6k Aufrufe 31 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ofri2607O ofri2607

    @chris76e ok, ich glaube jetzt verstehe ich etwas besser was du vor hast, vor Allem in Kombination mit deinem Post zuvor:
    @chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:

    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.

    Warum nimmst du als Trigger für das Schreiben deines LastCleaningLogs den StatusDP mit "charging"?
    Ich nehme hier als Trigger für eine Anzeige der letzten Reinigung in der Vis, die Änderung des Datenpunktes "last20Logs" - geht aber mE jeder andere Datenpunkt mit "last...." auch, die kommen bei mir ziemlich zeitgleich herein.
    D.h. jedesmal wenn der neu geschrieben wird, hast du dann auch sicher alle Infos in den "last..." Datenpunkten und brauchst gar nicht auf die Datenpunkte in "current" zurückgreifen.

    Das funktioniert bei mir zur Anzeige "Letzte Reinigung" sehr zuverlässig (die 0 m² sind nur, weil er testweise nur ganz kurz gelaufen ist):
    91743174-2e9d-449c-b8fa-5815bc2ba0d6-image.png

    Chris76eC Online
    Chris76eC Online
    Chris76e
    schrieb am zuletzt editiert von Chris76e
    #383

    @ofri2607 Diese Version funktioniert solange die aktualisierung vor charging kommt. Wenn die erst danach kommt, kommen noch alte Werte zum Beispiel von der Fahrt zum Wartungsplatz.

    Wenn ich das richtig verstehe hat sich ja auch der DP geändert im vergleich zur letzten aufgezeichnent Renigung.
    Bekomme es einfach nicht hin das er auf die aktualisierung während der Reinigung achten soll, egal ob vorher schon auf charging oder danach auf charging steht.

    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;
      //}
    //});
    
    
    ofri2607O 1 Antwort Letzte Antwort
    0
    • Chris76eC Chris76e

      @mrbungle64

      dann kann ich direkt die Werte von current erfassen wenn der status auf charging steht, ohne irgendwelche zusätlichen bedinungen einzubauen.

      mrbungle64M Offline
      mrbungle64M Offline
      mrbungle64
      Developer
      schrieb am zuletzt editiert von
      #384

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

      @mrbungle64

      dann kann ich direkt die Werte von current erfassen wenn der status auf charging steht, ohne irgendwelche zusätlichen bedinungen einzubauen.

      Wieso hilft Dir das dabei wenn Du das pro Raum machst?

      Chris76eC 1 Antwort Letzte Antwort
      0
      • mrbungle64M mrbungle64

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

        @mrbungle64

        dann kann ich direkt die Werte von current erfassen wenn der status auf charging steht, ohne irgendwelche zusätlichen bedinungen einzubauen.

        Wieso hilft Dir das dabei wenn Du das pro Raum machst?

        Chris76eC Online
        Chris76eC Online
        Chris76e
        schrieb am zuletzt editiert von
        #385

        @mrbungle64

        Weil ich nur SpotReinigungen mache.

        1 Antwort Letzte Antwort
        0
        • Chris76eC Chris76e

          @ofri2607

          weil wenn der Deebot auf charging steht, ich die gesamte Dauer der Reinigung habe, also auch mit hin und zurückfahren.

          mrbungle64M Offline
          mrbungle64M Offline
          mrbungle64
          Developer
          schrieb am zuletzt editiert von mrbungle64
          #386

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

          @ofri2607

          weil wenn der Deebot auf charging steht, ich die gesamte Dauer der Reinigung habe, also auch mit hin und zurückfahren.

          Ich gebe @ofri2607 da Recht:
          Du solltest auf die Aktualisierung von "last20Logs" triggern. Da solltest du auf jeden Fall die gesamte Dauer der Reinigung haben.

          Chris76eC 1 Antwort Letzte Antwort
          0
          • mrbungle64M mrbungle64

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

            @ofri2607

            weil wenn der Deebot auf charging steht, ich die gesamte Dauer der Reinigung habe, also auch mit hin und zurückfahren.

            Ich gebe @ofri2607 da Recht:
            Du solltest auf die Aktualisierung von "last20Logs" triggern. Da solltest du auf jeden Fall die gesamte Dauer der Reinigung haben.

            Chris76eC Online
            Chris76eC Online
            Chris76e
            schrieb am zuletzt editiert von Chris76e
            #387

            @mrbungle64

            auf welchen ich trigger ist doch egal, die daten kommen ja alle gleichzeitig rein. Und wenn ich die Daten dann schreiben und der Deebot noch 2.35 min für die fahrt zurück braucht habe ich ja immer noch nicht die gesamte Dauer der Reinigung....

            Screenshot 2023-02-27 120414.png

            mrbungle64M 1 Antwort Letzte Antwort
            0
            • Chris76eC Chris76e

              @ofri2607 Diese Version funktioniert solange die aktualisierung vor charging kommt. Wenn die erst danach kommt, kommen noch alte Werte zum Beispiel von der Fahrt zum Wartungsplatz.

              Wenn ich das richtig verstehe hat sich ja auch der DP geändert im vergleich zur letzten aufgezeichnent Renigung.
              Bekomme es einfach nicht hin das er auf die aktualisierung während der Reinigung achten soll, egal ob vorher schon auf charging oder danach auf charging steht.

              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;
                //}
              //});
              
              
              ofri2607O Online
              ofri2607O Online
              ofri2607
              schrieb am zuletzt editiert von
              #388

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

              Diese Version funktioniert solange die aktualisierung vor charging kommt. Wenn die erst danach kommt, kommen noch alte Werte zum Beispiel von der Fahrt zum Wartungsplatz.

              Dann würde ich den Trigger auf Beide setzen und die Zeitstempel vom Status, als auch von der Änderung im "last...." Datenpunkt mit einbeziehen.
              Wenn der Zeitstempel von der Änderung im "last..." Datenpunkt nach dem Zeitstempel der Statusänderung auf "charging" ist, dann das Log schreiben, sonst auf die Änderung im Status warten und erst dann das Log schreiben.

              Chris76eC 1 Antwort Letzte Antwort
              0
              • ofri2607O ofri2607

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

                Diese Version funktioniert solange die aktualisierung vor charging kommt. Wenn die erst danach kommt, kommen noch alte Werte zum Beispiel von der Fahrt zum Wartungsplatz.

                Dann würde ich den Trigger auf Beide setzen und die Zeitstempel vom Status, als auch von der Änderung im "last...." Datenpunkt mit einbeziehen.
                Wenn der Zeitstempel von der Änderung im "last..." Datenpunkt nach dem Zeitstempel der Statusänderung auf "charging" ist, dann das Log schreiben, sonst auf die Änderung im Status warten und erst dann das Log schreiben.

                Chris76eC Online
                Chris76eC Online
                Chris76e
                schrieb am zuletzt editiert von Chris76e
                #389

                @ofri2607 das habe ich ja, aber aus irgenwelchen gründen funktioniert das nicht wenn die aktualsierung nach charging kommt und der Deebot vorher auf dem Wartungsplatz war.

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

                @ofri2607 Diese Version funktioniert solange die aktualisierung vor charging kommt. Wenn die erst danach kommt, kommen noch alte Werte zum Beispiel von der Fahrt zum Wartungsplatz.
                Wenn ich das richtig verstehe hat sich ja auch der DP geändert im vergleich zur letzten aufgezeichnent Renigung.
                Bekomme es einfach nicht hin das er auf die aktualisierung während der Reinigung achten soll, egal ob vorher schon auf charging oder danach auf charging steht.

                Das ist das Problem im script

                } 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;
                }
                
                ofri2607O 1 Antwort Letzte Antwort
                0
                • Chris76eC Chris76e

                  @mrbungle64

                  auf welchen ich trigger ist doch egal, die daten kommen ja alle gleichzeitig rein. Und wenn ich die Daten dann schreiben und der Deebot noch 2.35 min für die fahrt zurück braucht habe ich ja immer noch nicht die gesamte Dauer der Reinigung....

                  Screenshot 2023-02-27 120414.png

                  mrbungle64M Offline
                  mrbungle64M Offline
                  mrbungle64
                  Developer
                  schrieb am zuletzt editiert von
                  #390

                  @chris76e

                  Und wenn ich die Daten dann schreiben und der Deebot noch 2.35 min für die fahrt zurück braucht habe ich ja immer noch nicht die gesamte Dauer der Reinigung

                  Dein Problem besteht ja nur, weil die Reinigung schon am Wartungspunkt beendet ist (und der eine Wert nicht von der API bereitgestellt wird)...

                  Chris76eC 1 Antwort Letzte Antwort
                  0
                  • mrbungle64M mrbungle64

                    @chris76e

                    Und wenn ich die Daten dann schreiben und der Deebot noch 2.35 min für die fahrt zurück braucht habe ich ja immer noch nicht die gesamte Dauer der Reinigung

                    Dein Problem besteht ja nur, weil die Reinigung schon am Wartungspunkt beendet ist (und der eine Wert nicht von der API bereitgestellt wird)...

                    Chris76eC Online
                    Chris76eC Online
                    Chris76e
                    schrieb am zuletzt editiert von
                    #391

                    @mrbungle64

                    und deswegen will ich das mit dem script berrechen was ja auch funktioniert bis auf denn fall was ich jetzt schon mehrmals gesagt habe

                    mrbungle64M 1 Antwort Letzte Antwort
                    0
                    • Chris76eC Chris76e

                      @mrbungle64

                      und deswegen will ich das mit dem script berrechen was ja auch funktioniert bis auf denn fall was ich jetzt schon mehrmals gesagt habe

                      mrbungle64M Offline
                      mrbungle64M Offline
                      mrbungle64
                      Developer
                      schrieb am zuletzt editiert von mrbungle64
                      #392

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

                      @mrbungle64

                      und deswegen will ich das mit dem script berrechen was ja auch funktioniert bis auf denn fall was ich jetzt schon mehrmals gesagt habe

                      Vom mehrmals sagen lösen sich aber nicht alle Probleme 😉

                      Ich kann jetzt nicht einfach eine bestehende Funktion vom Adapter ändern, weil man vermutet, dass es sich dann bei deinem (nicht mehr unterstützen) Modell dann wie gewünscht verhält.
                      Es gibt keinen Befehl der explizit die Daten für die "current" Werte liefert. Die werden beim clean report mitgeliefert.
                      Ich kann nicht sagen, ob und wann die API bei deinem Modell die Werte von selbst auf 0 setzt. Von daher bin ich mit der Änderung auch aktuell zurückhaltend.

                      Chris76eC 1 Antwort Letzte Antwort
                      0
                      • mrbungle64M mrbungle64

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

                        @mrbungle64

                        und deswegen will ich das mit dem script berrechen was ja auch funktioniert bis auf denn fall was ich jetzt schon mehrmals gesagt habe

                        Vom mehrmals sagen lösen sich aber nicht alle Probleme 😉

                        Ich kann jetzt nicht einfach eine bestehende Funktion vom Adapter ändern, weil man vermutet, dass es sich dann bei deinem (nicht mehr unterstützen) Modell dann wie gewünscht verhält.
                        Es gibt keinen Befehl der explizit die Daten für die "current" Werte liefert. Die werden beim clean report mitgeliefert.
                        Ich kann nicht sagen, ob und wann die API bei deinem Modell die Werte von selbst auf 0 setzt. Von daher bin ich mit der Änderung auch aktuell zurückhaltend.

                        Chris76eC Online
                        Chris76eC Online
                        Chris76e
                        schrieb am zuletzt editiert von
                        #393

                        @mrbungle64 Wenn es nicht geht, dann ist es halt so, ich ja nicht schlimm 😀 .

                        War ja nur die Frage ob es möglich ist oder nicht. Wenn es nicht möglich ist, muss ich halt schauen wie ich das mi dem Script hinbekomme. Das andere wäre halt nur sehr viel einfacher.

                        mrbungle64M 1 Antwort Letzte Antwort
                        0
                        • Chris76eC Chris76e

                          @ofri2607 das habe ich ja, aber aus irgenwelchen gründen funktioniert das nicht wenn die aktualsierung nach charging kommt und der Deebot vorher auf dem Wartungsplatz war.

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

                          @ofri2607 Diese Version funktioniert solange die aktualisierung vor charging kommt. Wenn die erst danach kommt, kommen noch alte Werte zum Beispiel von der Fahrt zum Wartungsplatz.
                          Wenn ich das richtig verstehe hat sich ja auch der DP geändert im vergleich zur letzten aufgezeichnent Renigung.
                          Bekomme es einfach nicht hin das er auf die aktualisierung während der Reinigung achten soll, egal ob vorher schon auf charging oder danach auf charging steht.

                          Das ist das Problem im script

                          } 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;
                          }
                          
                          ofri2607O Online
                          ofri2607O Online
                          ofri2607
                          schrieb am zuletzt editiert von
                          #394

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

                          Das ist das Problem im script

                          Ich bin unterwegs und kann da leider nichts ausprobieren.
                          Aber soweit ich das sehe, triggerst du nur auf den Status, d.h. auch deine Überprüfung mit deiner "function hasStateChanged(id)" auf den Zeitstempel bei "lastCleaningTimestamp" wird nur dann ausgeführt, wenn der Status sich ändert.
                          Das meint ich damit, dass ich den Trigger auf Beide setzten würde:
                          Sinngemäß so in der Art:

                          on({id: ['ecovacs-deebot.0.status.device', 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp'] , change: "gt"}, function(obj){
                          
                          });
                          
                          Chris76eC 1 Antwort Letzte Antwort
                          0
                          • Chris76eC Chris76e

                            @mrbungle64 Wenn es nicht geht, dann ist es halt so, ich ja nicht schlimm 😀 .

                            War ja nur die Frage ob es möglich ist oder nicht. Wenn es nicht möglich ist, muss ich halt schauen wie ich das mi dem Script hinbekomme. Das andere wäre halt nur sehr viel einfacher.

                            mrbungle64M Offline
                            mrbungle64M Offline
                            mrbungle64
                            Developer
                            schrieb am zuletzt editiert von mrbungle64
                            #395

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

                            @mrbungle64 Wenn es nicht geht, dann ist es halt so, ich ja nicht schlimm 😀 .

                            War ja nur die Frage ob es möglich ist oder nicht. Wenn es nicht möglich ist, muss ich halt schauen wie ich das mi dem Script hinbekomme. Das andere wäre halt nur sehr viel einfacher.

                            Ich will ja gar nicht sagen, dass es nicht geht.

                            Ich muss nur bedenken, dass es mehr User gibt als die die gerade aktuell einen Wunsch äußern. Auch muss ich bedenken, dass sich jedes Modell wieder anders verhalten kann.

                            Bis Ende letzten Jahres hatte ich noch einen Deebot 901 im Schlafzimmer in Betrieb - da macht aber der Akku Probleme - daher habe ich den ersetzt und kann daher solche Dinge nicht mehr mit diesem Gerät nachstellen oder testen.

                            Mal abgesehen davon muss ich auch schauen, dass ich mein Zeitkontingent sinnvoll nutze. Und das ist nicht so groß, dass ich alle Wünsche erfüllen kann. Man muss dann schon schauen, ob das nur einen ganz speziellen Fall bedient, oder ob es einen Nutzen dabei gibt, der mehrere User betrifft (und ich es im Optimalfall auch selbst nutzen kann).

                            ofri2607O 1 Antwort Letzte Antwort
                            0
                            • mrbungle64M mrbungle64

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

                              @mrbungle64 Wenn es nicht geht, dann ist es halt so, ich ja nicht schlimm 😀 .

                              War ja nur die Frage ob es möglich ist oder nicht. Wenn es nicht möglich ist, muss ich halt schauen wie ich das mi dem Script hinbekomme. Das andere wäre halt nur sehr viel einfacher.

                              Ich will ja gar nicht sagen, dass es nicht geht.

                              Ich muss nur bedenken, dass es mehr User gibt als die die gerade aktuell einen Wunsch äußern. Auch muss ich bedenken, dass sich jedes Modell wieder anders verhalten kann.

                              Bis Ende letzten Jahres hatte ich noch einen Deebot 901 im Schlafzimmer in Betrieb - da macht aber der Akku Probleme - daher habe ich den ersetzt und kann daher solche Dinge nicht mehr mit diesem Gerät nachstellen oder testen.

                              Mal abgesehen davon muss ich auch schauen, dass ich mein Zeitkontingent sinnvoll nutze. Und das ist nicht so groß, dass ich alle Wünsche erfüllen kann. Man muss dann schon schauen, ob das nur einen ganz speziellen Fall bedient, oder ob es einen Nutzen dabei gibt, der mehrere User betrifft (und ich es im Optimalfall auch selbst nutzen kann).

                              ofri2607O Online
                              ofri2607O Online
                              ofri2607
                              schrieb am zuletzt editiert von
                              #396

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

                              Ich muss nur bedenken, dass es mehr User gibt

                              Für mich wäre es z.B. eher kontraproduktiv, wenn sich das Verhalten in den "current" Datenpunkte ändern würde, denn in in einem Punkt in meinem Script ziele ich genau darauf ab, dass dieser mit Ende der aktuellen Reinigung auf 0 gesetzt wird.

                              mrbungle64M 1 Antwort Letzte Antwort
                              0
                              • ofri2607O ofri2607

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

                                Ich muss nur bedenken, dass es mehr User gibt

                                Für mich wäre es z.B. eher kontraproduktiv, wenn sich das Verhalten in den "current" Datenpunkte ändern würde, denn in in einem Punkt in meinem Script ziele ich genau darauf ab, dass dieser mit Ende der aktuellen Reinigung auf 0 gesetzt wird.

                                mrbungle64M Offline
                                mrbungle64M Offline
                                mrbungle64
                                Developer
                                schrieb am zuletzt editiert von
                                #397

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

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

                                Ich muss nur bedenken, dass es mehr User gibt

                                Für mich wäre es z.B. eher kontraproduktiv, wenn sich das Verhalten in den "current" Datenpunkte ändern würde, denn in in einem Punkt in meinem Script ziele ich genau darauf ab, dass dieser mit Ende der aktuellen Reinigung auf 0 gesetzt wird.

                                Genau so was meine ich, @Chris76e

                                Chris76eC 1 Antwort Letzte Antwort
                                0
                                • mrbungle64M mrbungle64

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

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

                                  Ich muss nur bedenken, dass es mehr User gibt

                                  Für mich wäre es z.B. eher kontraproduktiv, wenn sich das Verhalten in den "current" Datenpunkte ändern würde, denn in in einem Punkt in meinem Script ziele ich genau darauf ab, dass dieser mit Ende der aktuellen Reinigung auf 0 gesetzt wird.

                                  Genau so was meine ich, @Chris76e

                                  Chris76eC Online
                                  Chris76eC Online
                                  Chris76e
                                  schrieb am zuletzt editiert von
                                  #398

                                  @mrbungle64

                                  Alles Gut. 👍 👍 👍
                                  Wie gesagt, ist ja nicht schlimm, nur dann weiß ich jetzt das ich das script irgendwie hinbekommen muss.

                                  1 Antwort Letzte Antwort
                                  0
                                  • ofri2607O ofri2607

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

                                    Das ist das Problem im script

                                    Ich bin unterwegs und kann da leider nichts ausprobieren.
                                    Aber soweit ich das sehe, triggerst du nur auf den Status, d.h. auch deine Überprüfung mit deiner "function hasStateChanged(id)" auf den Zeitstempel bei "lastCleaningTimestamp" wird nur dann ausgeführt, wenn der Status sich ändert.
                                    Das meint ich damit, dass ich den Trigger auf Beide setzten würde:
                                    Sinngemäß so in der Art:

                                    on({id: ['ecovacs-deebot.0.status.device', 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp'] , change: "gt"}, function(obj){
                                    
                                    });
                                    
                                    Chris76eC Online
                                    Chris76eC Online
                                    Chris76e
                                    schrieb am zuletzt editiert von
                                    #399

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

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

                                    Das ist das Problem im script

                                    Ich bin unterwegs und kann da leider nichts ausprobieren.
                                    Aber soweit ich das sehe, triggerst du nur auf den Status, d.h. auch deine Überprüfung mit deiner "function hasStateChanged(id)" auf den Zeitstempel bei "lastCleaningTimestamp" wird nur dann ausgeführt, wenn der Status sich ändert.
                                    Das meint ich damit, dass ich den Trigger auf Beide setzten würde:
                                    Sinngemäß so in der Art:

                                    on({id: ['ecovacs-deebot.0.status.device', 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp'] , change: "gt"}, function(obj){
                                    
                                    });
                                    

                                    Einfach auf change beim ...status.device ist ja auch nicht richtig, bevor charging kommt, kommt ja noch returing.....

                                    ofri2607O 1 Antwort Letzte Antwort
                                    0
                                    • Chris76eC Chris76e

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

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

                                      Das ist das Problem im script

                                      Ich bin unterwegs und kann da leider nichts ausprobieren.
                                      Aber soweit ich das sehe, triggerst du nur auf den Status, d.h. auch deine Überprüfung mit deiner "function hasStateChanged(id)" auf den Zeitstempel bei "lastCleaningTimestamp" wird nur dann ausgeführt, wenn der Status sich ändert.
                                      Das meint ich damit, dass ich den Trigger auf Beide setzten würde:
                                      Sinngemäß so in der Art:

                                      on({id: ['ecovacs-deebot.0.status.device', 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp'] , change: "gt"}, function(obj){
                                      
                                      });
                                      

                                      Einfach auf change beim ...status.device ist ja auch nicht richtig, bevor charging kommt, kommt ja noch returing.....

                                      ofri2607O Online
                                      ofri2607O Online
                                      ofri2607
                                      schrieb am zuletzt editiert von ofri2607
                                      #400

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

                                      Einfach auf change beim ...status.device ist ja auch nicht richtig, bevor charging kommt, kommt ja noch returing.....

                                      Ja klar, da müsstest du dann auch in dem "on.." die Auswertung der .ts und auch den Status getState('ecovacs-deebot.0.status.device').val == 'charging' mit einbauen.
                                      Kann dir leider, wie gesagt, aktuell kein Codebeispiel im Detail zusammenstellen, da ich es nicht testen könnte.
                                      Aber als Idee so ungefähr in der Richtung dann z.B.:

                                      on({id: ['ecovacs-deebot.0.status.device', 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp'] , change: "gt"}, function(obj){
                                          if (getState('ecovacs-deebot.0.status.device').val == 'cleaning' && getState('ecovacs-deebot.0.status.device').ts < getSate('ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp').ts) {
                                      		
                                          };
                                      });
                                      

                                      Ev. brauchst dann noch eine zusätzliche Prüfung, wenn die Aktualisierung von "lastCleaningTimestamp" doch schon vor der Statusänderung zu "cleaning" erfolgt.
                                      Wollte dir damit nur ein paar Gedankenanregungen lieferen.

                                      Chris76eC 1 Antwort Letzte Antwort
                                      1
                                      • ofri2607O ofri2607

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

                                        Einfach auf change beim ...status.device ist ja auch nicht richtig, bevor charging kommt, kommt ja noch returing.....

                                        Ja klar, da müsstest du dann auch in dem "on.." die Auswertung der .ts und auch den Status getState('ecovacs-deebot.0.status.device').val == 'charging' mit einbauen.
                                        Kann dir leider, wie gesagt, aktuell kein Codebeispiel im Detail zusammenstellen, da ich es nicht testen könnte.
                                        Aber als Idee so ungefähr in der Richtung dann z.B.:

                                        on({id: ['ecovacs-deebot.0.status.device', 'ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp'] , change: "gt"}, function(obj){
                                            if (getState('ecovacs-deebot.0.status.device').val == 'cleaning' && getState('ecovacs-deebot.0.status.device').ts < getSate('ecovacs-deebot.0.cleaninglog.lastCleaningTimestamp').ts) {
                                        		
                                            };
                                        });
                                        

                                        Ev. brauchst dann noch eine zusätzliche Prüfung, wenn die Aktualisierung von "lastCleaningTimestamp" doch schon vor der Statusänderung zu "cleaning" erfolgt.
                                        Wollte dir damit nur ein paar Gedankenanregungen lieferen.

                                        Chris76eC Online
                                        Chris76eC Online
                                        Chris76e
                                        schrieb am zuletzt editiert von
                                        #401

                                        @ofri2607

                                        Danke, werde das mal versuchen.

                                        1 Antwort Letzte Antwort
                                        0
                                        • Z Offline
                                          Z Offline
                                          ZoXx
                                          schrieb am zuletzt editiert von
                                          #402

                                          Guten Morgen,
                                          ich habe die Version 1.4.11 installiert und erhalte immer im Log folgende Fehler:

                                          ecovacs-deebot.0
                                          2023-03-07 10:19:01.782 warn Error message received: Received error message: Request failed with status code 502 for command getPos

                                          ecovacs-deebot.0
                                          2023-03-07 10:14:01.554 warn Error message received: Received error message: Request failed with status code 502 for command getPos

                                          ecovacs-deebot.0
                                          2023-03-07 10:09:03.250 warn Error message received: Received error message: Request failed with status code 502 for command getBreakPoint

                                          ecovacs-deebot.0
                                          2023-03-07 10:00:05.796 warn Error message received: Received error message: Request failed with status code 502 for command getAdvancedMode

                                          ecovacs-deebot.0
                                          2023-03-07 09:54:02.485 warn Error message received: Received error message: Request failed with status code 502 for command getVolume

                                          ecovacs-deebot.0
                                          2023-03-07 09:47:03.026 warn Error message received: Received error message: Request failed with status code 502 for command getAdvancedMode

                                          ecovacs-deebot.0
                                          2023-03-07 09:47:00.423 warn Error message received: Received error message: Request failed with status code 502 for command getBlock

                                          ecovacs-deebot.0
                                          2023-03-07 09:45:00.044 warn Error message received: Received error message: Request failed with status code 502 for command getBlock

                                          ecovacs-deebot.0
                                          2023-03-07 09:43:10.718 warn Error message received: Received error message: Request failed with status code 502 for command getSpeed

                                          Der Deebot ist angeschlossen und läuft auch via Blockly Scripte etc. Ich habe mich Testes Halber auch schon abgemeldet und wieder angemeldet via Instanz, allerdings keine Besserung erfahren.
                                          Kann mir jemand helfen?

                                          mrbungle64M 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          636

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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