RoombaSharp 0.2.0
dotnet add package RoombaSharp --version 0.2.0
NuGet\Install-Package RoombaSharp -Version 0.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RoombaSharp" Version="0.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RoombaSharp" Version="0.2.0" />
<PackageReference Include="RoombaSharp" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RoombaSharp --version 0.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: RoombaSharp, 0.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RoombaSharp@0.2.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RoombaSharp&version=0.2.0
#tool nuget:?package=RoombaSharp&version=0.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
RoombaSharp
Unofficial .NET client for newest-generation (2024+, "V4") iRobot Roomba robots,
driving the iRobot cloud protocol (Gigya → /v2/login → AWS IoT MQTT custom authorizer)
that the mature libraries (dorita980, roombapy) don't support.
⚠️ Unofficial and not affiliated with iRobot. Uses a reverse-engineered API against your own account/robot. May break on a firmware update.
What you get
- Auth — the full discovery → Gigya →
/v2/loginchain → a ready-to-useRobotSession(IoT token, AWS STS creds, MQTT endpoint, auto-discovered household id). RoombaMqttClient— connect to AWS IoT, live state (battery, phase, dock, bin, pose), and commands: start, pause, resume, stop, dock, find, per-room clean, spot clean, cleaning mode (vac/mop/vac+mop), suction strength.MapService— live map (rooms/floor-plan/zones GeoJSON), room areas, clean scores, mission history, and cloud-side map edits (split/merge rooms, keep-out & no-mop zones, rename).ScheduleService— read + full CRUD of cleaning routines.
Quick start
var settings = new RoombaSettings { Email = "you@example.com", Password = "…", CountryCode = "US" };
var auth = new IRobotCloudClient(new HttpClient(), settings, logger);
var session = await auth.LoginAsync();
await using var client = new RoombaMqttClient(auth, logger);
client.StateChanged += s => { Console.WriteLine($"{s.Status} {s.BatteryPct}%"); return Task.CompletedTask; };
await client.StartAsync(CancellationToken.None);
await client.SendCommandAsync("start");
The roomba-dashboard app (ASP.NET + Vue) is the reference consumer of this library.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- MQTTnet (>= 5.1.0.1559)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.