mrbungle64 / ioBroker.ecovacs-deebot

Control your Ecovacs Deebot and yeedi vacuum cleaner with ioBroker
MIT License
65 stars 11 forks source link

Deebot Ozmo 950 #7

Closed gigasi closed 4 years ago

gigasi commented 4 years ago

Hallo, wird es irgendwann auch mal ein Support für Deebot Ozmo 950 geben?

mrbungle64 commented 4 years ago

Hallo @gigasi,

ja das ist geplant. Ich persönlich habe aber leider keinen Ozmo 950 und dieses Modell kommuniziert teilweise über in anderes Protokoll als meine beiden Deebot Geräte. Ich bereite aber gerade etwas vor, so dass man mich da ein bisschen unterstützen kann die bisher noch nicht funktionierenden Modelle wie den Ozmo 950 ebenfalls lauffähig zu machen.

gigasi commented 4 years ago

Gibt es denn eine SDK api Seite? Vielleicht kann ich behilflich sein

mrbungle64 commented 4 years ago

Hallo @gigasi,

vom Hersteller gibt es leider keine frei zugängliche Doku der API. Die API der verwendeten Library zum Ansteuern der Devices ist hier ein Stück weit beschrieben. Der spezifische Code für u.a. den Ozmo 950 ist hier zu finden. Den habe ich auf Basis von 2 Python Modulen "trocken" entwickelt - also ohne ein entsprechendes Gerät zum Testen zu haben.

Ich würde mich da über Unterstützung natürlich freuen :)

mrbungle64 commented 4 years ago

Die API der verwendeten Library zum Ansteuern der Devices ist hier ein Stück weit beschrieben. Der spezifische Code für u.a. den Ozmo 950 ist hier zu finden.

Hallo @gigasi,

konntest Du schon mal reinschauen? :)

rebel1985 commented 4 years ago

hi, ich habe ein ozmo 900 und wenn du hilfe brauchst könnt ich dir helfen. ich habe die steuerung mit bespoken und alexa adapter momentan gelöst.

mrbungle64 commented 4 years ago

hi, ich habe ein ozmo 900 und wenn du hilfe brauchst könnt ich dir helfen. ich habe die steuerung mit bespoken und alexa adapter momentan gelöst.

Hi @rebel1985, sehr gerne :)

Es wäre cool, wenn du mal die example app ausführen könntest, welche zu der Library gehört:

git clone https://github.com/mrbungle64/ecovacs-deebot.js.git
cd ecovacs-deebot.js
npm install
cd example

email und password in der folgenden Datei anpassen und dann ausführen:

node app2.js

Wäre das möglich, so dass Du mir ein paar Ausgaben schicken oder posten kannst?

Btw: bei 'Failure code 0002' einfach so lange erneut ausführen, bis es funktioniert. Dieser Fehler wird recht oft (gefühlt random) vom Ecovacs Server zurückgegeben ...

rebel1985 commented 4 years ago

pi@raspberrypi:~/ecovacs-deebot.js/example $ node app2.js eu (node:13711) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. { did: '9030e08d-4239-4719-99c5-81b4a4e7e44f', name: 'E0001206219602612311', class: 'y79a7u', resource: 'ai7a', nick: 'DeeBot', company: 'eco-ng', bindTs: 1576692497798 } (node:13711) [DEP0107] DeprecationWarning: tls.convertNPNProtocols() is deprecated. vacbot ready [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable

rebel1985 commented 4 years ago

pi@raspberrypi:~/ecovacs-deebot.js/example $ node app2.js eu (node:19835) [DEP0005] DeprecationWarning: Buffer() is deprecated due to securit y and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. { did: '9030e08d-4239-4719-99c5-81b4a4e7e44f', name: 'E0001206219602612311', class: 'y79a7u', resource: 'ai7a', nick: 'DeeBot', company: 'eco-ng', bindTs: 1576692497798 } (node:19835) [DEP0107] DeprecationWarning: tls.convertNPNProtocols() is deprecat ed. vacbot ready

mrbungle64 commented 4 years ago

Hallo @rebel1985,

vielen Dank - das hat mir schon mal geholfen einen Bug zu fixen :) Ich melde mich dann wieder wenn es weiter gehen kann

boriswerner commented 4 years ago

Hi, ich hab auch einen 950 und bin gerne bereit zu testen.

mrbungle64 commented 4 years ago

Hi @boriswerner,

sehr gerne :)

Anleitung siehe https://github.com/mrbungle64/ioBroker.ecovacs-deebot/issues/7#issuecomment-582109526

mrbungle64 commented 4 years ago

Hallo @rebel1985,

vielen Dank - das hat mir schon mal geholfen einen Bug zu fixen :) Ich melde mich dann wieder wenn es weiter gehen kann

Hi @rebel1985,

ich habe ein paar Anpassungen vorgenommen. Die Library sollte nun zuverlässiger MQTT devices erkennen und damit hoffentlich verwertbares liefern.

rebel1985 commented 4 years ago

Hallo @rebel1985, vielen Dank - das hat mir schon mal geholfen einen Bug zu fixen :) Ich melde mich dann wieder wenn es weiter gehen kann

Hi @rebel1985,

ich habe ein paar Anpassungen vorgenommen. Die Library sollte nun zuverlässiger MQTT devices erkennen und damit hoffentlich verwertbares liefern.

pi@raspberrypi:~/ecovacs-deebot.js/example $ node app2.js eu (node:20020) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. { did: '9030e08d-4239-4719-99c5-81b4a4e7e44f', name: 'E0001206219602612311', class: 'y79a7u', resource: 'ai7a', nick: 'DeeBot', company: 'eco-ng', bindTs: 1576692497798 } (node:20020) [DEP0107] DeprecationWarning: tls.convertNPNProtocols() is deprecated. vacbot ready [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable [EcovacsXMPP] Couldn't reach the vac: [404] recipient-unavailable

mrbungle64 commented 4 years ago

@rebel1985, hast du dir den aktuellen Stand geholt? Das sieht mir noch nach dem alten Code aus.

rebel1985 commented 4 years ago

@rebel1985, hast du dir den aktuellen Stand geholt? Das sieht mir noch nach dem alten Code aus.

mache gerade noch mal ein update und versuche es dann noch mal

git clone https://github.com/mrbungle64/ecovacs-deebot.js.git -> kann er nciht ausführen da schon vorhanden, muss ich da noch was löschen aufm pi ?

pi@raspberrypi:~/ecovacs-deebot.js/example $ node app2.js eu (node:16717) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. { did: '9030e08d-4239-4719-99c5-81b4a4e7e44f', name: 'E0001206219602612311', class: 'y79a7u', resource: 'ai7a', nick: 'DeeBot', company: 'eco-ng', bindTs: 1576692497798 } (node:16717) [DEP0107] DeprecationWarning: tls.convertNPNProtocols() is deprecated. vacbot ready

boriswerner commented 4 years ago

Folgendes kommt bei mir: node app2.js eu (node:25844) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. { did: 'e0bc19bb-8cb1-43e3-8503-e9f810e35d36', name: 'E0001279619603050031', class: 'yna5xi', resource: 'BTKk', nick: 'Deetje', company: 'eco-ng', bindTs: 1578214369902 } vacbot ready

Nach einigen Sekunden dann immer wieder (in Kolonnen) [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500

mrbungle64 commented 4 years ago

@rebel1985, hast du dir den aktuellen Stand geholt? Das sieht mir noch nach dem alten Code aus.

mache gerade noch mal ein update und versuche es dann noch mal

git clone https://github.com/mrbungle64/ecovacs-deebot.js.git -> kann er nciht ausführen da schon vorhanden, muss ich da noch was löschen aufm pi ?

Da die app2.js geändert werden muss und der Konflikt aufgelöst werden müsste, ist es wahrscheinlich das schnellste das Verzeichnis zu löschen und dann wieder git clone auszuführen.

mrbungle64 commented 4 years ago

Folgendes kommt bei mir: node app2.js eu (node:25844) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. { did: 'e0bc19bb-8cb1-43e3-8503-e9f810e35d36', name: 'E0001279619603050031', class: 'yna5xi', resource: 'BTKk', nick: 'Deetje', company: 'eco-ng', bindTs: 1578214369902 } vacbot ready

Nach einigen Sekunden dann immer wieder (in Kolonnen) [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500

@boriswerner, könntest du das mal mit NODE_ENV=development ausführen und den Abschnitt posten wo der Fehlercode 500 auftaucht? Aber bitte aufpassen, da könnte u.a. das Passwort bei der Ausgabe mit dabei sein - das solltest du vorher löschen/ersetzen ;)

boriswerner commented 4 years ago

Hier mal der Teil nach dem "vacbot ready", ich hab mal alles, was irgendwie nach persönlicher Info aussah ersetzt ;-) (Btw, ich hab versucht, das als Code zu formatieren, dann hat's mir aber alle Zeilenumbrüche rausgehauen, daher jetzt "normal" formatiert... wenn es anders geht, gerne Hinweise geben) vacbot ready [VacBot] action: GetCleanState [VacBot] Sending command GetCleanState [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":291}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetCleanState","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [VacBot] action: GetChargeState [VacBot] Sending command GetChargeState [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":292}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetChargeState","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [VacBot] action: GetBatteryState [VacBot] Sending command GetBatteryInfo [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":292}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetBatteryInfo","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [VacBot] action: GetCleanState [VacBot] Sending command GetCleanState [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":291}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetCleanState","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [VacBot] action: GetChargeState [VacBot] Sending command GetChargeState [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":292}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetChargeState","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [VacBot] action: GetBatteryState [VacBot] Sending command GetBatteryInfo [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":292}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetBatteryInfo","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500

mrbungle64 commented 4 years ago

Hier mal der Teil nach dem "vacbot ready", ich hab mal alles, was irgendwie nach persönlicher Info aussah ersetzt ;-) (Btw, ich hab versucht, das als Code zu formatieren, dann hat's mir aber alle Zeilenumbrüche rausgehauen, daher jetzt "normal" formatiert... wenn es anders geht, gerne Hinweise geben) vacbot ready

@boriswerner Vielen Dank - ich schaue mir das heute Abend dann mal an :)

rebel1985 commented 4 years ago

pi@raspberrypi:~/ecovacs-deebot.js/example $ node app2.js eu (node:9209) [DEP0005] DeprecationWarning: Buffer() is deprecated due to securit and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or uffer.from() methods instead. { did: '9030e08d-4239-4719-99c5-81b4a4e7e44f', name: 'E0001206219602612311', class: 'y79a7u', resource: 'ai7a', nick: 'DeeBot', company: 'eco-ng', bindTs: 1576692497798 } [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} vacbot ready [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] failure code: {errno} [xmldom error] invalid doc source @#[line:0,col:undefined] /home/pi/ecovacs-deebot.js/library/ecovacsMQTT.js:259 let command = as_dict['key']; ^

TypeError: Cannot read property 'key' of undefined at EcovacsMQTT._handle_ctl_mqtt (/home/pi/ecovacs-deebot.js/library/ecovacsQTT.js:259:34) at MqttClient.EcovacsMQTT.client.on (/home/pi/ecovacs-deebot.js/library/ecoacsMQTT.js:82:18) at MqttClient.emit (events.js:198:13) at MqttClient._handlePublish (/home/pi/ecovacs-deebot.js/node_modules/mqtt/ib/client.js:1162:12) at MqttClient._handlePacket (/home/pi/ecovacs-deebot.js/node_modules/mqtt/lb/client.js:351:12) at work (/home/pi/ecovacs-deebot.js/node_modules/mqtt/lib/client.js:283:12) at Writable.writable._write (/home/pi/ecovacs-deebot.js/node_modules/mqtt/lb/client.js:294:5) at doWrite (/home/pi/ecovacs-deebot.js/node_modules/readable-stream/lib/_steam_writable.js:428:64) at writeOrBuffer (/home/pi/ecovacs-deebot.js/node_modules/readable-stream/lb/_stream_writable.js:417:5) at Writable.write (/home/pi/ecovacs-deebot.js/node_modules/readable-stream/ib/_stream_writable.js:334:11)

mrbungle64 commented 4 years ago

pi@raspberrypi:~/ecovacs-deebot.js/example $ node app2.js

@rebel1985,

könnest Du das bitte mal folgendermaßen starten

NODE_ENV=dev node app2.js

und mir die Zeile die mit

[EcovacsMQTT] message:

anfängt schicken?

Das können auch mehere Zeilen sein. Am besten wäre es wenn der Bot mal - während das läuft - von der Mobile App aus mal gestartet wird - und auch mal eine Bereichsreinigung gestartet wird etc.

Vorher auch noch mal Verzeichnis löschen und dann wieder git clone ausführen und bitte auch aufpassen, dass da kein Passwort bei der Ausgabe mit dabei ist ;)

rebel1985 commented 4 years ago

save 1.txt save 2.txt Save 3.txt Save 4.txt save 5.txt

habe jetzt mal mehrere fahrten gemacht, aber irgendwie setzt der befehl bei der benutzer reinigung die aufgabe auf reset und bmach da eine raum/bereichsreinigung draus.

rebel1985 commented 4 years ago

[EcovacsMQTT] Connecting as dletsrz9fe3976d4@ecouser to mqtts://mq-eu.ecouser.ne t:8883 [VacBot] action: Clean initCmd [object Object] [VacBot] Sending command Clean [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":364}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"Clean","payload":"<ctl id=\"7352135\" act=\"s\"><clean type=\"auto\ " speed=\"standard\" act=\"s\"/>","payloadType":"x","td":"q","toId":"9030e 08d-4239-4719-99c5-81b4a4e7e44f","toRes":"ai7a","toType":"y79a7u"} [VacBot] action: GetLifeSpan [VacBot] Sending command GetLifeSpan [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":319}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetLifeSpan","payload":"<ctl type=\"Brush\" id=\"9482468\"/>","payl oadType":"x","td":"q","toId":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRes":"ai7 a","toType":"y79a7u"} [VacBot] action: GetLifeSpan [VacBot] Sending command GetLifeSpan [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":324}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetLifeSpan","payload":"<ctl type=\"SideBrush\" id=\"28119609\"/>", "payloadType":"x","td":"q","toId":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRes" :"ai7a","toType":"y79a7u"} [VacBot] action: GetLifeSpan [VacBot] Sending command GetLifeSpan [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":326}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetLifeSpan","payload":"<ctl type=\"DustCaseHeap\" id=\"7108357\"/> ","payloadType":"x","td":"q","toId":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRe s":"ai7a","toType":"y79a7u"} [EcovacsMQTT] call failed with {"ret":"ok","resp":"","id":"qfBU"} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] send_command: failure code: {errno} [EcovacsMQTT] call failed with {"ret":"ok","resp":"","id":"4b1e"} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] send_command: failure code: {errno} [EcovacsMQTT] call failed with {"ret":"ok","resp":"","id":"ZE0G"} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] send_command: failure code: {errno} [EcovacsMQTT] call failed with {"ret":"ok","resp":"","id":"NvVA"} [EcovacsMQTT] failure code: {errno} [EcovacsMQTT] send_command: failure code: {errno} [EcovacsMQTT] client connected [VacBot] Ready event! [VacBot] action: GetBatteryState [VacBot] Sending command GetBatteryInfo [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":292}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetBatteryInfo","payload":"","payloadType":"x","td":"q","toId ":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRes":"ai7a","toType":"y79a7u"} [VacBot] action: GetCleanState [VacBot] Sending command GetCleanState [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":291}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetCleanState","payload":"","payloadType":"x","td":"q","toId" :"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRes":"ai7a","toType":"y79a7u"} [VacBot] action: GetChargeState [VacBot] Sending command GetChargeState [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":292}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetChargeState","payload":"","payloadType":"x","td":"q","toId ":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRes":"ai7a","toType":"y79a7u"} [VacBot] action: GetLifeSpan [VacBot] Sending command GetLifeSpan [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":320}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetLifeSpan","payload":"<ctl type=\"Brush\" id=\"42113622\"/>","pay loadType":"x","td":"q","toId":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRes":"ai 7a","toType":"y79a7u"} [VacBot] action: GetLifeSpan [VacBot] Sending command GetLifeSpan [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":324}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetLifeSpan","payload":"<ctl type=\"SideBrush\" id=\"27986002\"/>", "payloadType":"x","td":"q","toId":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRes" :"ai7a","toType":"y79a7u"} [VacBot] action: GetLifeSpan [VacBot] Sending command GetLifeSpan [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":327}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetLifeSpan","payload":"<ctl type=\"DustCaseHeap\" id=\"94632901\"/ >","payloadType":"x","td":"q","toId":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toR es":"ai7a","toType":"y79a7u"} [VacBot] action: GetWaterLevel [VacBot] Sending command GetWaterPermeability [EcovacsMQTT] c: [object Object] [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/i ot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json"," Content-Length":313}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"afa8bd82","toke n":"tKTij1aMT5iLW9hLfchYnyFky0nuy9pf","userid":"dletsrz9fe3976d4","with":"users" },"cmdName":"GetWaterPermeability","payload":"<ctl id=\"9045214\"/>","payloadTyp e":"x","td":"q","toId":"9030e08d-4239-4719-99c5-81b4a4e7e44f","toRes":"ai7a","to Type":"y79a7u"} vacbot ready [EcovacsMQTT] message: [xmldom error] invalid doc source @#[line:0,col:undefined] [EcovacsMQTT] as_dict undefined /home/pi/ecovacs-deebot.js/library/ecovacsMQTT.js:83 this.end(); ^

TypeError: this.end is not a function at MqttClient.EcovacsMQTT.client.on (/home/pi/ecovacs-deebot.js/library/ecov acsMQTT.js:83:18) at MqttClient.emit (events.js:198:13) at MqttClient._handlePublish (/home/pi/ecovacs-deebot.js/node_modules/mqtt/l ib/client.js:1162:12) at MqttClient._handlePacket (/home/pi/ecovacs-deebot.js/node_modules/mqtt/li b/client.js:351:12) at work (/home/pi/ecovacs-deebot.js/node_modules/mqtt/lib/client.js:283:12) at Writable.writable._write (/home/pi/ecovacs-deebot.js/node_modules/mqtt/li b/client.js:294:5) at doWrite (/home/pi/ecovacs-deebot.js/node_modules/readable-stream/lib/_str eam_writable.js:428:64) at writeOrBuffer (/home/pi/ecovacs-deebot.js/node_modules/readable-stream/li b/_stream_writable.js:417:5) at Writable.write (/home/pi/ecovacs-deebot.js/node_modules/readable-stream/l ib/_stream_writable.js:334:11) at TLSSocket.ondata (_stream_readable.js:710:20)

mrbungle64 commented 4 years ago

@rebel1985, vielen Dank schon mal! Das hilft mir auf jeden Fall weiter :) Da sind ein paar sehr interessante Antworten vom Server dabei

gigasi commented 4 years ago

Hallo ich bin es mal wieder... also ich habe mal alle Befehle durchgetestet playSound geht beim Ozmo 950

gigasi commented 4 years ago

pi@raspberrypi:~/ecovacs-deebot.js/example $ node app2.js eu (node:4250) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. { did: '7c926cec-d4b6-4a33-8e8a-12a559ee4387', name: 'E0001279610058600233', class: 'yna5xi', resource: 'VvgJ', nick: 'DEEBOT950', company: 'eco-ng', bindTs: 1579361596281 } vacbot ready [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 [EcovacsMQTT] failure code: 500 ......

gigasi commented 4 years ago

Habe auch mitbekommen, wenn man denn "nick" mit Leerzeichen hat, bekommt man ein null wert. Sprich mein Roboter hieß erst "Deebot Ozmo 950" -> wurde nicht erkannt, jetzt habe ich ihm Deebot950 genannt und der Name wird erkannt.

mrbungle64 commented 4 years ago

@gigasi, @rebel1985, @boriswerner

Wer möchte darf gerne noch mal mit den aktuellen Quellen testen

NODE_ENV=dev node app2.js

Da sind ein paar möglicherweise wichtige Änderungen dabei :) Vor allem bei dem Deebot Ozmo 900 bin ich recht zuversichtlich

mrbungle64 commented 4 years ago

Habe auch mitbekommen, wenn man denn "nick" mit Leerzeichen hat, bekommt man ein null wert. Sprich mein Roboter hieß erst "Deebot Ozmo 950" -> wurde nicht erkannt, jetzt habe ich ihm Deebot950 genannt und der Name wird erkannt.

Hallo @gigasi, betrifft das den ioBroker Adapter oder auch schon die Library?

gigasi commented 4 years ago

Library selbst, in ioBroker kommt dann "no device 0"

boriswerner commented 4 years ago

Hm, ich bekomme mit der neuen Version nun einen Fehler schon bei der Anmeldung. Nach [EcoVacsAPI] calling main api user/getAuthCode with [...] [EcoVacsAPI] Calling https://eco-de-api.ecovacs.com/v1/private [...] [EcovacsAPI] got {"code":"0002","msg":"接口鉴权失败","time":1581107024497} [EcovacsAPI] Failure code 0002 [EcovacsAPI] Failure code 0002 calling __call_main_api('user/getAuthCode', {...}) Failure in connecting: Failure code 0002

Lt. Google heißt das soviel wie "Schnittstellenauthentifizierung fehlgeschlagen". Zugangsdaten hab ich doppelt überprüft... Ist das bei euch anderen auch so?

mrbungle64 commented 4 years ago

Library selbst, in ioBroker kommt dann "no device 0"

ok ... mein Ozmo 930 heißt 'Deebot Ozmo 930' und das funktioniert. Aber Ecovacs hat da wohl mehrere Varianten - meinen anderen Bot (Deebot Slim 2) kann ich schon in der App gar nicht mit Leerzeichen im Namen benennen ...

mrbungle64 commented 4 years ago

Hm, ich bekomme mit der neuen Version nun einen Fehler schon bei der Anmeldung. Nach [EcoVacsAPI] calling main api user/getAuthCode with [...] [EcoVacsAPI] Calling https://eco-de-api.ecovacs.com/v1/private [...] [EcovacsAPI] got {"code":"0002","msg":"接口鉴权失败","time":1581107024497} [EcovacsAPI] Failure code 0002 [EcovacsAPI] Failure code 0002 calling __call_main_api('user/getAuthCode', {...}) Failure in connecting: Failure code 0002

Lt. Google heißt das soviel wie "Schnittstellenauthentifizierung fehlgeschlagen". Zugangsdaten hab ich doppelt überprüft... Ist das bei euch anderen auch so?

Ja, das hatte ich hier schon mal geschrieben ...

einfach so lange erneut ausführen, bis es funktioniert. Dieser Fehler wird recht oft (gefühlt random) vom Ecovacs Server zurückgegeben.

In ioBroker sieht man das auch im Log - da steht dann 'reconnecting (1) ...'

boriswerner commented 4 years ago

Hatte ich sogar schonmal gelesen... ;-)

Der folgende Abschnitt wiederholt sich dann nach kurzer Zeit wieder: [VacBot] action: GetCleanState [VacBot] Sending command GetCleanState [EcovacsMQTT] c: {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetCleanState","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":291}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetCleanState","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [VacBot] action: GetChargeState [VacBot] Sending command GetChargeState [EcovacsMQTT] c: {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetChargeState","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":292}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetChargeState","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [VacBot] action: GetBatteryState [VacBot] Sending command GetBatteryInfo [EcovacsMQTT] c: {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetBatteryInfo","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [EcovacsMQTT] Calling https://portal-eu.ecouser.net/api/iot/devmanager.do [EcovacsMQTT] Sending POST to {"hostname":"portal-eu.ecouser.net","path":"/api/iot/devmanager.do","method":"POST","headers":{"Content-Type":"application/json","Content-Length":292}} [EcovacsMQTT] Sending {"auth":{"realm":"ecouser.net","resource":"REPLACED_RESOURCE","token":"REPLACED_TOKEN","userid":"REPLACED_USERID","with":"users"},"cmdName":"GetBatteryInfo","payload":"","payloadType":"x","td":"q","toId":"e0bc19bb-8cb1-43e3-8503-e9f810e35d36","toRes":"BTKk","toType":"yna5xi"} [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"} [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500

mrbungle64 commented 4 years ago

Hatte ich sogar schonmal gelesen... ;-)

Der folgende Abschnitt wiederholt sich dann nach kurzer Zeit wieder: [VacBot] action: GetCleanState [VacBot] Sending command GetCleanState ...

Es wäre gut, wenn du in der app2.js die folgende Zeile auskommentieren könntest

vacbot.run('Clean');

und während das dann läuft mal ein paar Funktionen aus der Mobile App heraus starten könntest. Meine Hoffnung ist, dass dann ein paar Ausgaben mit

[EcovacsMQTT] message:

kommen

boriswerner commented 4 years ago

Hm. habe ihn einen kleinen benutzerdefinierten Bereich reinigen lassen, dann die Aufgabe beendet und zurück zur Station geschickt.

Das ist das einzige, welches ich allerdings zeitlich leider nicht ganz zuordnen kann: [EcovacsMQTT] message: {"header":{"pri":1,"tzm":480,"ts":"1581109565560","ver":"0.0.1","fwVer":"1.7.6","hwVer":"0.1.1"},"body":{"data":{"mid":"1307200506","type":"ol","totalWidth":800,"totalHeight":800,"pixel":50,"totalCount":4,"index":0,"startX":0,"startY":0,"width":800,"height":800,"crc":-926711456,"value":"XQAABAAAxAkAAABv/f//o7f/Rz5IFXI5YVG4kijmo4YH+e7kHoLTL8U6PAFLsX7JiopNL6MN2X+m44wjEVPgWRjFdYrid/i2lH8MasDedElk4ulcU7IE2PdEDKtfDW1G6eXDdoi3llestk3haR1v7RO/YyPyJ2foBJzyQC/LFTl8r+JGOTcSOZ6hbDDRy6VCeB568DFppbyWEqPHwzAjC+RJDtvHYBOKAuSFq8U4ZFDGZXlVhMzvhPIQ+gCpfpvgH5K2LIkFvMsVzw0WuI1Kn53PyjrHxMx+RG2bH4ru3lIxPjhRmbHGC57ejp+re80o3TAxc8O/kwvehBkm+gANusuHkUaDTBIiM2aGhXwbIg6Omn7aJb3OEHGwdGW7BnMqhn1hAuTgFu/nFWxEk3U5MW1U+bKNLim/Yvo3QBa/VMXT75s3yHp9nkR/jbPB422CD2CRFRE6vbyF1dRtPZH6F+sM/s1h5CWQ8CZ9Ou5UtDB+YWk5XjMK0+KESySM+DxU8CiBTKBjF6tR1hAPwe36GVh91EOGar3SZgJhZvImF06+VjGtknGropuNqSaMmSdCzfNfFuDtw6aLJezNMsYNPx3jhKrNGysqR5EpHl6TkJMpPDZxD2vgMRZAu12IMjQaFXW7/nNZNlKiDnwn4qkrCR/b1W3H0VntPxCDosT2OeSVYgFpMxg+/xP5HjCuxDNOCMrCRbcNoeXNeBAmJE/Aj4cX16uV/gjaNmRkKEiGXDY6ZNvIlbNLbqvvs1XtZGrcUk/JZfkBItZFKt86QH77NDyQQkoZsnq05X10QV6ZpNBJTWotevZRQcdnCuD2cGX3aZ4vg1Hqz4A2aUXVOFThN8hKI2ZYIUQsL9muycWE+mlM/67Gpan6BLqOoBapOQP6V31tEDJd544MO9Irvacc2NhjWoEzurvu3xcXhCzBtAazfKsFKm1heE72ZLMDoEk9Dd+y56O6ukDoQJdLgyXRI9aCf+Jzg62Itd1muLCphr9SQ5EuVeSv6ggBUaRAYJDM"}}} [EcovacsMQTT] _ctl_to_dict_mqtt topic: undefined [EcovacsMQTT] _ctl_to_dict_mqtt xmlstring: undefined [EcovacsMQTT] Unknown response type for command undefined received: [object Object] [EcovacsMQTT] message: {"header":{"pri":1,"tzm":480,"ts":"1581109565563","ver":"0.0.1","fwVer":"1.7.6","hwVer":"0.1.1"},"body":{"data":{"mid":"1307200506","type":"ol","totalWidth":800,"totalHeight":800,"pixel":50,"totalCount":4,"index":1,"startX":0,"startY":0,"width":800,"height":800,"crc":-926711456,"value":"fGvnK9VhdCGQDwaMZlmyNGFcaO3WW8kzbLM6ehn1U8NXGn5BYzJApTY49rBGit95w86gv6p7jvUNziVadnYo0miApDpyNlj1seioZ3qoux53U0sVB3r/H8NJriW3f/eMFwdX5M5sv8IXrY8oy2pHv2LktRRYEfXVxQmWORmAd4H65LlzJAxCPu/2Fcv8tP1cKyoYCMoeQD0wnL+/cQPvuo9cEOxzOm3YwEDQEJLurvjahHHV8EdsA3L38LXn1nueFY91+qBM+sZqWqI0Sws0BauL+o0kmEjbT3zfGftp++gPEVDhH+bdihmdE/yyRvUZLCczuCr6ENpjkXtdG8oTLAT1b7xHhl61SQ5qP+IxnODYo6Q8QP836PADzRpDbR0lTQkd4Drb/VfnhiM30eGO054Vz2IAfuneNN2Cf16V/dnYTTn7xd+R3V5r2+8UbJA6ngT24JxcWdcFXzRERk6p1/HK2Mzh0ixN9aEOxwhKxrxwSNBYZGQf1mD5RH3449HFQlUWqv2gFQZa5zx2QTwxshtg5yYvPbkKs08VKqfe967gnXgQeg7uJd5CRNKp6Dcvg69zGLKLrqbDbCpTq0n78tnD1/02H8ct/ZzqiP7psbWHXXDZ9ztCMa1G+Fsu5MPSSy6YsShZCxsyytQAozhqoz7/HvW/t3j67XviYmu1276RiZuudvGJeyeJZ5UJyAWQAX/P+rZbhaj2eBMmiyru0IUU/SjIYnFJoazx4toiodtWFmsIFHs8+1c5xnMlavbRf4jIa01jY3SlZRByy2rsyNS3+iNF8IPI8mtiE2oBpAYfCqdpCiBRkQ4eN4QiaRDZpG5EQryMdK5txzdHajadqRWt99bVa8Bhe4hjuNOBoBk/UV32c6mgtiYzk7yj7NRE027k3Wt3D5pDIEJjpYfTjvti8LrE08noaltsc0TJbuSEjCijrqx5QqJYVYufQt/7CHnTyfGM4nRlIMtDBbl5VNfpjsffGAwyV4F02rNqNvJM4gTVzolPciTUnaW7jeRu"}}} [EcovacsMQTT] _ctl_to_dict_mqtt topic: undefined [EcovacsMQTT] _ctl_to_dict_mqtt xmlstring: undefined [EcovacsMQTT] Unknown response type for command undefined received: [object Object] [EcovacsMQTT] message: {"header":{"pri":1,"tzm":480,"ts":"1581109565564","ver":"0.0.1","fwVer":"1.7.6","hwVer":"0.1.1"},"body":{"data":{"mid":"1307200506","type":"ol","totalWidth":800,"totalHeight":800,"pixel":50,"totalCount":4,"index":2,"startX":0,"startY":0,"width":800,"height":800,"crc":-926711456,"value":"Bb+ItjhLWbp+305sh59GD9esRWibiy4KSse6Lf+QLxis/AweDAJNuCzTt92twk+XA7NHPgwA4D19vWhyOaqIScXqFiNZyg7WXbQwz1X5cEjvz8ZfNPsyYgDU2yO0Qu1JyqN1nzt0Cs9EP26qegMyV0RGZkzC+2eMa5YbAT8waR9GodFsrMgfG/SEyNVnyObJa5UDtn+QzZPH9MLS3ho6vz5sjYhoOc2FkXWOVhsyuz9PFEvNcsC0arwAzCEEPaPTA4N0tJ4LC+HUG/s9wUtMdnLZmTX+mlll5mLkoQJ03iKuGhOzDL5Z4wBePrYe1sBWgkopsUuE3JC51DS5yRMoDUmHSyQNKDLfTjQE/XJXnGFIF/cqkGnmdohBoLleq249zoiTob5u7WdhHq18OCzdqE6xxpVSC++mZp6vUO9ATR+sYt6AUaiMJBAsnC1qRZ9nfyjZCHUIXx/+v+7O8at1oeWP6Ln42eOwwqOrmiu8qmT15xRZcm7x7FgGHtgMqcBhGRJ5SF1KwklJFY4w32xSKMTAHNtHDfGKHhj+h2k1JzNmE05z89RgHpN57hRu6t8SeaNNSIKRBmJhxZwcPaB7pQUKBYC3iMl42BevjLpx/RFazbqmyHrp/JR37gBYOrt8s95A4AGtRKIu+VuR4jMTfmKxmXAps/36E5fdafD5gUbITUsMLGEq4cv0AJEnfXtZPbHnfT+sqWMa6U16CV9Jr/WPdAXo0U3gEnGDXMVDDUQyp15epMBXTbTCObbFmIVQx6/+Hf0eqcN/0akxReuujAAHqxlMDvi6RPaMu9NTOX9A/aHcqDj0vxXxn1e4pAJU/uCQ27rwGA1Lr3E62DILMOwZQMaxcCcX3Mhkas6vP1GDyL7YtRSGqWuiGF8fdV4HQozaKOKAAWTrn+Iy9aeEBM25xm3wI3cZsIT6Q4xHE6C/WqI7dBNhuXLnuIiNIAqicNuWhr99QnscWIqLOv5hZFgzYIbEpK4WjNnRKVq3APwlo3avFO+dglBT1mIBZeUt"}}} [EcovacsMQTT] _ctl_to_dict_mqtt topic: undefined [EcovacsMQTT] _ctl_to_dict_mqtt xmlstring: undefined [EcovacsMQTT] Unknown response type for command undefined received: [object Object] [EcovacsMQTT] message: {"header":{"pri":1,"tzm":480,"ts":"1581109565566","ver":"0.0.1","fwVer":"1.7.6","hwVer":"0.1.1"},"body":{"data":{"mid":"1307200506","type":"ol","totalWidth":800,"totalHeight":800,"pixel":50,"totalCount":4,"index":3,"startX":0,"startY":0,"width":800,"height":800,"crc":-926711456,"value":"zhQqVQs2m+WZy12PNM0hZQ3r+KUN8kWoRL02oDp40zncNZmLa0Qv1qldzNVhhA+dNco4yfkyyAbAiVAujHJ9eekmWaD+BlKgDkr9NxaCEtl5S5NdICdF6vTcEuffCPA6eOQNBXvtvljzdAs1+VnK4EwuRCQjXv+/FMlf+I3Snpt6p0vq7Y5H61XVEb/9+/jEk4Rvy+BrEF1LC2iZqKRsX9ENh4eM33CP8f1R/hnwcETObeui8wcNw1QqHY5qBgHgWTKXV9o4SFVWBc5M2WM2NwcZ8c6yDPXTt1drg5qqgFpkldk34nh6qPkFLVZ8IABhqAQmyFwfhJXScUnGUDZ1ezGjy2My7z+8gDaBBft+3Njx6bWyXHhyXazhaRMbePT36oZWNr5TVk5g9ICwn5Hh0vqXyVkAfzGnFiVa933/Y2dTh/zWvTNqM1bvSBRWwI+F84OBwGXEJVKgrczgAA=="}}} [EcovacsMQTT] _ctl_to_dict_mqtt topic: undefined [EcovacsMQTT] _ctl_to_dict_mqtt xmlstring: undefined [EcovacsMQTT] Unknown response type for command undefined received: [object Object]

Ansonsten nur weiterhin die typischen 3 Gets und die dazugehörigen [EcovacsMQTT] failure code: 500 [EcovacsMQTT] send_command: failure code: 500 [EcovacsMQTT] call failed with {"ret":"fail","errno":500,"debug":"wait for response timed out"}

mrbungle64 commented 4 years ago

@gigasi, @boriswerner

Ich befürchte, dass sich der Deebot Ozmo 950 noch mal anders verhält, als z.B. der Ozmo 900 und andere MQTT Devices ... Die liefern nämlich XML an der Stelle wo der Ozmo 950 JSON liefert.

Ist alles lösbar, aber ich muss es halt einbauen und dann schauen wie das aufgebaut ist.

Je mehr Ausgaben ich von

[EcovacsMQTT] message: ...

der verschiedenen Funktionen bekomme (ausgeführt in der Mobile App) desto besser ;) Alles andere als diese Zeilen ([EcovacsMQTT] message: ...) benötige ich jetzt erst mal nicht mehr.

@rebel1985 Wir sollten hier die Sache für den Ozmo 900 fortführen.

gigasi commented 4 years ago

@mrbungle64 hast gelesen? playSound funktioniert beim Ozmo 950

krobipd commented 4 years ago

Schon dieses Script gesehen? Vl könntest ja das benutzen oder in dein Modul integrieren https://github.com/And3rsL/Deebotozmo

mrbungle64 commented 4 years ago

@mrbungle64 hast gelesen? playSound funktioniert beim Ozmo 950

@gigasi, ja hatte ich gelesen und auch einen "thumbs up" emoji hinterlassen :)

PlaySound ist ein Sonderfall, da dieser keine Rückantwort mehr erwartet. Ist aber auf jeden Fall erfreulich - danke für den Hinweis :)

mrbungle64 commented 4 years ago

Schon dieses Script gesehen? Vl könntest ja das benutzen oder in dein Modul integrieren https://github.com/And3rsL/Deebotozmo

Hallo @krobipd, ja hatte ich gestern spät Abends auch entdeckt - schaue ich mir heute mal an. Danke für den Hinweis :)

mrbungle64 commented 4 years ago

@gigasi, @boriswerner, @krobipd

Ich habe jetzt auf Basis von diesem Python Modul (danke an @krobipd) angefangen die Ozmo 950 spezifischen Sachen zu implementieren.

Ihr könnt gerne schon mal mit den aktuellen Quellen der Library testen wenn Ihr möchtet :)

Aber natürlich keine Garantie - ich kann es bei mir ja nur sehr eingeschränkt testen ...

boriswerner commented 4 years ago

Super, vielen Dank schonmal für die Mühe des "blinden" Programmierens ;-) Heute werde ich wohl leider nicht dazu kommen, aber ich versuche morgen mal so viel wie möglich zu testen (und mich auch mal etwas mehr in die Library einzuarbeiten als nur die example-App zu starten um gezielter zu testen)

gigasi commented 4 years ago

Cool 👍 ich kann es heute Abend versuchen 😊

gigasi commented 4 years ago

in ioBroker

host.raspberrypi | 2020-02-08 18:32:27.961 | info | Restart adapter system.adapter.ecovacs-deebot.0 because enabled

host.raspberrypi | 2020-02-08 18:32:27.959 | info | instance system.adapter.ecovacs-deebot.0 terminated with code 0 (NO_ERROR)

host.raspberrypi | 2020-02-08 18:32:27.959 | error | Caught by controller[2]: at Writable.write (/opt/iobroker/node_modules/readable-stream/lib/_stream_writable.js:334:11)

host.raspberrypi | 2020-02-08 18:32:27.958 | error | Caught by controller[2]: at writeOrBuffer (/opt/iobroker/node_modules/readable-stream/lib/_stream_writable.js:417:5)

host.raspberrypi | 2020-02-08 18:32:27.958 | error | Caught by controller[2]: at doWrite (/opt/iobroker/node_modules/readable-stream/lib/_stream_writable.js:428:64)

host.raspberrypi | 2020-02-08 18:32:27.958 | error | Caught by controller[2]: at Writable.writable._write (/opt/iobroker/node_modules/mqtt/lib/client.js:294:5)

host.raspberrypi | 2020-02-08 18:32:27.957 | error | Caught by controller[2]: at work (/opt/iobroker/node_modules/mqtt/lib/client.js:283:12)

host.raspberrypi | 2020-02-08 18:32:27.957 | error | Caught by controller[2]: at MqttClient._handlePacket (/opt/iobroker/node_modules/mqtt/lib/client.js:351:12)

host.raspberrypi | 2020-02-08 18:32:27.957 | error | Caught by controller[2]: at MqttClient._handlePublish (/opt/iobroker/node_modules/mqtt/lib/client.js:1162:12)

host.raspberrypi | 2020-02-08 18:32:27.956 | error | Caught by controller[2]: at MqttClient.emit (events.js:198:13)

host.raspberrypi | 2020-02-08 18:32:27.956 | error | Caught by controller[2]: at MqttClient.EcovacsMQTT.client.on (/opt/iobroker/node_modules/ecovacs-deebot/library/ecovacsMQTT.js:82:18)

host.raspberrypi | 2020-02-08 18:32:27.956 | error | Caught by controller[2]: at EcovacsMQTT._handle_ctl_mqtt (/opt/iobroker/node_modules/ecovacs-deebot/library/ecovacsMQTT.js:259:34)

host.raspberrypi | 2020-02-08 18:32:27.956 | error | Caught by controller[2]: TypeError: Cannot read property 'key' of undefined

host.raspberrypi | 2020-02-08 18:32:27.955 | error | Caught by controller[1]: @#[line:0,col:undefined]

host.raspberrypi | 2020-02-08 18:32:27.955 | error | Caught by controller[1]: [xmldom error] invalid doc source

host.raspberrypi | 2020-02-08 18:32:27.953 | error | Caught by controller[0]: [EcovacsAPI] Failure code 0002

ecovacs-deebot.0 | 2020-02-08 18:32:27.420 | info | (21945) Terminated (NO_ERROR): Without reason

ecovacs-deebot.0 | 2020-02-08 18:32:27.417 | info | (21945) terminating

ecovacs-deebot.0 | 2020-02-08 18:32:27.394 | info | (21945) cleaned everything up...

ecovacs-deebot.0 | 2020-02-08 18:32:27.390 | error | (21945) TypeError: Cannot read property 'key' of undefined at EcovacsMQTT._handle_ctl_mqtt (/opt/iobroker/node_modules/ecovacs-deebot/library/ecovacsMQTT.js:259:34) at MqttClient.EcovacsMQTT.c

ecovacs-deebot.0 | 2020-02-08 18:32:27.388 | error | (21945) uncaught exception: Cannot read property 'key' of undefined

ecovacs-deebot.0 | 2020-02-08 18:32:26.983 | info | (21945) DEEBOT950 successfully connected

ecovacs-deebot.0 | 2020-02-08 18:32:25.092 | info | (21945) Successfully connected to Ecovacs server

ecovacs-deebot.0 | 2020-02-08 18:32:23.301 | info | (21945) reconnecting (1) ...

ecovacs-deebot.0 | 2020-02-08 18:32:17.551 | info | (21945) starting. Version 0.3.4 in /opt/iobroker/node_modules/iobroker.ecovacs-deebot, node: v10.19.0

mrbungle64 commented 4 years ago

in ioBroker

Der ioBroker Adapter benutzt (auch wenn über github installiert) noch die 2 Tage alte Version 0.1.7 der Library von npm. Ich werde das morgen oder so dann mal auf eine aktuelle Version aktualisieren. Aber trotzdem danke :)

mrbungle64 commented 4 years ago

pi@raspberrypi:~/ecovacs-deebot.js/example $ NODE_ENV=dev node app2.js eu ... [VacBot] Sending command GetBatteryInfo /home/pi/ecovacs-deebot.js/library/ecovacsMQTT.js:126 payloadRequest['header']['ts'] = datetime.datetime.now().timestamp();

Ich behebe den Fehler gleich - das war noch Copy'n'Paste aus dem Python Code. Hatte ich vergessen anzupassen ;)

mrbungle64 commented 4 years ago

pi@raspberrypi:~/ecovacs-deebot.js/example $ NODE_ENV=dev node app2.js eu ... [VacBot] Sending command GetBatteryInfo /home/pi/ecovacs-deebot.js/library/ecovacsMQTT.js:126 payloadRequest['header']['ts'] = datetime.datetime.now().timestamp();

Ich behebe den Fehler gleich - das war noch Copy'n'Paste aus dem Python Code. Hatte ich vergessen anzupassen ;)

@gigasi, Fehler ist behoben :)

gigasi commented 4 years ago

@mrbungle64 ich teste moment