Control and monitor your Bosch, Siemens, NEFF and Gaggenau home appliances through the official Home Connect cloud API — dishwashers, washers, dryers, ovens, fridges, coffee makers and more. Every value comes through in a form you can use directly, updates live, and programs can be selected, configured and started from ioBroker.
- All appliance data — status, settings, events, the active and selected program, and program options, each as an idiomatic ioBroker state.
- A stable, complete tree — every data point is created upfront (the event catalog of the appliance type, the options of all its programs) and none ever disappears: a switched-off appliance reports less, but loses nothing.
- Live updates through a single Home Connect event stream, so changes on the appliance show up within seconds — no polling storm.
- Full control — switch settings, select a program, set its options, and start, stop, pause or resume it.
- Idiomatic values — on/off as booleans, fixed choices as readable names with a states list, measurements as numbers with their unit and limits.
- Encrypted login — the OAuth token is stored encrypted and refreshed automatically; you sign in once.
- Works with Bosch, Siemens, NEFF and Gaggenau appliances (dishwashers, washers, dryers, ovens, fridges, coffee makers and more).
- Node.js >= 22
- js-controller >= 7.2.2
- Admin >= 8.0.11 (the sign-in panel in the settings needs Admin 8)
- A free Home Connect developer account (for a Client ID and Client Secret)
Home Connect requires a developer application (Client ID + Client Secret). This is free and takes a few minutes.
- Sign in at developer.home-connect.com with the same account you use in the Home Connect app.
- Go to Applications → Register Application and fill in:
- OAuth Flow:
Device Flow - Application ID: any name, e.g.
ioBroker - Success Redirect: any URI, e.g.
https://example.com - Home Connect User Account for Testing: leave empty
- OAuth Flow:
- Save. Copy the generated Client ID and Client Secret into the adapter settings and save again — the settings page has a button that takes you straight to the portal's application list (that is also where you look up the Client Secret of an existing application).
- A one-time sign-in link appears right in the adapter settings (and as a notification, and in the log). Open it, sign in with your Home Connect account and confirm — the panel switches to signed in once it is done.
- Test connection in the same panel asks the running adapter to make a real request to Home Connect and shows what it found: how many appliances the account lists, how many are connected right now, and whether live updates are connected — or the exact reason when something is wrong (a rejected login, an unreachable service, a rate-limit pause).
The adapter stores the login encrypted and reconnects automatically; the sign-in survives adapter and version updates, so you only do it once.
The update takes care of itself: your sign-in and Client ID are kept, and the old raw object tree is removed automatically — every appliance reappears under a clean device folder (named by its type plate's E-number, with the name from the app as display name). Two things to know:
- Enter your application's Client Secret once in the adapter settings — the previous adapter never asked for it. If your Home Connect application was created without a secret, register a new application (see above); the sign-in panel then guides you through a one-time sign-in.
- Point your scripts and visualization at the new readable data points listed below — that cleaner tree is the whole point of this generation.
At instance level:
| Data point | Contents |
|---|---|
info.connection |
Whether the adapter is signed in and its live event stream is connected — only then do values flow |
auth.signedIn |
Whether the adapter holds a usable Home Connect login (the settings panel uses it to tell "signed in, live updates down" from "not signed in") |
info.devicesTotal |
How many appliances are paired with your Home Connect account |
info.devicesOnline |
How many of them are connected right now |
info.devicesAllOnline |
True only while every appliance is connected — note that household appliances are switched off most of the time, so this is a "everything is running" display rather than an alarm source |
Each paired appliance appears under a device folder named by the E-number from its type plate (e.g. sx87tx02ce-60) — the one identifier that never changes and tells you the exact model, even with two appliances of the same kind. The name from your Home Connect app shows next to it as the display name and follows renames live. Two appliances of the identical model are told apart by a serial-based suffix. Each device has these channels:
| Channel | Contents |
|---|---|
info.reachable |
Whether the appliance is currently connected to Home Connect — this is what puts the green/grey dot on the device in the object browser |
status.* |
Read-only state: operation state (plus the derived boolean programRunning), the door as booleans (doorOpen, doorLocked on appliances whose door locks, one door…Open per compartment on refrigeration appliances), remote control, battery … |
settings.* |
Writable device settings: power state, child lock, temperatures, lighting … |
events.* |
Boolean event flags, created upfront from the appliance type's catalog: program finished/aborted, salt/rinse low, door alarm, descaling due … |
programs.selectedProgram |
The selected program — writable dropdown of the available programs (appliances without programs get no programs channel at all) |
programs.activeProgram |
The running program (read-only, empty when idle) |
programs.start / programs.stop |
Buttons — start the selected program / stop the active one |
options.* |
Writable program options: temperature, spin speed, delayed start … — the union across all programs, created upfront; an option that does not belong to the currently selected program is simply not sent |
commands.* |
Buttons — pause, resume, open door, acknowledge event |
Values arrive in their natural form: on/off as boolean switches, fixed choices as short readable names with a states list, and measurements as numbers with their unit and limits.
Every data point carries a readable name — the localized text Home Connect itself uses for it (in your ioBroker system language), or a readable label derived from the key until the cloud has sent one — and its technical BSH key as the description. The adapter's own structure (channels, the online marker, the start/stop buttons, the door and running indicators) is named in all eleven ioBroker languages. The adapter owns its data points — names, descriptions and structure — and keeps them current itself; your own data points belong under 0_userdata.
Data points never come and go. An appliance's capabilities do not change with its state — so a switched-off appliance keeps every data point, even though it reports only a subset (often just powerState) while in standby. The only thing that removes data points is removing the appliance from your Home Connect account: an appliance you remove is removed here too, with its whole subtree — it can no longer be addressed, so its data points could never update again. Removing only ever happens after the adapter has successfully read the appliance list, so a network hiccup can never wipe your tree.
The adapter is also frugal with the cloud: program option definitions are fetched once per program and remembered (across restarts, inside the device object) — a program change or reconnect costs no extra requests.
While the adapter is stopped, every appliance shows as not reachable and devicesOnline drops to 0 — devicesTotal keeps its value, because how many appliances you own does not change because the adapter is off.
- Choose a program under
programs.selectedProgram. - Adjust any
options.*you want (e.g. temperature or delayed start). - Write
truetoprograms.startto start it.
Stop with programs.stop, pause and resume through the commands.* buttons. Settings and options are written straight back to the appliance; if the appliance rejects the options for a start, the program is started with its defaults instead. Everything else keeps itself up to date through the live event stream.
- New: every event has a name and a short explanation in your language — salt empty, rinse aid nearly empty, filter saturated — for all seventeen appliance types, from the very first start.
- New: the description now explains what a datapoint means instead of repeating the manufacturer's key, and where the adapter has nothing to explain it stays empty.
- Fixed: after an update, the event datapoints, the online marker and the channels kept the bare id as name — they are named properly now.
- Fixed: options of a program that is not currently selected keep the bare id no longer — their names come from Home Connect once more after the update.
- New: every data point now carries a readable name in your language, straight from Home Connect, plus its technical key as description — no more bare ids in the object browser.
- New: channels, the online marker and the start/stop buttons are named in all eleven ioBroker languages, and the adapter keeps every name and description current itself on every update.
- Fixed: the instance no longer shows as connected while its live updates are down — a routine token refresh used to switch it to connected for a moment.
- Fixed: a login the event stream rejects is refreshed right away, so live updates no longer stay silent for up to a day after the token was revoked on the server side.
- Fixed: a text value written by a script into a switch or a number is now sent to the appliance as the proper on/off or number and confirmed in that form.
- Fixed: live updates that stall while connecting now recover on their own — until now such an attempt could hang until the instance was restarted, with no data arriving.
- Fixed: an appliance whose name in the app contains unusual characters now gets a clean device name instead of a broken one.
- New: a Test connection button in the settings makes a real request to Home Connect and tells you what it found — appliances listed and connected, live updates up or the exact reason why not.
- Changed: device folders are now named by the type plate's E-number (e.g.
sx87tx02ce-60); existing trees move automatically with values, history settings and renames — update your script ids once - Changed: the appliance name from the app remains the displayed device name; two identical models are told apart by a serial-based suffix in the folder id
- Fixed: idle appliances no longer produce warnings at adapter start, and a quick stop right after start no longer leaves stale online markers behind
- Fixed: data points no longer vanish while an appliance is switched off — a standby appliance reports only a subset, which used to delete the child lock. Only unpairing an appliance removes anything.
- New: everything is created upfront — the event catalog of your appliance type and the settable values of all its programs, so no data point appears only on first use.
- New: doors are real on/off states — open, locked where the door locks, and one per fridge compartment — and a running indicator shows at a glance whether a program is active.
- Fixed: nested appliance data such as fridge doors and lighting sat in a wrong misc folder and was read-only there — everything moves to its real place automatically, history settings included.
- New: appliances going online or offline are logged, and program details are fetched only once — program changes and reconnects no longer cost cloud requests.
- New: the settings page links straight to the Home Connect developer portal and explains where upgraders find the client secret of an existing application.
- New: your appliances now show the green/grey icon in the object browser — the reachable value was already there, it just was not linked to the icon.
- New: three data points show how many appliances are paired, how many are connected right now, and whether all of them are.
- Fixed: stopping the adapter no longer leaves every appliance showing as connected, and a start-up without a working sign-in no longer keeps the old values.
- Changed: an appliance you remove from your Home Connect account is now removed here too, with its whole subtree. Switching an appliance off keeps it, as before.
Older changelogs can be found there
The MIT License (MIT)
Copyright (c) 2019-2026 TA2k tombox2020@gmail.com
Copyright (c) 2024-2026 iobroker-community-adapters iobroker-community-adapters@gmx.de
Copyright (c) 2026 krobi krobi@power-dreams.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Developed with assistance from Claude.ai