Skip to content

[homeconnect] Add cleaning robot support - #20733

Merged
lsiepel merged 1 commit into
openhab:mainfrom
bruestel:vacuum
May 25, 2026
Merged

[homeconnect] Add cleaning robot support#20733
lsiepel merged 1 commit into
openhab:mainfrom
bruestel:vacuum

Conversation

@bruestel

Copy link
Copy Markdown
Contributor

Summary

Adds support for Home Connect cleaning robots (Bosch Roxxter and Spotless series).
Closes #19465

Description

This PR introduces a new thing type CleaningRobot to the Home Connect binding. The handler automatically detects the device type (Roxxter vs. Spotless series) based on the available programs reported by the API and dynamically adjusts the available channels accordingly.

Supported channels:

  • battery_level - Battery level of the robot
  • current_map - Current map selection (Roxxter only)
  • cleaning_mode_state - Cleaning mode (Roxxter: Silent/Standard/Power; Spotless: IntelligentMode/VacuumOnly/MopOnly/VacuumAndMop/MopAfterVacuum)
  • suction_power_state - Suction power level (Spotless only)
  • water_flow_rate_state - Water flow rate (Spotless only)
  • cleaning_passes_state - Number of cleaning passes (Spotless only)
  • carpet_boost - Carpet boost mode (Spotless only)
  • cleaning_speed_state - Cleaning speed (Spotless only)
  • mop_extension - Mop extension (Spotless only)
  • Common channels: operation_state, active_program_state, selected_program_state, program_progress_state, power_state, door_state, remote_start_allowance_state, remote_control_active_state
    Supported actions: start, stop, pause, resume, go home
    Channels that are not supported by the detected device type are automatically removed at runtime.

Testing

Tested with a real Bosch Spotless device. A Roxxter device was not available for testing.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new cleaningrobot thing type to the Home Connect binding so Bosch Roxxter and Spotless cleaning robots discovered via the Home Connect API can be controlled from openHAB. A dedicated handler detects the device variant at runtime (based on which programs the appliance reports) and prunes channels that do not apply.

Changes:

  • New HomeConnectCleaningRobotHandler with channel/event/command wiring, dynamic state options, and channel pruning per detected robot variant.
  • Binding constants, factory, discovery service, API client (battery level, current map, command endpoint), and AbstractHomeConnectThingHandler extended with cleaning-robot specific options and a new generic string event handler.
  • Thing/channel type definitions, i18n resources (EN/DE) and README updates documenting the new thing type and channels.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
…/internal/HomeConnectBindingConstants.java Adds thing type, settings, statuses, programs, options, channel IDs and commands for the cleaning robot.
…/internal/factory/HomeConnectHandlerFactory.java Wires the new handler and injects TranslationProvider / LocaleProvider.
…/internal/discovery/HomeConnectDiscoveryService.java Recognises the CleaningRobot appliance type during discovery.
…/internal/client/HomeConnectApiClient.java Adds battery level / current map accessors, a generic command PUT, and a new (currently unused) asBoolean option-encoding branch.
…/internal/handler/AbstractHomeConnectThingHandler.java Adds defaultStringEventHandler and registers cleaning-robot options in the program-option mapping.
…/internal/handler/HomeConnectCleaningRobotHandler.java New handler implementing channel/event/command logic and variant detection.
…/resources/OH-INF/thing/thing-types.xml Declares the cleaningrobot thing type and associated channel types.
…/resources/OH-INF/i18n/homeconnect.properties (+ _de) i18n labels/descriptions for new thing and channels.
README.md Documents the new thing type and channels; also reformats existing tables/examples.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread bundles/org.openhab.binding.homeconnect/README.md
@bruestel bruestel added the enhancement An enhancement or new feature for an existing add-on label May 16, 2026

@lsiepel lsiepel left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one comment, otherwise LGTM

- Introduce cleaning robot thing type with automatic device type detection (Roxxter vs. Spotless series) based on available programs.
- Register cleaning robot thing type in discovery service and handler factory.
- Add channels: battery_level, current_map, cleaning_mode_state, suction_power_state, water_flow_rate_state, cleaning_passes_state, carpet_boost, cleaning_speed_state, and mop_extension.
- Dynamically remove unsupported channels and set state options based on detected device type.
- Support basic actions: start, stop, pause, resume, and go home.
- Add English and German localizations for all channels and state options.
- Update README documentation.

Signed-off-by: Jonas Brüstel <openhab@bruestel.net>

@lsiepel lsiepel left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks LGTM

@lsiepel
lsiepel merged commit c10ded5 into openhab:main May 25, 2026
2 checks passed
@lsiepel lsiepel added this to the 5.2 milestone May 25, 2026
markus7017 pushed a commit to markus7017/openhab-addons that referenced this pull request Jun 13, 2026
- Introduce cleaning robot thing type with automatic device type detection (Roxxter vs. Spotless series) based on available programs.

Signed-off-by: Jonas Brüstel <openhab@bruestel.net>
darkscout pushed a commit to darkscout/openhab-addons that referenced this pull request Jul 5, 2026
- Introduce cleaning robot thing type with automatic device type detection (Roxxter vs. Spotless series) based on available programs.

Signed-off-by: Jonas Brüstel <openhab@bruestel.net>
olemr pushed a commit to olemr/openhab2-addons that referenced this pull request Aug 8, 2026
- Introduce cleaning robot thing type with automatic device type detection (Roxxter vs. Spotless series) based on available programs.

Signed-off-by: Jonas Brüstel <openhab@bruestel.net>
Signed-off-by: olemr <olemr@olemr.com>
cipianpascu pushed a commit to cipianpascu/openhab-addons that referenced this pull request Aug 16, 2026
- Introduce cleaning robot thing type with automatic device type detection (Roxxter vs. Spotless series) based on available programs.

Signed-off-by: Jonas Brüstel <openhab@bruestel.net>
Signed-off-by: Ciprian Pascu <contact@ciprianpascu.ro>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement An enhancement or new feature for an existing add-on

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[homeconnect] Add support for vacuum cleaner

3 participants