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.

@@ -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!

@@ -160,12 +162,22 @@ If all has gone right, checking the device will show something like this:

-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
zcmeHvXH-
s=e#k&wlEJX{syUxkYsg3k&NGR7p-7
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
literal 7000
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