homebridge-plugins / homebridge-roomba2

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

J7+ and M6 combo #99

Closed djensenius closed 1 year ago

djensenius commented 2 years ago

Expected Behavior

Be able to use J7+ and M6 together

Current Behavior

If I configure a J7 and an M6, I run into timeouts.

[12/27/2021, 1:09:57 PM] [Romop] Timed out after 60001ms trying to connect to Roomba
[12/27/2021, 1:09:57 PM] [Romop] Releasing an unexpected Roomba instance
[12/27/2021, 1:09:57 PM] [Romop] Failed to connect to Roomba to refresh state: Connect timed out

I have changed the cipher in the dorita980 library to TLS_AES_256_GCM_SHA384.

Steps to Reproduce (for bugs)

Add both a J7 and M6.

Versions

Configuration

 "accessories": [
        {
            "name": "Robroom",
            "model": "J7+",
            "blid": "removed but it is here",
            "robotpwd": ":removed but it is here",
            "ipaddress": "192.168.1.xxx",
            "dockContactSensor": true,
            "runningContactSensor": true,
            "binContactSensor": true,
            "dockingContactSensor": true,
            "homeSwitch": true,
            "stopBehaviour": "home",
            "accessory": "Roomba2"
        },
        {
            "name": "Romop",
            "model": "M6",
            "blid": "removed but it is here",
            "robotpwd": "removed but it is here",
            "ipaddress": "192.168.1.xxx",
            "dockContactSensor": true,
            "runningContactSensor": true,
            "binContactSensor": true,
            "dockingContactSensor": true,
            "homeSwitch": true,
            "stopBehaviour": "home",
            "accessory": "Roomba2"
        }
    ]

Homebridge Log / Command Output

mjamison44 commented 2 years ago

I’m having the same issue. After some major trial and error, it seems like the Braava M6 uses AES128-SHA256 for the dorita980 cipher and the Roomba J7 uses the TLS_AES_256_GCM_SHA384. That’s why we can’t seem to get both of them connected and responding in HomeKit. I wonder if there’s a way to separate the ciphers so that both can be used.

karlvr commented 2 years ago

@djensenius @mjamison44 please try the latest release (1.3.1) and report back. We've upgraded components and changed many things.

djensenius commented 2 years ago

Still getting errors:

[2022-03-15, 9:30:01 a.m.] [BroomBot] Releasing an unexpected Roomba instance
[2022-03-15, 9:30:55 a.m.] [MopBot] Timed out after 60001ms trying to connect to Roomba
[2022-03-15, 9:30:55 a.m.] [MopBot] Releasing an unexpected Roomba instance
[2022-03-15, 9:30:55 a.m.] [MopBot] Failed to connect to Roomba to refresh state: Connect timed out
[2022-03-15, 9:31:06 a.m.] [MopBot] Timed out after 60001ms trying to connect to Roomba
[2022-03-15, 9:31:06 a.m.] [MopBot] Releasing an unexpected Roomba instance
[2022-03-15, 9:31:06 a.m.] [MopBot] Failed to connect to Roomba to refresh state: Connect timed out
"accessories": [
        {
            "name": "BroomBot",
            "model": "J7+",
            "blid": "removed",
            "robotpwd": "removed",
            "ipaddress": "removed",
            "dockContactSensor": true,
            "runningContactSensor": true,
            "binContactSensor": true,
            "dockingContactSensor": true,
            "homeSwitch": true,
            "stopBehaviour": "home",
            "accessory": "Roomba2"
        },
        {
            "name": "MopBot",
            "model": "M6",
            "blid": "removed",
            "robotpwd": "removed",
            "ipaddress": "removed",
            "dockContactSensor": false,
            "runningContactSensor": false,
            "binContactSensor": false,
            "dockingContactSensor": false,
            "homeSwitch": true,
            "stopBehaviour": "home",
            "accessory": "Roomba2"
        }
    ]
Drewbacca2 commented 2 years ago

I have a 980 and a J7, both of which use a different cipher. There's no way to put them on the same bridge, so I just installed Roomba2 twice, each on a separate bridge. I then edited the J7 cipher to be the TLS_AES_256_GCM_SHA384 one. It worked fine. When I updated to 1.3.1, it quit working, even when I changed the cipher.

chollier commented 1 year ago

I'm experiencing the same issue, @karlvr would it be possible to use 2 different cyphers on different devices?

karlvr commented 1 year ago

@chollier @Drewbacca2 @djensenius @mjamison44 please try again with the latest beta release of the plugin. I believe we should now have both ciphers in one plugin, but I'd appreciate feedback about whether it works! There are a lot of issues, so I'm going to close this pre-emptively, but please re-open if there continue to be problems.

badlungs commented 1 year ago

I'm experiencing the same issue as the original poster. I'm using homebridge-roomba2 v1.4.0.

I'm able to connect to my Roomba j7+ successfully by using the TLS_AES_256_GCM_SHA384 cipher only.

If I keep both ciphers ('AES128-SHA256,TLS_AES_256_GCM_SHA384') then I'm only able to connect to my Brava jet m6.

Any ideas?