NEWS
Ecovacs Deebot Adapter: Status und Feedback
-
(Anmerkung: Der folgende Text wurde am 03.06.2022 gekürzt und danach immer wieder aktualisiert)
Hallo zusammen,
ich möchte hier über den Status des Ecovacs Deebot Adapters berichten
und natürlich auch nach Eurer Meinung fragen, ob es noch "offene Baustellen" gibt - oder ob Ihr soweit alles damit umsetzen könnt, was Ihr Euch so vorgestellt habt ( Bitte dabei aber realistisch bleiben und auch den aktuellen Status berücksichtigen ;) ).
Aktuelle Versionen
Stadium Version Releasedatum Stable 1.4.14 04.02.2024 / 20.02.2024 Beta 1.4.15 16.03.2024 Alpha 1.4.16-alpha.2 09.05.2024
Bekannte (größere) Probleme
- Aktuell gibt es (mehr oder weniger häufig) auf 32-Bit Systemen Probleme mit der Erstellung vom Map Image.
- Das betrifft hauptsächlich Raspberry Pi Systeme, welche i.d.R. noch mit einem 32-Bit Linux betrieben werden. Das wird offensichtlich durch eine System-nahe Komponente von bzw. unter der Canvas Library verursacht - daher kann ich aktuell nichts machen und muss an anderer Stelle gefixt werden. Auch eine ältere Version von Canvas hilft nicht weiter, da der betroffene Teil bei der Installation i.d.R. neu erstellt wird.
- Die Generierung der aktuellen Map ("map.[mapID].loadMapImage" bzw. "map64") funktioniert noch nicht bei den Deebot X1, X2, T20 und T30 Serien
Weitere Informationen:
Möglichkeit für sonstiges Feedback:
Nützliche Links:
Hallo, der Ladestatus ist immer auf charging, obwohl die Batterie bei 100 % ist. Lädt der dauernd? des weiteren gibt es mehrere DP davon.
ecovacs-deebot.0.info.chargestatus
ecovacs-deebot.0.status.device - Aktuell gibt es (mehr oder weniger häufig) auf 32-Bit Systemen Probleme mit der Erstellung vom Map Image.
-
Hallo, der Ladestatus ist immer auf charging, obwohl die Batterie bei 100 % ist. Lädt der dauernd? des weiteren gibt es mehrere DP davon.
ecovacs-deebot.0.info.chargestatus
ecovacs-deebot.0.status.device@sigi234 sagte in Ecovacs Deebot Adapter: Status und Feedback:
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 ...
-
(Anmerkung: Der folgende Text wurde am 03.06.2022 gekürzt und danach immer wieder aktualisiert)
Hallo zusammen,
ich möchte hier über den Status des Ecovacs Deebot Adapters berichten
und natürlich auch nach Eurer Meinung fragen, ob es noch "offene Baustellen" gibt - oder ob Ihr soweit alles damit umsetzen könnt, was Ihr Euch so vorgestellt habt ( Bitte dabei aber realistisch bleiben und auch den aktuellen Status berücksichtigen ;) ).
Aktuelle Versionen
Stadium Version Releasedatum Stable 1.4.14 04.02.2024 / 20.02.2024 Beta 1.4.15 16.03.2024 Alpha 1.4.16-alpha.2 09.05.2024
Bekannte (größere) Probleme
- Aktuell gibt es (mehr oder weniger häufig) auf 32-Bit Systemen Probleme mit der Erstellung vom Map Image.
- Das betrifft hauptsächlich Raspberry Pi Systeme, welche i.d.R. noch mit einem 32-Bit Linux betrieben werden. Das wird offensichtlich durch eine System-nahe Komponente von bzw. unter der Canvas Library verursacht - daher kann ich aktuell nichts machen und muss an anderer Stelle gefixt werden. Auch eine ältere Version von Canvas hilft nicht weiter, da der betroffene Teil bei der Installation i.d.R. neu erstellt wird.
- Die Generierung der aktuellen Map ("map.[mapID].loadMapImage" bzw. "map64") funktioniert noch nicht bei den Deebot X1, X2, T20 und T30 Serien
Weitere Informationen:
Möglichkeit für sonstiges Feedback:
Nützliche Links:
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. - Aktuell gibt es (mehr oder weniger häufig) auf 32-Bit Systemen Probleme mit der Erstellung vom Map Image.
-
@sigi234 sagte in Ecovacs Deebot Adapter: Status und Feedback:
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 ...
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.
-
@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)"
@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 ... -
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.
@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" ... -
@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" ...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; //} //}); -
Ich verstehe leider noch nicht so ganz, was jetzt unabhängig vom
BlocklyScript deine Probleme sind ...
Könntest Du das noch mal zusammenfassen?- Welches geändertes oder fehlerhaftes Verhalten vom Adapter hast du genau festgestellt?
- Was wären jetzt deine Wünsche an den Adapter um das
BlocklyScript umzusetzen? - Welche Fragen hast du speziell zur Fertigstellung des
BlocklyScripts?
-
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.@sigi234 sagte in Ecovacs Deebot Adapter: Status und Feedback:
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? -
Ich verstehe leider noch nicht so ganz, was jetzt unabhängig vom
BlocklyScript deine Probleme sind ...
Könntest Du das noch mal zusammenfassen?- Welches geändertes oder fehlerhaftes Verhalten vom Adapter hast du genau festgestellt?
- Was wären jetzt deine Wünsche an den Adapter um das
BlocklyScript umzusetzen? - Welche Fragen hast du speziell zur Fertigstellung des
BlocklyScripts?
@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:
-
@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:
@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 ;) -
@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 ;)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; } -
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; }@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?
-
@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?
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.......
-
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.......
@chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:
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. -
@chris76e sagte in Ecovacs Deebot Adapter: Status und Feedback:
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.@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
-
@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
@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 ...
-
@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 ...
@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:
-
@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:
@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? :)
-
@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?
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.