From e77e3538904917ebb26f95227802f559aa83354d Mon Sep 17 00:00:00 2001 From: ia74 <68617740+ia74@users.noreply.github.com> Date: Sun, 20 Jul 2025 17:28:52 -0500 Subject: [PATCH] readme change --- README.md | 26 +++++++++++++++++++------- img/ADD.png | Bin 7000 -> 19951 bytes 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4c5c605..fda300c 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ I found that working with jeremywillans' implementation was nice and almost effo - rest980 - If you don't have it yet, don't worry; this guide will show you how to add it. - Rooms mapped/setup in iRobot app - - Note that everytime you remap and a room changes, it's ID may change! -- Knowledge of your Roomba's IP + - Note that everytime you remap and a room changes, it's ID may change (local users)! +- Knowledge of your Roomba and rest980 servers' IPs > I recommend that you use [the lovelace-roomba-vacuum-card](https://github.com/jeremywillans/lovelace-roomba-vacuum-card) until I remake it for this integration. @@ -140,7 +140,7 @@ This is not due to your rest980 API server being discovered, rather the integrat ## Step 3: Adding your Roomba! If you see the autodiscovered integration, press "Add"! -You'll be presented with this popup. It will be styled much better later, but this works well enough for now. +You'll be presented with this popup. ![Adding the robot](img/ADD.png) @@ -152,7 +152,9 @@ http://localhost:3000 and don't leave any trailing /s. -If you did it right, you'll see a success screen! +You may also input your iRobot credentials now, if you want to use cloud features that are coming soon. You must check "Enable cloud features?" for the cloud API to be used. + +If you did it right, you'll see a success screen that has also gotten your given name for the Roomba! ![Added the config!](img/ADDeD.png) @@ -160,12 +162,22 @@ If all has gone right, checking the device will show something like this: ![Added the config!](img/fin.png) -But those aren't your rooms.... +## Step 4: Rooms! (Cloud) -## Step 4: Rooms! +> As of current, this text is a placeholder for when this feature actually gets added. Still work in progress, but when this banner is removed, the below will be true. + +Your rooms will be auto-imported, alongside a clean map view, much like the one from the app. +This allows you to selectively clean rooms, and control it by automation (tutorial later). +Rooms you select will be cleaned in the order you select. Two-pass functionailty coming soon as well. + +## Step 4: Rooms! (rest980 ONLY) TO BE CONTINUED... -Rooms are not given to us easily, but a fix is in progress for that. +Rooms are not given to us easily when we're fully local, but a fix is in progress for that. + +## Important Note + +From this part on, the guide will not diverge unless required and will assume you are using Cloud features, but most of it should be generically implemented. ## Step 5: Robot Maintenance / Done! diff --git a/img/ADD.png b/img/ADD.png index 72799e76ddaf73b3e567f9ba03700a0124ab6ab0..7869517e801f3bdcfa2f4395bb9aec90ade9684c 100644 GIT binary patch literal 19951 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 literal 7000 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