Giter Club home page Giter Club logo

homebridge-irobot's Introduction

Homebridge iRobot

homebridge-iRobot

Homebridge plugin to integrate iRobot roombas into HomeKit

verified-by-homebridge downloads

npm npm

build workflow license

Plugin Information

  • This plugin allows you to view and control your iRobot roombas within HomeKit. The plugin:
    • downloads a device list if your iRobot credentials are supplied
    • controls your devices locally
    • listens for real-time device updates when controlled externally

Supported Devices

Don't See Your Device Below? Let Me Know If It Worked By Filling Out This Template

Model Supported Reported By
i3 Yes nilsstreedain
e6 Yes Dav97480
J5+ Yes camsky209
Braava m6 No camsky209
971 No iamgottem
691 No Firemanjoe
j9+ Yes LakshmyPulickalRajukumar
j9+ No LakshmyPulickalRajukumar
j7 No Belg0
i7 Yes sreenath87
676 No mrath1201
J7 Yes Libar19
i6 plus Yes AlSmyth81
980 No ivansemenovv
I5+ Yes Ju17091
i5 Yes YiffyC
J7+ No danielepenguin
Braava jet m6 (6012) No Vaxter
J7 No Viper0580
989 No czarnyolek
j8 plus Yes pgorrindo
971 No luigicrafter
692 Yes Quesabyte
900 No meteora1986
900 No markuzkuz
i7 Plus Yes tohmc
S9 No johnsills1
s9 Yes douginoz
i6 Yes webcleef
697 No Funskes
900 Yes WuTangKillaBee
i6 No webcleef
j7 plus No danzika
675 Yes djmurray20
675 Yes janpreet
i7 Plus No MEGALITH2022
527 Yes TonyYuta
e5 No metalshark
i4 Yes BrauCadena
i4+ Yes SergioBraulioCadenaJuarez
m6 No zaki-hanafiah
i3 Yes zaki-hanafiah
980 Yes adamengineering
i7 Yes marchein
s9 No Maximilian2022
combo No ExoBiTe
966 Yes Jansne
675 No EddieDSuza
Braava jet m6 No JiningLiu
j7 Yes JiningLiu
966 No fheise
891 Yes lambert0725
j7 Yes wja731
694 No aclerok
m6 No waltermarbel
976 Yes benov84
976 No mbnn
690 No tiger-git-hub
i4 (4150) Yes the1maximus
890 No GitPuffy
i7 Yes rtdevnet
i7 No rtdevnet
S9 No kip1539
671 Yes Geek-MD
980 Yes Drewbacca2
e5 No TomF79
e5 Yes TomF79
675 No Mkrtichmikem
j7 Yes jonad2002
i7 Yes Clouder59
606 No PvdGulik
m6 Yes ginoledesma
i3 No rminear68
980 No jeanchrijaz
i9 Yes douginoz
960 Yes NateUT99
965 Yes bloomkd46
i8 Yes bloomkd46

Features:

  • Approved By Homebridge
  • Custom UI For Viewing Devices
  • On/Off Control
  • Room-By-Room Control On Models That Support It (Only Tested When Using One Map)
  • Auto-Dicovery Of All Devices On Your Acount
  • Battery Percent/Charging ifo
  • Binfull Detection In The Form Of Filter/Contact/Motion Sensor
  • Stuck Sensor

Prerequisites

  • To use this plugin, you will need to already have Homebridge (at least v1.3.5) or HOOBS (at least v4) installed. Refer to the links for more information and installation instructions.

Setup

Help/About

Credits

  • To the creators/contributors of Homebridge who make this plugin possible.
  • To homebridge-Meross of which I based this readme, wiki, and homebridge-ui off of
  • To Dorita980 Who cracked the iRobot API

Disclaimer

  • I am in no way affiliated with iRobot and this plugin is a personal project that I maintain in my free time.
  • Use this plugin entirely at your own risk - please see licence for more information.

homebridge-irobot's People

Contributors

actions-user avatar bloomkd46 avatar github-actions[bot] avatar rcoletti116 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-irobot's Issues

Feature Request: test

Is your feature request related to a problem? Please describe:

N/A

Describe the solution you'd like:

N/A

Describe alternatives you've considered:

N/A

Additional context:

N/A

Node Version (optional):

N/A

NPM Version (optional):

N/A

Homebridge Version (optional):

N/A

Plugin Version:

N/A

Operating System (optional):

No response

Faild to login to iRobot

Describe The Bug:

Добрый день! При соединении с логином Irobot возникает ошибка, при этом в приложение irobot на iphone попробовал зайти и все хорошо, в чем может быть проблема?

To Reproduce:

[1/31/2022, 6:25:58 PM] [iRobot] Logging into iRobot...
[1/31/2022, 6:25:59 PM] [iRobot] Faild to login to iRobot, see below for details
[1/31/2022, 6:25:59 PM] [iRobot] Authentication error. Please check your credentials.
{
callId: 'ea655c27c9b54af092762bb9f340294c',
errorCode: 403042,
errorDetails: 'invalid loginID or password',
errorMessage: 'Invalid LoginID',
apiVersion: 2,
statusCode: 403,
statusReason: 'Forbidden',
time: '2022-01-31T11:25:59.522Z'
}

Expected behavior:

Я ожидал что подключиться к учетной записи irobot

Logs:

[1/31/2022, 6:25:58 PM] [iRobot] Logging into iRobot...
[1/31/2022, 6:25:59 PM] [iRobot] Faild to login to iRobot, see below for details
[1/31/2022, 6:25:59 PM] [iRobot] Authentication error. Please check your credentials.
{
  callId: 'ea655c27c9b54af092762bb9f340294c',
  errorCode: 403042,
  errorDetails: 'invalid loginID or password',
  errorMessage: 'Invalid LoginID',
  apiVersion: 2,
  statusCode: 403,
  statusReason: 'Forbidden',
  time: '2022-01-31T11:25:59.522Z'
}

Config:

{
    "bridge": {
        "name": "Homebridge E9B4",
        "username": "0E:D9:85:3A:E9:B4",
        "port": 51158,
        "pin": "699-72-506"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "auth": "form",
            "theme": "auto",
            "tempUnits": "c",
            "lang": "ru",
            "platform": "config"
        },
        {
            "name": "iRobot",
            "email": "[email protected]",
            "password": "89138496636",
            "roombas": [
                {
                    "autoConfig": true,
                    "info": {
                        "ver": 2
                    }
                }
            ],
            "manualDiscovery": false,
            "lowBattery": 10,
            "offAction": "pause:dock",
            "status": "cycle:clean",
            "eveStatus": "inverted:cycle:clean",
            "bin": "filter:contact",
            "ignoreMultiRoomBin": false,
            "hideStuckSensor": false,
            "disableMultiRoom": false,
            "platform": "iRobotPlatform"
        }
    ]
}

Node Version:

Версия Node.js v16.13.2

NPM Version:

Версия Npm v8.1.2

Homebridge Version:

Homebridge v1.4.0 (HAP v0.10.0) (Homebridge E9B4)

Plugin Version:

v2.1.16

Operating System:

MacOS

Bug Report: Homebridge Crashes when Roomba offline

Describe The Bug:

When Roomba disconnects from network (even briefly) homebridge crashes. Discovered accidentally when robot lost connection briefly, but is repeatable.

To Reproduce:

Remove active internet connection from Roomba device.

Expected behavior:

Roomba should not crash homebridge, and also not require connection to internet.

Logs:

[06/01/2022, 15:51:41] [redacted] Roomba Rosie  went offline, disconnecting...
[06/01/2022, 15:51:42] Error: HAP Status Error: -70402
    at new HapStatusError (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/hapStatusError.ts:15:5)
    at MqttClient.<anonymous> (/usr/local/lib/node_modules/homebridge-irobot/src/platformAccessory.ts:192:13)
    at MqttClient.emit (node:events:390:28)
    at MqttClient._setupReconnect (/usr/local/lib/node_modules/homebridge-irobot/node_modules/mqtt/lib/client.js:730:12)
    at MqttClient.emit (node:events:402:35)
    at TLSSocket.f (/usr/local/lib/node_modules/homebridge-irobot/node_modules/once/once.js:25:25)
    at TLSSocket.onfinish (/usr/local/lib/node_modules/homebridge-irobot/node_modules/end-of-stream/index.js:31:27)
    at TLSSocket.emit (node:events:390:28)
    at finish (node:internal/streams/writable:750:10)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
[06/01/2022, 15:51:42] Got SIGTERM, shutting down Homebridge...

Config:

{
            "name": "iRobot",
            "email": "redacted",
            "password": "redacted",
            "lowBattery": 10,
            "offAction": "pause:none",
            "status": "phase:run",
            "eveStatus": "phase:charge",
            "bin": "contact",
            "ignoreMultiRoomBin": true,
            "hideStuckSensor": false,
            "disableMultiRoom": false,
            "platform": "iRobotPlatform"
        }

Node Version:

16.13.0

NPM Version:

8.1.0

Homebridge Version:

1.3.9

Plugin Version:

2.1.7

Operating System:

Raspberian

Support Request: Roomba i3 throwing errors when docked

Describe Your Problem:

I am not sure if this is a supportability issue (e.g. i3 is not supported), but i'll describe the issue.

When docked, the homebridge-iRobot plugin is throwing a timeout error every 5 seconds and reconnecting. When my i3 Roomba is in a clean mode, there are no errors and things work fine.

Expected behavior:

No response

Logs:

[12/01/2022, 12:48:20] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:20] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:20] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:25] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:25] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:25] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:30] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:30] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:30] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:35] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:35] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:35] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:40] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:40] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:40] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:45] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:45] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:45] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:50] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:50] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:50] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:48:55] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:48:55] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:48:55] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:49:00] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:49:00] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:49:00] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:49:02] [Homebridge UI] [homebridge-irobot] Terminating child process...
[12/01/2022, 12:49:02] [Homebridge UI] [homebridge-irobot] Child process ended
[12/01/2022, 12:49:05] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:49:05] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:49:05] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:49:10] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:49:10] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:49:10] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[12/01/2022, 12:49:15] [iRobot] Attempting To Reconnect To Roomba Roomba
[12/01/2022, 12:49:15] [iRobot] Roomba Roomba  went offline, disconnecting...
[12/01/2022, 12:49:15] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds

Config:

{
            "name": "iRobot",
            "email": "[redacted]",
            "password": "[redacted]",
            "lowBattery": 20,
            "offAction": "stop:dock",
            "status": "cycle:clean",
            "eveStatus": "inverted:cycle:clean",
            "bin": "contact",
            "ignoreMultiRoomBin": true,
            "hideStuckSensor": false,
            "disableMultiRoom": false,
            "platform": "iRobotPlatform"
        }

Node Version:

16.13.2

NPM Version:

8.1.2

Homebridge Version:

1.3.9

Plugin Version:

2.1.12

Operating System:

Raspberian

Bug Report: Pause & Resume

Describe The Bug:

When you have the Off Action set to Pause, the device fails to restart on the next command. This is because the Paused state requires a "resume" command and not a "clean" command.

For reference:

homebridge-plugins/homebridge-roomba2#62 (comment)
https://github.com/karlvr/homebridge-roomba2/blob/main/src/accessory.ts#L435

To Reproduce:

  1. Set "Off Action" to Pause.
  2. Turn on Roomba device
  3. Turn off device -> device will pause
  4. Turn on device -> device will error.

Expected behavior:

The plugin should send a resume command to a paused robot.

Logs:

[25/01/2022, 09:44:18] [iRobot] Set Rosie To pause 
[25/01/2022, 09:44:22] [iRobot] Set Rosie To Clean

Config:

"offAction": "pause:none",

Node Version:

16.13.2

NPM Version:

8.3.1

Homebridge Version:

1.4.0

Plugin Version:

homebridge-irobot v2.1.14-beta.4

Operating System:

Raspberian

Support Request: HomeKit Controls

Describe Your Problem:

Sorry, the links to Configuration and Installation in the github are broken or something.

I have 2 i9s, and when I did the initial configuration (username, password) it found both and they appear in Homekit/HB with the correct names. The i9 model is the one with the external bin and maps rooms out.

My problem is that I don't know how to see or configure multiroom support. In Homekit, each unit appears with 2 toggles. The left toggle is blue and the right toggle has the power icon in the lower half.
Both units have a full map of the floor they are on in the iRobot app on my iphone.

Can you fix the installation/configuration help links or let me know how to view or specify room information? Thanks!

Expected behavior:

Some way to see and control rooms to be cleaned

Logs:

[1/18/2022, 9:14:46 PM] [iRobot] Logging into iRobot...
[1/18/2022, 9:14:49 PM] [iRobot] Configuring roomba: RoombaNew
[1/18/2022, 9:14:49 PM] [iRobot] Configuring roomba: RoombaOld
[1/18/2022, 9:14:49 PM] [iRobot] Adding new accessory: RoombaNew
[1/18/2022, 9:14:49 PM] [iRobot] Adding new accessory: RoombaOld
[1/18/2022, 9:14:50 PM] [iRobot] Succefully connected to roomba RoombaNew
[1/18/2022, 9:14:50 PM] [iRobot] Succefully connected to roomba RoombaOld

Config:

{
            "name": "iRobot",
            "email": "mmmmm",
            "password": "xxxxx",
            "lowBattery": 20,
            "offAction": "pause:dock",
            "status": "cycle:clean",
            "eveStatus": "inverted:cycle:clean",
            "bin": "filter:contact",
            "ignoreMultiRoomBin": true,
            "hideStuckSensor": false,
            "disableMultiRoom": false,
            "platform": "iRobotPlatform"
        }

Node Version:

v16.13.2

NPM Version:

8.3.1

Homebridge Version:

1.3.9

Plugin Version:

└── [email protected]

Operating System:

Ubuntu

Feature Request: Option for No Cloud w/ BLID, Password & IP in Config

Is your feature request related to a problem? Please describe:

I think the ability to log in with the iRobot credentials solves a huge usability problem over the other plugin (Roomba2) as users have a hard time using the discovery script to obtain the BLID and Robot password. However, I would like to suggest a hybrid approach that allows for users to be completely disconnected from the cloud account by storing the BLID, Password, and IP in the config.

Describe the solution you'd like:

  1. Users who want to rely on cloud sign-in can do so.
  2. Perhaps an option in the logs upon discovery can highlight the BLID and Robot Password for users to save.
  3. Users who already have the information, or who choose to add it to the config can do so and remove their irobot cloud credentials.
  4. If there are config fields for blid, robot password, and ip are blank -> use cloud. If they are present and if cloud credentials are missing, use local only.

A good example of this is the Meross plugin.

Describe alternatives you've considered:

The homebridge-roomba2 plugin is the full-swing alternative. I think there can be a hybrid approach that benefits more users.

Additional context:

Ideally, the plugin would support the ability to use the irobot device 100% locally with no cloud dependencies.

Node Version (optional):

No response

NPM Version (optional):

No response

Homebridge Version (optional):

No response

Plugin Version:

2.1.9

Operating System (optional):

No response

Bug Report: j7 Won't Work

Describe The Bug:

After putting in all the credentials correctly and restarting home bridge the output gets spammed every 5 seconds with the plugin attempting to connect to Roomba then failing to. After enabling debug mode in home bridge the following error code is displayed when home bridge is first started up.
`[1/3/2022, 6:40:21 PM] [iRobot] Failed to fetch ip for roomba: Roomba see below for details
[1/3/2022, 6:40:21 PM] [iRobot] Request Timed Out

[1/3/2022, 6:40:21 PM] [iRobot] Restoring existing accessory from cache: Roomba
[1/3/2022, 6:40:21 PM] TypeError: Cannot read properties of undefined (reading 'sw')
at new iRobotPlatformAccessory (/homebridge/node_modules/homebridge-irobot/src/platformAccessory.ts:55:90)
at iRobotPlatform.discoverDevices (/homebridge/node_modules/homebridge-irobot/src/platform.ts:88:9)
at HomebridgeAPI. (/homebridge/node_modules/homebridge-irobot/src/platform.ts:34:12)
at HomebridgeAPI.emit (node:events:390:28)
at HomebridgeAPI.signalFinished (/usr/local/lib/node_modules/homebridge/src/api.ts:275:10)
at Server.start (/usr/local/lib/node_modules/homebridge/src/server.ts:173:14)`

Home bridge then outputs
[1/3/2022, 6:44:45 PM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null [1/3/2022, 6:44:50 PM] [HB Supervisor] Restarting Homebridge...

After this home bridge then restarts and the plugin gets stuck in a loop of attempting to connect and seeming to fail since Roomba can not be started through the home app.
[1/3/2022, 6:47:26 PM] [iRobot] Attempting To Reconnect To Roomba Roomba [1/3/2022, 6:47:26 PM] [iRobot] Roomba Roomba went offline, disconnecting... [1/3/2022, 6:47:26 PM] [iRobot] Roomba Roomba connection closed, reconnecting in 5 seconds

To Reproduce:

Attempt to setup the plugin.

Expected behavior:

Roomba should work and home bridge should not crash

Logs:

[1/3/2022, 6:44:34 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules -D
[1/3/2022, 6:44:35 PM] [HB Supervisor] Started Homebridge v1.3.9 with PID: 856
[1/3/2022, 6:44:35 PM] Loaded config.json with 0 accessories and 2 platforms.
[1/3/2022, 6:44:36 PM] Loaded 1 cached accessories from cachedAccessories.
[1/3/2022, 6:44:36 PM] ---
[1/3/2022, 6:44:37 PM] Loaded plugin: [email protected]
[1/3/2022, 6:44:37 PM] Registering platform 'homebridge-irobot.iRobotPlatform'
[1/3/2022, 6:44:37 PM] ---
[1/3/2022, 6:44:37 PM] Loaded plugin: [email protected]
[1/3/2022, 6:44:37 PM] Registering platform 'homebridge-config-ui-x.config'
[1/3/2022, 6:44:37 PM] ---
[1/3/2022, 6:44:37 PM] Loading 2 platforms...
[1/3/2022, 6:44:37 PM] [Config] Initializing config platform...
[1/3/2022, 6:44:37 PM] [Config] Running in Service Mode
[1/3/2022, 6:44:37 PM] [iRobot] Initializing iRobotPlatform platform...
[1/3/2022, 6:44:37 PM] [iRobot] Finished initializing platform: iRobot
[1/3/2022, 6:44:37 PM] [iRobot] Loading accessory from cache: Roomba
[1/3/2022, 6:44:37 PM] [iRobot] Executed didFinishLaunching callback
[1/3/2022, 6:44:37 PM] [iRobot] Logging into iRobot...
[1/3/2022, 6:44:40 PM] [iRobot] [
{"name": "Roomba", "blid": "***********************", "password": "********************", "ip": "undefined"}
]

[1/3/2022, 6:44:40 PM] [iRobot] Getting IP address for roomba: Roomba
[1/3/2022, 6:44:40 PM] [iRobot] {"ver":"4","hostname":"iRobot-*******************","robotname":"Roomba","robotid":"********************","ip":"*************","mac":"***************","sw":"sapphire+1.2.12+Firmware-Production+57","sku":"j755020","nc":1,"proto":"mqtt","cap":{"binFullDetect":2,"oMode":2,"odoa":2,"dockComm":1,"edge":0,"maps":3,"pmaps":5,"tLine":2,"area":1,"eco":1,"multiPass":2,"team":1,"pp":0,"lang":2,"5ghz":1,"prov":3,"sched":1,"svcConf":1,"ota":2,"log":2,"langOta":0,"expectingUserConf":1},"cloudConnState":14}

[1/3/2022, 6:44:40 PM] [iRobot] Restoring existing accessory from cache: Roomba
[1/3/2022, 6:44:40 PM] Error: Cannot add a Service with the same UUID '000000B7-0000-1000-8000-0026BB765291' and subtype 'Main-Service' as another Service in this Accessory.
    at Accessory.addService (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:465:17)
    at PlatformAccessory.addService (/usr/local/lib/node_modules/homebridge/src/platformAccessory.ts:93:41)
    at new iRobotPlatformAccessory (/homebridge/node_modules/homebridge-irobot/src/platformAccessory.ts:60:22)
    at iRobotPlatform.discoverDevices (/homebridge/node_modules/homebridge-irobot/src/platform.ts:88:9)
    at HomebridgeAPI.<anonymous> (/homebridge/node_modules/homebridge-irobot/src/platform.ts:34:12)
    at HomebridgeAPI.emit (node:events:390:28)
    at HomebridgeAPI.signalFinished (/usr/local/lib/node_modules/homebridge/src/api.ts:275:10)
    at Server.start (/usr/local/lib/node_modules/homebridge/src/server.ts:173:14)
[1/3/2022, 6:44:40 PM] Got SIGTERM, shutting down Homebridge...
[1/3/2022, 6:44:40 PM] [iRobot] Disconnecting From Roomba: Roomba
[1/3/2022, 6:44:40 PM] [iRobot] Roomba Roomba  went offline, disconnecting...
[1/3/2022, 6:44:40 PM] [iRobot] Roomba Roomba connection closed
[1/3/2022, 6:44:45 PM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[1/3/2022, 6:44:50 PM] [HB Supervisor] Restarting Homebridge...
[1/3/2022, 6:44:50 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules -D
[1/3/2022, 6:44:51 PM] [HB Supervisor] Started Homebridge v1.3.9 with PID: 906
[1/3/2022, 6:44:51 PM] Loaded config.json with 0 accessories and 2 platforms.
[1/3/2022, 6:44:52 PM] Loaded 1 cached accessories from cachedAccessories.
[1/3/2022, 6:44:52 PM] ---
[1/3/2022, 6:44:53 PM] Loaded plugin: [email protected]
[1/3/2022, 6:44:53 PM] Registering platform 'homebridge-irobot.iRobotPlatform'
[1/3/2022, 6:44:53 PM] ---
[1/3/2022, 6:44:53 PM] Loaded plugin: [email protected]
[1/3/2022, 6:44:53 PM] Registering platform 'homebridge-config-ui-x.config'
[1/3/2022, 6:44:53 PM] ---
[1/3/2022, 6:44:53 PM] Loading 2 platforms...
[1/3/2022, 6:44:53 PM] [Config] Initializing config platform...
[1/3/2022, 6:44:53 PM] [Config] Running in Service Mode
[1/3/2022, 6:44:53 PM] [iRobot] Initializing iRobotPlatform platform...
[1/3/2022, 6:44:53 PM] [iRobot] Finished initializing platform: iRobot
[1/3/2022, 6:44:53 PM] [iRobot] Loading accessory from cache: Roomba
[1/3/2022, 6:44:53 PM] [iRobot] Executed didFinishLaunching callback
[1/3/2022, 6:44:53 PM] [iRobot] Logging into iRobot...
[1/3/2022, 6:44:55 PM] [iRobot] [
{"name": "Roomba", "blid": "************************", "password": "*********************", "ip": "undefined"}
]

[1/3/2022, 6:44:55 PM] [iRobot] Getting IP address for roomba: Roomba
[1/3/2022, 6:44:56 PM] [iRobot] {"ver":"4","hostname":"iRobot-**********************","robotname":"Roomba","robotid":"******************************","ip":"***********","mac":"**************","sw":"sapphire+1.2.12+Firmware-Production+57","sku":"j755020","nc":1,"proto":"mqtt","cap":{"binFullDetect":2,"oMode":2,"odoa":2,"dockComm":1,"edge":0,"maps":3,"pmaps":5,"tLine":2,"area":1,"eco":1,"multiPass":2,"team":1,"pp":0,"lang":2,"5ghz":1,"prov":3,"sched":1,"svcConf":1,"ota":2,"log":2,"langOta":0,"expectingUserConf":1},"cloudConnState":14}

[1/3/2022, 6:44:56 PM] [iRobot] Restoring existing accessory from cache: Roomba
[1/3/2022, 6:44:56 PM] Publishing bridge accessory (name: Homebridge A173, publishInfo: {
  username: '**************',
  port: 53842,
  pincode: '***-**-***',
  category: 2,
  bind: undefined,
  mdns: undefined,
  addIdentifyingMaterial: true,
  advertiser: 'bonjour-hap'
}).
Setup Payload:
*****************
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:
                       
    ┌────────────┐     
    │ ***-**-*** │     
    └────────────┘     
                       
[1/3/2022, 6:44:56 PM] Homebridge v1.3.9 (HAP v0.9.8) (Homebridge A173) is running on port 53842.
[1/3/2022, 6:44:56 PM] [iRobot] Roomba Roomba  went offline, disconnecting...
[1/3/2022, 6:44:56 PM] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds
[1/3/2022, 6:44:57 PM] [iRobot] Updating Roomba To Off
[1/3/2022, 6:44:57 PM] [iRobot] Updating Roomba Mode To Off
[1/3/2022, 6:44:57 PM] [iRobot] Updating Roomba Mode To Everywhere
[1/3/2022, 6:44:57 PM] [iRobot] Updating Roomba Battery Status To Normal
[1/3/2022, 6:44:57 PM] [iRobot] Updating Roomba Battery Level To 50
[1/3/2022, 6:44:57 PM] [iRobot] Updating Roomba Charge Status To Charging
[1/3/2022, 6:44:57 PM] [iRobot] Updating Roomba Stuck To false
[1/3/2022, 6:45:01 PM] [iRobot] Attempting To Reconnect To Roomba Roomba
[1/3/2022, 6:45:01 PM] [iRobot] Roomba Roomba  went offline, disconnecting...
[1/3/2022, 6:45:01 PM] [iRobot] Roomba Roomba  connection closed, reconnecting in 5 seconds

keeps looping from here...

Config:

"accessories": [],
    "platforms": [
        {
            "name": "iRobot",
            "email": "***************",
            "password": "*********************",
            "lowBattery": 20,
            "offAction": "pause:dock",
            "status": "cycle:clean",
            "eveStatus": "inverted:cycle:clean",
            "bin": "filter:contact",
            "ignoreMultiRoomBin": true,
            "hideStuckSensor": false,
            "disableMultiRoom": false,
            "platform": "iRobotPlatform"
        }
    ]
}

Node Version:

16.13.1

NPM Version:

8.1.2

Homebridge Version:

1.3.9

Plugin Version:

v2.1.6

Operating System:

Docker

Bug Report: spelling error results in crash

Describe The Bug:

Homebridge crashes on getRoombaIP.js. Logs indicate a reference error for "proccess.argv" where process is spelled wrong. Changing to "process.argv" resolves the crash.

Change at lines 9 & 12 of getRoombaIP.js.

Logs below.

To Reproduce:

Enable plugin, restart homebridge.

Expected behavior:

Homebridge loads plugin successfully.

Logs:

[06/01/2022, 15:38:16] [redacted] Getting IP address for roomba: Rosie
/usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js:9
const attempt = proccess.argv[3] || 1;
                ^

ReferenceError: proccess is not defined
    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js:9:17)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47
[06/01/2022, 15:38:17] Error: Command failed: /usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js 30F8850492035650
/usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js:9
const attempt = proccess.argv[3] || 1;
                ^

ReferenceError: proccess is not defined
    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js:9:17)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

    at checkExecSyncError (node:child_process:826:11)
    at Object.execFileSync (node:child_process:864:15)
    at /usr/local/lib/node_modules/homebridge-irobot/src/getRoombas.ts:18:35
    at Array.forEach (<anonymous>)
    at getRoombas (/usr/local/lib/node_modules/homebridge-irobot/src/getRoombas.ts:16:10)
    at iRobotPlatform.discoverDevices (/usr/local/lib/node_modules/homebridge-irobot/src/platform.ts:65:36)
    at HomebridgeAPI.<anonymous> (/usr/local/lib/node_modules/homebridge-irobot/src/platform.ts:34:12)
    at HomebridgeAPI.emit (node:events:402:35)
    at HomebridgeAPI.signalFinished (/usr/local/lib/node_modules/homebridge/src/api.ts:275:10)
    at Server.start (/usr/local/lib/node_modules/homebridge/src/server.ts:173:14)

Config:

N/A

Node Version:

N/A

NPM Version:

N/A

Homebridge Version:

1.3.9

Plugin Version:

2.1.7

Operating System:

Raspberian

Bug Report: Homebridge iRobot 2.1.9 Crashing Homebridge when trying to Find IP for undefined

Describe The Bug:

Hi,

I have three devices on my iRobot account: an s9+, an i7+ and a m6. However, it seems like i may have 2 ghost devices on my account as during the discovery process in previous versions (2.1.6, 2.1.5) it would see 2 devices called undefined as well as the 3 legitimate devices. Now, when it hits the first undefined entry, it fails and brings down homebridge. Logs excerpt below and a full log is attached.
homebridge.log

To note, in version 2.1.6 and earlier, it would only add the first device it sees (my s9+) and never actually added the i7+ or the m6 even though IP discovery was successful. I saw that you are blocking the m6 now which is fine but I would like to get my i7+ added if possible.

To Reproduce:

Install 2.1.9 with undefined device on iRobot account

Expected behavior:

For undefined devices, i expect it should fail gracefully at finding an IP and move to the next device.

Logs:

[1/7/2022, 10:01:39 AM] [iRobot] Logging into iRobot...
[1/7/2022, 10:01:41 AM] [iRobot] Getting IP address for roomba: Goofy
[1/7/2022, 10:01:41 AM] [iRobot] Getting IP address for roomba: undefined
/usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js:35
            console.log(child_process.execFileSync(__dirname + '/getRoombaIP.js', [blid, attempt + 1]).toString());
                        ^

ReferenceError: child_process is not defined
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js:35:25)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7)
[1/7/2022, 10:01:46 AM] Error: Command failed: /usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js 86EB7F7B91FA4E8C80CF5101965378B2
/usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js:35
            console.log(child_process.execFileSync(__dirname + '/getRoombaIP.js', [blid, attempt + 1]).toString());
                        ^

ReferenceError: child_process is not defined
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-irobot/dist/scripts/getRoombaIP.js:35:25)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7)

    at checkExecSyncError (node:child_process:826:11)
    at Object.execFileSync (node:child_process:864:15)
    at /usr/local/lib/node_modules/homebridge-irobot/src/getRoombas.ts:18:35
    at Array.forEach (<anonymous>)
    at getRoombas (/usr/local/lib/node_modules/homebridge-irobot/src/getRoombas.ts:16:10)
    at iRobotPlatform.discoverDevices (/usr/local/lib/node_modules/homebridge-irobot/src/platform.ts:65:36)
    at HomebridgeAPI.<anonymous> (/usr/local/lib/node_modules/homebridge-irobot/src/platform.ts:34:12)
    at HomebridgeAPI.emit (node:events:402:35)
    at HomebridgeAPI.signalFinished (/usr/local/lib/node_modules/homebridge/src/api.ts:275:10)
    at Server.start (/usr/local/lib/node_modules/homebridge/src/server.ts:173:14)

Config:

{
    "bridge": {
        "name": "Homebridge 3226",
        "username": "0E:9D:05:E4:32:25",
        "port": 51081,
        "pin": "redacted",
        "advertiser": "ciao",
        "bind": [
            "enp1s0"
        ]
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        },
        {
            "name": "Hubitat-v2",
            "app_url_local": "http://192.168.71.61/apps/api/",
            "app_url_cloud": "https://cloud.hubitat.com/redacted/apps/",
            "use_cloud": false,
            "app_id": 178,
            "access_token": "redacted",
            "direct_port": 8000,
            "temperature_unit": "C",
            "round_levels": true,
            "adaptive_lighting": true,
            "adaptive_lighting_offset": 0,
            "validateTokenId": false,
            "logConfig": {
                "debug": false,
                "showChanges": true
            },
            "platform": "Hubitat-v2"
        },
        {
            "controllers": [
                {
                    "address": "192.168.70.11",
                    "password": "redacted",
                    "username": "redacted"
                }
            ],
            "options": [
                "Enable.Video.Stream.Only.Low",
                "Disable.Video.Transcode",
                "Disable.18E829CFA6CA"
            ],
            "platform": "UniFi Protect"
        },
        {
            "refreshToken": "redacted",
            "hideAlarmSirenSwitch": true,
            "sendDoorbellMotionNotificationsToTv": false,
            "debug": false,
            "cameraStatusPollingSeconds": 30,
            "cameraDingsPollingSeconds": 30,
            "locationModePollingSeconds": 30,
            "locationIds": [
                "redacted"
            ],
            "onlyDeviceTypes": [
                "security-panel"
            ],
            "platform": "Ring"
        },
        {
            "platform": "Twinkly"
        },
        {
            "name": "iRobot",
            "email": "redacted",
            "password": "redacted",
            "lowBattery": 20,
            "offAction": "pause:dock",
            "status": "cycle:clean",
            "eveStatus": "inverted:cycle:clean",
            "bin": "filter:contact",
            "ignoreMultiRoomBin": true,
            "hideStuckSensor": false,
            "disableMultiRoom": false,
            "platform": "iRobotPlatform"
        }
    ],
    "disabledPlugins": [
        "homebridge-unifi-protect",
        "homebridge-roomba2"
    ]
}

Node Version:

16.13.1

NPM Version:

8.3.0

Homebridge Version:

1.3.9

Plugin Version:

2.1.9

Operating System:

Ubuntu

Bug Report: Roomba e5

Describe The Bug:

Roomba doesnt start when i push the button in HomeKit.
When I start the Roomba manually the button in HomeKit Works and the Roomba Turn back in the Station.

To Reproduce:

Roomba doesnt start when i push the button in HomeKit.

Expected behavior:

The Robot should start cleaning

Logs:

Set Roomba e5 to clean

Config:

Auto config

Node Version:

v16.13.2

NPM Version:

v8.1.2

Homebridge Version:

1.4.0

Plugin Version:

v2.1.16

Operating System:

Docker

Support Request: HomeKit automations

Describe Your Problem:

How do you go about creating a shortcut or automation in HomeKit once robot is set up?

I tried setting up a shortcut to turn the robot on, turn to manual mode, and then turn on the room. But robot gives error and says map does not match map set in app. They are spelled correctly in both apps.

Expected behavior:

No response

Logs:

N/A

Config:

N/A

Node Version:

16.13.2

NPM Version:

8.3.1

Homebridge Version:

1.4.0

Plugin Version:

2.1.16

Operating System:

Raspberian

Bug Report: Disabling Unconfigured Roomba

Describe The Bug:

Can't manage to successfully configure account with i7 and m6 using homebridge-irobot v2.1.16 on homebridge 1.4.0 running Node.js Version v16.13.2. Have restarted but devices tab in the plugin shows no devices. Expected to see two devices (since both appear to be supported.) Any suggestions?

Startup logs output the following

[iRobot] Initializing iRobotPlatform platform...
[iRobot] Logging into iRobot...
[iRobot] Configuring roomba: Braava jet
[iRobot] Configuring roomba: Roomba
[iRobot] Disabling Unconfigured Roomba: Braava jet

To Reproduce:

sign-in with account with i7 and m6 using homebridge-irobot v2.1.16 on homebridge 1.4.0 running Node.js Version v16.13.2. On reboot note the plugin shows no devices.

Expected behavior:

Expected to see two devices (since both appear to be supported.)

Logs:

[iRobot] Initializing iRobotPlatform platform...
[iRobot] Logging into iRobot...
[iRobot] Configuring roomba: Braava jet
[iRobot] Configuring roomba: Roomba
[iRobot] Disabling Unconfigured Roomba: Braava jet

Config:

{
            "name": "iRobot",
            "email": "[redacted]",
            "password": "[redacted]",
            "roombas": [
                {
                    "autoConfig": true,
                    "info": {
                        "ver": 2
                    }
                }
            ],
            "manualDiscovery": false,
            "lowBattery": 20,
            "offAction": "pause:dock",
            "status": "cycle:clean",
            "eveStatus": "inverted:cycle:clean",
            "bin": "filter:contact",
            "ignoreMultiRoomBin": true,
            "hideStuckSensor": false,
            "disableMultiRoom": false,
            "platform": "iRobotPlatform"
        }
    ],

Node Version:

16.13.2

NPM Version:

8.1.2

Homebridge Version:

2.1.16

Plugin Version:

2.1.16

Operating System:

MacOS

Support Request: HomeKit Controls

Describe Your Problem:

Hi there,

I have a few questions:

  1. is it possible to show the icon as an on/off switch instead of a ventilator?
    IMG_3341

  2. I don't understand the controls:
    IMG_3342

  • I have power button ( I guess on / off roomba )
  • What is the next button ?
  • And than many switches without a description / label.

If I go deeper I can see this:
IMG_3343

Now I have a description for the switches. but what is room 3, 13, 14 ...?
How can I check, which switch is for which room (example: room 3 = living room, ...)

AND:
I see the the stuck sensor button.
This should not be, because my config is:

"hideStuckSensor": true,

Thanks !!

Expected behavior:

No response

Logs:

-

Config:

"name": "iRobot",
"email": "****",
"password": "****",
"lowBattery": 20,
"offAction": "stop:dock",
"status": "cycle:clean",
"eveStatus": "inverted:cycle:clean",
"bin": "none",
"ignoreMultiRoomBin": true,
"hideStuckSensor": true,
"disableMultiRoom": false,
"platform": "iRobotPlatform"

Node Version:

16.13.1

NPM Version:

8.1.2

Homebridge Version:

1.3.9

Plugin Version:

2.1.10

Operating System:

Docker

Bug Report: Docking doesn’t change status

Describe The Bug:

Hi. I have set the option that when docking change Eve status as inactive, but it doesn’t change and shows always as active.
Thank you

To Reproduce:

Expected behavior:

Logs:

*

Config:

"name": "iRobot",           
"email": "****",            
"password": "****",            
"lowBattery": 20,            
"offAction": "pause:dock",            
"status": "cycle:clean",            
"eveStatus": "cycle:dock",            
"bin": "filter:contact",            
"ignoreMultiRoomBin": true,            
"hideStuckSensor": false,            
"disableMultiRoom": false,            
"platform": "iRobotPlatform"

Node Version:

16.13.1

NPM Version:

8.3.0

Homebridge Version:

1.4.0

Plugin Version:

2.1.13

Operating System:

Raspberian

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.