homebridge-plugins / homebridge-roomba2

Homebridge plugin to connect iRobot Roomba devices with Homebridge/HomeKit.
MIT License
144 stars 17 forks source link

Braava jet m6 does not function as expected #14

Closed shiddy closed 2 years ago

shiddy commented 3 years ago

The Braava Jet M6 shows all Accessories as "Not Responding" regardless of "Auto Refresh Enabled" state in the configuration.

Expected Behavior

All Accessories associated with the Braava do not pull state of the machine, nor does toggling the state of the switch activate/deactivate the machine.

Current Behavior

The both the switch and sensor of the Braava do not show the state of the machine within the Home App, nor the Homebridge Accessories page.

The Homebridge Accessories page does allow the user to change the state of the switch, unlike the Home App, but does not cause the machine to actually activate/deactivate.

Steps to Reproduce (for bugs)

Use the Configuration provided below and attempt to access functions of the Braava machine within the Home App or the Homebridge Accessories page.

Versions

Configuration

        {
            "name": "BigOlMop",
            "model": "Braava jet m6 ",
            "blid": "...",
            "robotpwd": "...",
            "ipaddress": "192.X.X.X",
            "autoRefreshEnabled": true,
            "dockContactSensor": true,
            "accessory": "Roomba2"
        }

Homebridge Log / Command Output

[23/11/2020, 07:02:26] [BigOlMop] Initializing Roomba2 accessory...
[23/11/2020, 07:02:26] [BigOlMop] Enabling autoRefresh every 5 seconds```
...
[23/11/2020, 07:04:03] [BigOlMop] Running status requested
[23/11/2020, 07:04:03] [BigOlMop] Battery status requested
[23/11/2020, 07:04:03] [BigOlMop] Docked status requested
[23/11/2020, 07:04:07] [BigOlMop] Running status requested
[23/11/2020, 07:04:07] [BigOlMop] Battery status requested
[23/11/2020, 07:04:07] [BigOlMop] Docked status requested
[23/11/2020, 07:04:15] [BigOlMop] Running status requested
[23/11/2020, 07:04:15] [BigOlMop] Battery status requested
[23/11/2020, 07:04:15] [BigOlMop] Docked status requested

No other logs are created from the machine within the logs, just a repeated request of the mops states.

Sakujakira commented 3 years ago

Hi, i have the same problem, i have activated debug logging:

[30.11.2020, 15:57:29] [Eve] Error: at new module.exports.TimeoutError (/usr/lib/node_modules/homebridge-roomba2/node_modules/promise-timeout/index.js:44:16) at module.exports.timeout (/usr/lib/node_modules/homebridge-roomba2/node_modules/promise-timeout/index.js:20:15) at /usr/lib/node_modules/homebridge-roomba2/index.js:278:38 at MqttClient.<anonymous> (/usr/lib/node_modules/homebridge-roomba2/index.js:76:17) at MqttClient.emit (node:events:339:22) at MqttClient._handleConnack (/usr/lib/node_modules/homebridge-roomba2/node_modules/dorita980/node_modules/mqtt/lib/client.js:918:10) at MqttClient._handlePacket (/usr/lib/node_modules/homebridge-roomba2/node_modules/dorita980/node_modules/mqtt/lib/client.js:350:12) at work (/usr/lib/node_modules/homebridge-roomba2/node_modules/dorita980/node_modules/mqtt/lib/client.js:292:12) at Writable.writable._write (/usr/lib/node_modules/homebridge-roomba2/node_modules/dorita980/node_modules/mqtt/lib/client.js:302:5) at doWrite (/usr/lib/node_modules/homebridge-roomba2/node_modules/dorita980/node_modules/readable-stream/lib/_stream_writable.js:428:64) at writeOrBuffer (/usr/lib/node_modules/homebridge-roomba2/node_modules/dorita980/node_modules/readable-stream/lib/_stream_writable.js:417:5) at Writable.write (/usr/lib/node_modules/homebridge-roomba2/node_modules/dorita980/node_modules/readable-stream/lib/_stream_writable.js:334:11) at TLSSocket.ondata (node:internal/streams/readable:715:22) at TLSSocket.emit (node:events:327:20) at addChunk (node:internal/streams/readable:304:12) at readableAddChunk (node:internal/streams/readable:279:9) at TLSSocket.Readable.push (node:internal/streams/readable:218:10) at TLSWrap.onStreamRead (node:internal/stream_base_commons:192:23)

Maybe this can help resolving this issue.

Edit: Working fine with i7 Roomba.

iRayanKhan commented 3 years ago

Does the mop support get battery status? Going to add a toggle for battery status, and see if that is why.

Sakujakira commented 3 years ago

Currently i can not tell you. If you could provide a beta Version i may test.

rodrigoescobar commented 3 years ago

I also have problems with the Braava Jet M6. It works well in the homebridge interface but it is perpetually showing as Not responding on the Home App. If there's anything I can do to help debug this, I'd be happy to.

Treverr commented 3 years ago

I am getting an error, but with the same symptoms as reported, it actually causes my whole Homebridge to shutdown:

[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Bin status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Running status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Docked status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Running status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Battery status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Bin status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Running status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Docked status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Running status requested
[1/10/2021, 4:26:12 PM] [Lil’ Sweeps] Battery status requested
[1/10/2021, 4:26:40 PM] [Lil’ Sweeps] Bin status requested
[1/10/2021, 4:26:40 PM] [Lil’ Sweeps] Using expired status
[1/10/2021, 4:26:40 PM] Error: This callback function has already been called by someone else; it can only be called one time.
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:6:13
    at /homebridge/node_modules/homebridge-roomba2/index.js:225:17
    at roombaAccessory.getStatus (/homebridge/node_modules/homebridge-roomba2/index.js:274:16)
    at roombaAccessory.getFilterStatus (/homebridge/node_modules/homebridge-roomba2/index.js:223:15)
    at ContactSensorState.emit (events.js:310:20)
    at ContactSensorState.EventEmitter.emit (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/EventEmitter.ts:42:22)
    at ContactSensorState.Characteristic._this.getValue (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:489:12)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1217:22
    at Array.forEach (<anonymous>)
    at Bridge.Accessory._this._handleGetCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1145:10)
    at HAPServer.emit (events.js:310:20)
    at HAPServer.EventEmitter.emit (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/EventEmitter.ts:42:22)
    at HAPServer._this._handleCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/HAPServer.ts:756:12)
    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/HAPServer.ts:280:24)
    at IncomingMessage.emit (events.js:310:20)
    at endReadableNT (_stream_readable.js:1187:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
ERROR: uncaughtException: This callback function has already been called by someone else; it can only be called one time.
Error: This callback function has already been called by someone else; it can only be called one time.
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:6:13
    at /homebridge/node_modules/homebridge-roomba2/index.js:225:17
    at roombaAccessory.getStatus (/homebridge/node_modules/homebridge-roomba2/index.js:274:16)
    at roombaAccessory.getFilterStatus (/homebridge/node_modules/homebridge-roomba2/index.js:223:15)
    at ContactSensorState.emit (events.js:310:20)
    at ContactSensorState.EventEmitter.emit (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/EventEmitter.ts:42:22)
    at ContactSensorState.Characteristic._this.getValue (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:489:12)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1217:22
    at Array.forEach (<anonymous>)
    at Bridge.Accessory._this._handleGetCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1145:10)
    at HAPServer.emit (events.js:310:20)
    at HAPServer.EventEmitter.emit (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/EventEmitter.ts:42:22)
    at HAPServer._this._handleCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/HAPServer.ts:756:12)
    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/HAPServer.ts:280:24)
    at IncomingMessage.emit (events.js:310:20)
    at endReadableNT (_stream_readable.js:1187:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
jocamero commented 3 years ago

Having a similar issue. Roomba i8+ works, Braava jet doesn't. Anything I can do to help? Homebridge log below:

[2/1/2021, 12:28:56 PM] [Roomba] Connected to Roomba
[2/1/2021, 12:28:57 PM] [Roomba] Roomba[{"running":1,"charging":0,"batteryLevel":85,"batteryStatus":0,"binFull":false,"binStatus":0}]
[2/1/2021, 12:28:57 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:28:58 PM] [Roomba] Connected to Roomba
[2/1/2021, 12:28:59 PM] [Roomba] Roomba[{"running":1,"charging":0,"batteryLevel":85,"batteryStatus":0,"binFull":false,"binStatus":0}]
[2/1/2021, 12:29:00 PM] [Roomba] Connected to Roomba
[2/1/2021, 12:29:01 PM] [Roomba] Roomba[{"running":1,"charging":0,"batteryLevel":85,"batteryStatus":0,"binFull":false,"binStatus":0}]
[2/1/2021, 12:29:02 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:29:03 PM] [Roomba] Connected to Roomba
[2/1/2021, 12:29:03 PM] [Roomba] Roomba[{"running":1,"charging":0,"batteryLevel":85,"batteryStatus":0,"binFull":false,"binStatus":0}]
[2/1/2021, 12:29:03 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:29:05 PM] [Roomba] Connected to Roomba
[2/1/2021, 12:29:05 PM] [Roomba] Roomba[{"running":1,"charging":0,"batteryLevel":85,"batteryStatus":0,"binFull":false,"binStatus":0}]
[2/1/2021, 12:29:07 PM] [Braava jet] Running status requested
[2/1/2021, 12:29:07 PM] [Braava jet] Battery status requested
[2/1/2021, 12:29:07 PM] [Braava jet] Docked status requested
[2/1/2021, 12:29:08 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:29:09 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:29:14 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:29:17 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:29:22 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:29:23 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:29:28 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:29:32 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:29:37 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:29:39 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:29:44 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:29:46 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:29:51 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:29:59 PM] [Braava jet] Running status requested
[2/1/2021, 12:29:59 PM] [Braava jet] Battery status requested
[2/1/2021, 12:29:59 PM] [Braava jet] Docked status requested
[2/1/2021, 12:30:00 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:30:05 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:30:07 PM] [Braava jet] Battery status requested
[2/1/2021, 12:30:07 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:30:12 PM] [Braava jet] Unable to determine state of Roomba
[2/1/2021, 12:30:13 PM] [Braava jet] Running status requested
[2/1/2021, 12:30:13 PM] [Braava jet] Battery status requested
[2/1/2021, 12:30:13 PM] [Braava jet] Docked status requested
[2/1/2021, 12:30:15 PM] [Braava jet] Connected to Roomba
[2/1/2021, 12:30:20 PM] [Braava jet] Unable to determine state of Roomba
skazzyskills commented 3 years ago

I have this exact same issue. Seems to be linked to the battery status, which shows 0% but the M6 is actually at 100%. Therefore it registers as 'no response' in HomeKit (Eve app actually shows the battery status, whereas the HomeKit app doesn't). The Homebridge interface works with the robot but also shows 0%. This is the issue. Fix possible?

karlvr commented 2 years ago

@shiddy @skazzyskills could you please retest this with the latest version and reopen the issue if it's still an issue?