Skip to content

Commit

Permalink
v2.0.0
Browse files Browse the repository at this point in the history
- Change from `Accessory` base to `Platform` based Plugin
  - ***You will need to re-setup your vacuum***
    - You can reuse your config by taking your `serialnum`, `blid`, `robotpwd`, `ipaddress` from the Accessory config and input it in the Homebridge UI when adding a new device.
- Pluging has been renamed from `homebridge-roomba2` to `homebridge-roomba` now that it is a scoped plugin.

- Housekeeping and updated dependencies.

**Full Changelog**: v1.5.3...v2.0.0
  • Loading branch information
donavanbecker committed Jan 25, 2025
1 parent d5cd705 commit 0e76429
Show file tree
Hide file tree
Showing 26 changed files with 618 additions and 488 deletions.
2 changes: 1 addition & 1 deletion .changeset/gentle-rules-begin.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
"homebridge-roomba2": minor
"homebridge-roomba": minor
---

Add support for Braava m6 water tank status as a filter maintenance indicator
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Show your homebridge config.json here
* **Node.js Version**: <!-- node -v -->
* **NPM Version**: <!-- npm -v -->
* **Homebridge Version**: <!-- homebridge -V -->
* **Homebridge Roomba2 Plugin Version**:
* **Homebridge Roomba Plugin Version**:
* **Homebridge Config UI X Version**:
* **Operating System**: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
* **Process Supervisor**: Docker / Systemd / init.d / pm2 / launchctl / hb-service / other / none
Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ body:
- type: textarea
id: Config
attributes:
label: Config for homebridge-roomba2
label: Config for homebridge-roomba
placeholder: Paste your homebridge config.json here. Remove any sensitive information.
render: shell
validations:
Expand Down Expand Up @@ -73,7 +73,7 @@ body:
required: true
- type: input
attributes:
label: Homebridge Roomba2 Plugin Version
label: Homebridge Roomba Plugin Version
placeholder: v1.1.0
validations:
required: true
Expand Down
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Homebridge Discord Channel for Roomba2
- name: Homebridge Discord Channel for Roomba
url: https://discord.gg/8fpZA4S
about: Please ask and answer questions here.
- name: homebridge-roomba2 - Pull Requests
url: https://github.com/homebridge-plugins/homebridge-roomba2/pulls
- name: homebridge-roomba - Pull Requests
url: https://github.com/homebridge-plugins/homebridge-roomba/pulls
about: Please report security vulnerabilities here.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/support-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ body:
- type: textarea
id: Config
attributes:
label: Config for homebridge-roomba2
label: Config for homebridge-roomba
placeholder: Paste your homebridge config.json here. Remove any sensitive information.
render: shell
validations:
Expand Down Expand Up @@ -67,7 +67,7 @@ body:
required: true
- type: input
attributes:
label: Homebridge Roomba2 Plugin Version
label: Homebridge Roomba Plugin Version
placeholder: v1.1.0
validations:
required: true
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/beta-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

publish:
needs: lint
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba2' }}
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba' }}
permissions:
id-token: write
uses: homebridge/.github/.github/workflows/npm-publish-esm.yml@latest
Expand All @@ -32,24 +32,24 @@ jobs:

pre-release:
needs: publish
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba2' }}
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba' }}
uses: homebridge/.github/.github/workflows/pre-release.yml@latest
with:
npm_version: ${{ needs.publish.outputs.NPM_VERSION }}
body: |
**Beta Release**
**Version**: v${{ needs.publish.outputs.NPM_VERSION }}
[How To Test Beta Releases](https://github.com/homebridge-plugins/homebridge-roomba2/wiki/Beta-Version)
[How To Test Beta Releases](https://github.com/homebridge-plugins/homebridge-roomba/wiki/Beta-Version)
github-releases-to-discord:
name: Discord Webhooks
needs: [build_and_test,publish]
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba2' }}
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba' }}
uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
with:
title: "Roomba2 Beta Release"
title: "Roomba Beta Release"
description: |
Version `v${{ needs.publish.outputs.NPM_VERSION }}`
url: "https://github.com/homebridge-plugins/homebridge-roomba2/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
url: "https://github.com/homebridge-plugins/homebridge-roomba/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
secrets:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_BETA || secrets.DISCORD_WEBHOOK_URL_LATEST }}
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

publish:
needs: build_and_test
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba2' }}
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba' }}
permissions:
id-token: write
uses: homebridge/.github/.github/workflows/npm-publish-esm.yml@latest
Expand All @@ -24,12 +24,12 @@ jobs:
github-releases-to-discord:
name: Discord Webhooks
needs: [build_and_test,publish]
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba2' }}
if: ${{ github.repository == 'homebridge-plugins/homebridge-roomba' }}
uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
with:
title: "Roomba2 Release"
title: "Roomba Release"
description: |
Version `v${{ needs.publish.outputs.NPM_VERSION }}`
url: "https://github.com/homebridge-plugins/homebridge-roomba2/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
url: "https://github.com/homebridge-plugins/homebridge-roomba/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
secrets:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_LATEST }}
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -159,4 +159,4 @@ dist
persist/
.DS_Store
*.DS_Store
/homebridge-roomba2-*.tgz
/homebridge-roomba-*.tgz
2 changes: 1 addition & 1 deletion .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
/*.tgz
/docs
/eslint.*
/homebridge-roomba2-*.tgz
/homebridge-roomba-*.tgz
/nodemon.json
/src
/test
Expand Down
28 changes: 17 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,40 @@
# Changelog

## [2.0.0](https://github.com/homebridge-plugins/homebridge-roomba2/releases/tag/v2.0.0) (2025-01-24)
## [2.0.0](https://github.com/homebridge-plugins/homebridge-roomba/releases/tag/v2.0.0) (2025-01-25)

### What's Changes
#### Major Changes
- Change from `Accessory` base to `Platform` based Plugin
- ***You will need to re-setup your vacuum***
- You can reuse your config by taking your `serialnum`, `blid`, `robotpwd`, `ipaddress` from the Accessory config and input it in the Homebridge UI when adding a new device.
- Pluging has been renamed from `homebridge-roomba2` to `homebridge-roomba` now that it is a scoped plugin.

**Full Changelog**: https://github.com/homebridge-plugins/homebridge-roomba2/compare/v1.5.3...v2.0.0
#### Other Changes
- Housekeeping and updated dependencies.

**Full Changelog**: https://github.com/homebridge-plugins/homebridge-roomba/compare/v1.5.3...v2.0.0

## [1.5.3](https://github.com/homebridge-plugins/homebridge-roomba2/releases/tag/v1.5.3) (2025-01-24)
## [1.5.3](https://github.com/homebridge-plugins/homebridge-roomba/releases/tag/v1.5.3) (2025-01-24)

### What's Changes
- Fixed `require is not defined` [#148](https://github.com/homebridge-plugins/homebridge-roomba2/issues/148)
- Fixed `require is not defined` [#148](https://github.com/homebridge-plugins/homebridge-roomba/issues/148)

**Full Changelog**: https://github.com/homebridge-plugins/homebridge-roomba2/compare/v1.5.2...v1.5.3
**Full Changelog**: https://github.com/homebridge-plugins/homebridge-roomba/compare/v1.5.2...v1.5.3

## [1.5.2](https://github.com/homebridge-plugins/homebridge-roomba2/releases/tag/v1.5.2) (2025-01-24)
## [1.5.2](https://github.com/homebridge-plugins/homebridge-roomba/releases/tag/v1.5.2) (2025-01-24)

### What's Changes
- Fixed `Cannot find module` Issue [#148](https://github.com/homebridge-plugins/homebridge-roomba2/issues/148)
- Fixed `Cannot find module` Issue [#148](https://github.com/homebridge-plugins/homebridge-roomba/issues/148)

**Full Changelog**: https://github.com/homebridge-plugins/homebridge-roomba2/compare/v1.5.1...v1.5.2
**Full Changelog**: https://github.com/homebridge-plugins/homebridge-roomba/compare/v1.5.1...v1.5.2

## [1.5.1](https://github.com/homebridge-plugins/homebridge-roomba2/releases/tag/v1.5.1) (2025-01-23)
## [1.5.1](https://github.com/homebridge-plugins/homebridge-roomba/releases/tag/v1.5.1) (2025-01-23)

### What's Changes
- Fixed Cannot find module Issue [#148](https://github.com/homebridge-plugins/homebridge-roomba2/issues/148)
- Fixed Cannot find module Issue [#148](https://github.com/homebridge-plugins/homebridge-roomba/issues/148)
- Housekeeping and updated dependencies.

**Full Changelog**: https://github.com/homebridge-plugins/homebridge-roomba2/compare/v1.5.0...v1.5.1
**Full Changelog**: https://github.com/homebridge-plugins/homebridge-roomba/compare/v1.5.0...v1.5.1

## 1.5.0

Expand Down
38 changes: 19 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<span align="center">

# Homebridge-Roomba2
# homebridge-roomba

<a href="https://www.npmjs.com/package/homebridge-roomba2"><img title="npm version" src="https://badgen.net/npm/v/homebridge-roomba2" ></a>
<a href="https://www.npmjs.com/package/homebridge-roomba2"><img title="npm downloads" src="https://badgen.net/npm/dt/homebridge-roomba2" ></a>
<a href="https://www.npmjs.com/package/@homebridge-plugins/homebridge-roomba"><img title="npm version" src="https://badgen.net/npm/v/@homebridge-plugins/homebridge-roomba" ></a>
<a href="https://www.npmjs.com/package/@homebridge-plugins/homebridge-roomba"><img title="npm downloads" src="https://badgen.net/npm/dt/@homebridge-plugins/homebridge-roomba?label=downloads" ></a>
[![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)

</span>
Expand All @@ -19,20 +19,20 @@
- Roomba bin full notification
- Find Roomba (Identify Function, supported in 3rd Party HomeKit apps)

The homebridge-roomba2 plugin polls Roomba for its status when requested by HomeKit, so when you first open
The homebridge-roomba plugin polls Roomba for its status when requested by HomeKit, so when you first open
the Home app you may see an old status, or no status, until Roomba has had time to respond (which may take
a few seconds).

## Installation

1. Use the [Homebridge UI](https://github.com/oznu/homebridge-config-ui-x)’s Plugins screen to search for and install "homebridge-roomba2"
1. Use the [Homebridge UI](https://github.com/homebridge/homebridge-config-ui-x)’s Plugins screen to search for and install "homebridge-roomba"
2. Follow [Setup](#setup) to get Roomba credentials and to configure your Roomba
3. Restart Homebridge

### Manual Installation

1. Install Homebridge: `sudo npm i -g homebridge --unsafe-perm`
2. Download this plugin: `sudo npm i -g homebridge-roomba2`
2. Download this plugin: `sudo npm i -g @homebridge-plugins/homebridge-roomba`
3. Follow [Setup](#setup) to get Roomba credentials
4. Enter Roomba's credentials in your `config.json` file.
5. Restart Homebridge
Expand All @@ -41,23 +41,23 @@ a few seconds).

1. Find your Roomba's IP address (for help see the [troubleshooting](#troubleshooting) section); it will look like `192.168.X.XXX` or `10.X.X.XXX`, or similar.
2. Open a terminal on your Homebridge system, either using `ssh` or by using the Homebridge Terminal located in the &vellip; menu, top-right in the Homebridge UI.
3. Change into the directory where the plugin is installed: `cd $(npm root -g)/homebridge-roomba2`
3. Change into the directory where the plugin is installed: `cd $(npm root -g)/homebridge-roomba`
4. Type `npm run roomba:getpassword <IP ADDRESS>` (replacing `<IP ADDRESS>` with the IP address you discovered above).
5. Follow the instructions on screen to obtain your Roomba's `blid` and password. NB: Read the instructions carefully and ensure that you're pressing and holding the correct button on your Roomba.
6. Proceed to _Configuration_.

## Configuration

This plugin supports GUI-based configuration using [Config-Ui-X](https://github.com/oznu/homebridge-config-ui-x), which is the recommended
This plugin supports GUI-based configuration using [Homebridge UI](https://github.com/homebridge/homebridge-config-ui-x), which is the recommended
approach for configuring your Roomba.

### Manual configuration

Here is example JSON for configuring a Roomba2 accessory:
Here is example JSON for configuring a Roomba accessory:

```json
{
"accessory": "Roomba2",
"accessory": "Roomba",
"name": "Roomba",
"model": "960",
"blid": "1234567890",
Expand Down Expand Up @@ -88,7 +88,7 @@ Here is example JSON for configuring a Roomba2 accessory:

| Key | Description | Default Value |
| ---------------------- | ----------------------------------------------------------------------------------- | ------------- |
| `accessory` | Loads this plugin. Must be set to `Roomba2` | |
| `accessory` | Loads this plugin. Must be set to `Roomba` | |
| `name` | The name of your Roomba as it should appear in Homebridge and HomeKit | |
| `model` | The model of your Roomba as you'd like it to appear in HomeKit | |
| `serialnum` | The serial number as you'd like it to appear in HomeKit | |
Expand Down Expand Up @@ -119,14 +119,14 @@ This plugin can instruct the Roomba to clean everywhere or go on a specific clea

1. Select the rooms you want to clean in the iRobot app, start the cleaning job, then **close the iRobot app**.
2. Open a terminal on your Homebridge system, either using `ssh` or by using the Homebridge Terminal located in the &vellip; menu, top-right in the Homebridge UI.
3. Change into the directory where the plugin is installed: `cd $(npm root -g)/homebridge-roomba2`
3. Change into the directory where the plugin is installed: `cd $(npm root -g)/homebridge-roomba`
4. Type `npm run roomba:getlastcommand <BLID> <PASSWORD> <IP ADDRESS>` (replacing `<BLID> <PASSWORD> <IP ADDRESS>` with the values for your robot).

**Note:** _Modifying the map (Room Dividers, Names or Zones) in the iRobot app will result in a new `user_pmapv_id` value and may result in new `region_id` values that will cause an error if not updated in mission configuration._

### Deprecated configuration

The homebridge-roomba2 plugin used to support keep-alive and auto refresh modes for obtaining Roomba's status.
The homebridge-roomba plugin used to support keep-alive and auto refresh modes for obtaining Roomba's status.
Both of these modes required more resources from Homebridge and Roomba than were necessary.

Now the plugin efficiently queries Roomba's status on demand so as not to slow down Homebridge and so
Expand All @@ -141,7 +141,7 @@ Click on any of the items below to expand the corresponding answer.

> You can find your Roomba's IP Address in the iRobot app. Open the app and choose your Robot. Scroll down to the bottom and find Robot Settings. Click Wi-Fi Settings and then Robot Wi-FI Details. You will find your IP address and various other network goodies here.
![Alt Text](https://github.com/rcoletti116/homebridge-roomba2/blob/rcoletti116-docsfiles/trim.1BD89A46-80F9-4FCB-A04B-4A610D403D4F.gif)
![Alt Text](https://github.com/rcoletti116/homebridge-roomba/blob/rcoletti116-docsfiles/trim.1BD89A46-80F9-4FCB-A04B-4A610D403D4F.gif)

> Alternatively you can open up your Router Admin Panel and look for a list of devices. Once you identify the Roomba, you should see an associated IP address, however, this process will be different for each type of router.
Expand All @@ -160,7 +160,7 @@ Click on any of the items below to expand the corresponding answer.

## Building

The homebridge-roomba2 plugin uses [TypeScript](https://www.typescriptlang.org) and
The homebridge-roomba plugin uses [TypeScript](https://www.typescriptlang.org) and
[`nvm`](https://github.com/nvm-sh/nvm).

`nvm` is used to control the version of node used. You can skip the `nvm` step if you manage your own
Expand Down Expand Up @@ -201,12 +201,12 @@ npm run watch
The fastest way to test changes is to copy the built product directly to your Homebridge, and then to restart Homebridge.

If your Homebridge is running on your local machine, you can build (as above) and then copy the `config.schema.json` file and `dist`
folder to the `homebridge-roomba2` folder in your Homebridge's `node_modules` folder.
folder to the `homebridge-roomba` folder in your Homebridge's `node_modules` folder.

If your Homebridge is running on another machine, you can use a remote copy tool such as `scp` to copy the files:

```shell
npm run build && scp -r config.schema.json package.json dist [email protected]:/usr/lib/node_modules/homebridge-roomba2/
npm run build && scp -r config.schema.json package.json dist [email protected]:/usr/lib/node_modules/homebridge-roomba/
```

Note: the destination path above is an example of what the path to `node_modules` on your Homebridge server _might be_.
Expand All @@ -216,7 +216,7 @@ on your Homebridge machine.

## Contributing

The homebridge-roomba2 plugin uses [Changesets](https://github.com/atlassian/changesets) to maintain the [CHANGELOG.md](./CHANGELOG.md) and to bump the package's version number according to [semver](https://semver.org).
The homebridge-roomba plugin uses [Changesets](https://github.com/atlassian/changesets) to maintain the [CHANGELOG.md](./CHANGELOG.md) and to bump the package's version number according to [semver](https://semver.org).

If you are preparing a PR, please consider using Changesets to include a summary of your change for the [CHANGELOG.md](./CHANGELOG.md), following the example of existing changelog entries (but feel free to provide more detail).

Expand Down Expand Up @@ -250,7 +250,7 @@ Useful references for the `config.schema.json`:

### Releasing

The maintainer will run these steps to update the plugin version and publish to [npmjs.com](https://npmjs.com/package/homebridge-roomba2):
The maintainer will run these steps to update the plugin version and publish to [npmjs.com](https://npmjs.com/package/homebridge-roomba):

```shell
npm exec changeset version
Expand Down
Loading

0 comments on commit 0e76429

Please sign in to comment.