mrbungle64 / ioBroker.ecovacs-deebot

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

Deebot M88 not working #20

Closed dbase25 closed 4 years ago

dbase25 commented 4 years ago

Hi, thanks for the Plugin. I have 2* M88 Models. The Login works (green) but no information (battery) and control is possible. What i can i do for log/debug information.

thanks and regards dave

mrbungle64 commented 4 years ago

Hi @dbase25

please tell me the value of ''info.communicationProtocol" (XMPP or MQTT)

Is it possible that you install and execute this library?

dbase25 commented 4 years ago

Thanks for the fast replay. Here my Info & to Do:

1) XMPP 2) i have install with "npm install ecovacs-deebot" and restart the plugin but i think iam with stupid ;-) can you short tell me how to execute the library.

thanks and best regards dave

mrbungle64 commented 4 years ago

Hi Dave,

you don't need the ioBroker Adapter:

1)

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

2) change email and password in the file app2.js

3)

NODE_ENV=dev node app2.js | grep -E 'Battery'

4) Start cleaning using the mobile app

dbase25 commented 4 years ago

Hmpfgr:

after: mode_ENV....

(node:6655) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. [EcovacsAPI] Failure code 0002

Point 1+2 works. greetings dave

mrbungle64 commented 4 years ago

Hmpfgr:

after: mode_ENV....

(node:6655) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. [EcovacsAPI] Failure code 0002

Point 1+2 works. greetings dave

Sorry @dbase25 I forgot to tell you. "Failure code 0002" is not a "real" error. It's caused by Ecovacs servers. Please try again and repeat

NODE_ENV=dev node app2.js | grep -E 'Battery'

as long until it's working...

dbase25 commented 4 years ago

Strange...:

1) output with 2 Ecovacs in the APP (#1 offline #2 online) [VacBot] action: GetBatteryState [VacBot] Sending command GetBatteryInfo [EcovacsXMPP] Sending xml: [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 .....

2) i have delete the #1 offline ecovac and restart the script: [VacBot] action: GetBatteryState [VacBot] Sending command GetBatteryInfo [EcovacsXMPP] Sending xml: stanza: firstChild: secondChild: [app2.js] BatteryInfo: 98 [VacBot] Unknown component type: { td: 'LifeSpan', type: 'DustCaseHeap ', val: '090', total: '332' } stanza: firstChild: secondChild:

I have restart (after delete the #1 offline M88) and the plugin works with the #2 Online M88

mrbungle64 commented 4 years ago

Strange...:

  1. output with 2 Ecovacs in the APP (#1 offline #2 online) [VacBot] action: GetBatteryState [VacBot] Sending command GetBatteryInfo [EcovacsXMPP] Sending xml: [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 .....
  2. i have delete the #1 offline ecovac and restart the script: [VacBot] action: GetBatteryState [VacBot] Sending command GetBatteryInfo [EcovacsXMPP] Sending xml: stanza: firstChild: secondChild: [app2.js] BatteryInfo: 98 [VacBot] Unknown component type: { td: 'LifeSpan', type: 'DustCaseHeap ', val: '090', total: '332' } stanza: firstChild: secondChild:

I have restart (after delete the #1 offline M88) and the plugin works with the #2 Online M88

@dbase25

ok, thanks :+1:

So this means that the ioBroker adapter works now for one of your devices?

Did you already create 2 adapter instances for your devices in ioBroker? If not, you can try to use both devices by creating 2 instances. In each of them you can choose the device in the adapter settings.

dbase25 commented 4 years ago

i have only create 1 instance (the #1 offline device isnt working in the moment) and try different numbers (1/2/3) under config -> device number. i will test tomorrow the #1 offline device (add in app and create a new instance) and take a look if it works. i will write a short info about this.

many thanks for your advice and helping. dave

mrbungle64 commented 4 years ago

@dbase25

Please also execute this:

NODE_ENV=dev node app2.js | grep -E 'LifeSpan'

Thanks in advance :)

dbase25 commented 4 years ago

[VacBot] action: GetLifeSpan [VacBot] Sending commandGetLifeSpan [EcovacsXMPP] Sending xml: <iq id="11" to="E000109141770XXXXX@107.ecorobot.net/atom" from="2017092159c41953XXXXX@ecouser.net/38f8a341" type="set"><query xmlns="com:ctl"><ctl td="GetLifeSpan" type="DustCaseHeap" id="23639633"/></query></iq> stanza: <iq to="2017092159c41953XXXXX@ecouser.net/a58a60d51ac980c0ded6adda462aeea4" type="set" id="3269" from="E000109141770XXXXX@107.ecorobot.net/atom" xmlns:stream="http://etherx.jabber.org/streams"><query xmlns="com:ctl"><ctl td="LifeSpan" type="SideBrush" val="090" total="331"/></query></iq> firstChild: <query xmlns="com:ctl"><ctl td="LifeSpan" type="SideBrush" val="090" total="331"/></query> secondChild: <ctl td="LifeSpan" type="SideBrush" val="090" total="331"/> [EcovacsXMPP] Received an LifeSpan Stanza {"td":"LifeSpan","type":"SideBrush","val":"090","total":"331"} stanza: <iq to="2017092159c41953XXXXX@ecouser.net/a58a60d51ac980c0ded6adda462aeea4" type="set" id="3270" from="E000109141770XXXXX@107.ecorobot.net/atom" xmlns:stream="http://etherx.jabber.org/streams"><query xmlns="com:ctl"><ctl td="LifeSpan" type="DustCaseHeap " val="090" total="331"/></query></iq> firstChild: <query xmlns="com:ctl"><ctl td="LifeSpan" type="DustCaseHeap " val="090" total="331"/></query> secondChild: <ctl td="LifeSpan" type="DustCaseHeap " val="090" total="331"/> [EcovacsXMPP] Received an LifeSpan Stanza {"td":"LifeSpan","type":"DustCaseHeap ","val":"090","total":"331"} [VacBot] Unknown component type: { td: 'LifeSpan', type: 'DustCaseHeap ', val: '090', total: '331' } with cleaning.

I think this is correct c/p ;-)

mrbungle64 commented 4 years ago

@dbase25

Thanks :+1: but please also start cleaning :)

mrbungle64 commented 4 years ago

[VacBot] action: GetLifeSpan [VacBot] Sending commandGetLifeSpan[EcovacsXMPP] Sending xml: <iq id="11" to="E000109141770XXXXX@107.ecorobot.net/atom" from="2017092159c41953XXXXX@ecouser.net/38f8a341" type="set"><query xmlns="com:ctl"><ctl td="GetLifeSpan" type="DustCaseHeap" id="23639633"/></query></iq> stanza: <iq to="2017092159c41953XXXXX@ecouser.net/a58a60d51ac980c0ded6adda462aeea4" type="set" id="3269" from="E000109141770XXXXX@107.ecorobot.net/atom" xmlns:stream="http://etherx.jabber.org/streams"><query xmlns="com:ctl"><ctl td="LifeSpan" type="SideBrush" val="090" total="331"/></query></iq> firstChild: <query xmlns="com:ctl"><ctl td="LifeSpan" type="SideBrush" val="090" total="331"/></query> secondChild: <ctl td="LifeSpan" type="SideBrush" val="090" total="331"/> [EcovacsXMPP] Received an LifeSpan Stanza {"td":"LifeSpan","type":"SideBrush","val":"090","total":"331"} stanza: <iq to="2017092159c41953XXXXX@ecouser.net/a58a60d51ac980c0ded6adda462aeea4" type="set" id="3270" from="E000109141770XXXXX@107.ecorobot.net/atom" xmlns:stream="http://etherx.jabber.org/streams"><query xmlns="com:ctl"><ctl td="LifeSpan" type="DustCaseHeap " val="090" total="331"/></query></iq> firstChild: <query xmlns="com:ctl"><ctl td="LifeSpan" type="DustCaseHeap " val="090" total="331"/></query> secondChild: <ctl td="LifeSpan" type="DustCaseHeap " val="090" total="331"/> [EcovacsXMPP] Received an LifeSpan Stanza {"td":"LifeSpan","type":"DustCaseHeap ","val":"090","total":"331"} [VacBot] Unknown component type: { td: 'LifeSpan', type: 'DustCaseHeap ', val: '090', total: '331' } with cleaning.

I think this is correct c/p ;-)

Thanks :+1:

There's a blank space at the end of type attribute :see_no_evil:

type: 'DustCaseHeap '

That's the reason why the filter value in the message from Ecovacs server not handled correctly ("Unknown component type")

dbase25 commented 4 years ago

Perfect. I hope it helps to improve the plugin ;-) i didnt test the 2nd eco in my account, but i hope i can do this @weekend. greetings dave

mrbungle64 commented 4 years ago

@dbase25

Perfect. I hope it helps to improve the plugin ;-)

Yes :+1:

i didnt test the 2nd eco in my account, but i hope i can do this @weekend. greetings dave

Please run your tests with the current version via GitHub

mrbungle64 commented 4 years ago

@dbase25

Have you already had the chance to test it?

mrbungle64 commented 4 years ago

I'm closing this issue now. Deebot M88 seems to work basically.