[Plugin] Home Connect: Bosch, Siemens, Neff and Gaggenau appliances in Domoticz

Python and python framework

Moderator: leecollings

Post Reply
User avatar
Ragdag
Posts: 212
Joined: Friday 30 March 2018 13:56
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Netherlands
Contact:

[Plugin] Home Connect: Bosch, Siemens, Neff and Gaggenau appliances in Domoticz

Post by Ragdag »

hero.png
hero.png (132.81 KiB) Viewed 137 times
I'd like to share Home Connect for Domoticz, a plugin for Bosch, Siemens, Neff and Gaggenau appliances. It connects to the Home Connect cloud, the same service the Home Connect app uses, and turns every appliance on your account into a set of Domoticz devices: what it is doing, which program runs, how long it still needs and when it will be ready, door, remote start, its messages, and for the washing machine its lifetime energy and water use. Operating the appliances (choose a program, start, stop, start later) is there too, but off by default.

I built it because the Home Connect app is fine for a quick look on your phone, and no help at all for the house around it. It can't tell Domoticz that the washer is done so the dryer reminder goes out, it doesn't keep a history of what the dishwasher uses, and it doesn't let a script start the dishwasher when the solar panels are producing. Domoticz does all of that well; it just couldn't see the appliances.

What it does
  • Finds every appliance on your Home Connect account by itself and gives it its own set of devices, named after the name you gave it in the app
  • Live state from Home Connect's event stream, so State, Program, Progress, Remaining time and the ready time follow within seconds instead of on a polling interval
  • One State tile per appliance that reads like a sentence, for example Running, Cotton or Paused, Eco 50°, coloured by what it needs from you
  • A Status code device with a fixed number per state, so a dzVents or Lua script keeps working whatever language the devices are in
  • Appliance messages such as Program finished, Rinse aid nearly empty or Preheat finished as alert devices you can put a notification on
  • The program's options and the appliance's settings as devices of their own, and every other value the appliance reports as a hidden device you can unhide
  • For the washing machine: lifetime energy, water, detergent and softener as real Domoticz meters, so you get use per day, month and year
  • Device names and values in English or Dutch
Home Connect allows an account 1000 requests a day. The plugin keeps its own rolling 24-hour count, gets almost everything from the event stream instead of asking, and keeps the last requests of the day for renewing its sign-in and reconnecting, so a busy day of commands cannot lock it out.

Devices
Everything is created automatically after you sign in. Every appliance gets the devices that fit it (a fridge has no programs, so it gets no program devices):

Code: Select all

Device            | What it shows
------------------|------------------------------------------------------------
State             | What it does, with the program: "Running, Cotton"
Power, Door       | On/off and door contact
Remote control    | Whether Domoticz may start it: "Remote start allowed"
Program           | Running program and ready time: "Cotton, ready at 14:35"
Progress          | Percentage of the running program
Remaining time    | Minutes until it ends
Program choice    | The selected program (selects it when control is on)
Actions           | Start, Stop, Pause, Resume (control only)
Start at/Ready at | A clock time for a delayed start (control only)
Acknowledge       | Confirms a message on the appliance (control only)
Status code       | The state as a fixed number for scripts (hidden)
Total ... used    | Washer: energy (kWh), water (L), detergent and softener (ml)
Some real readings from this morning, with a washer and a dryer running:

Code: Select all

Washer State           Running, Cottons, Locked
Washer Program         Cottons, ready at about 14:03
Washer Remaining time  47 min           Progress  24%
Washer Remote control  Remote start allowed
Washer Total water     1565 L           (today 77 L)
Washer Total energy    11.780 kWh       (today 0.425 kWh)
Dryer State            Running, Cotton
Dryer Program          Cotton, ready at about 14:15
Dishwasher Program     Eco 50° (selected)
Oven Cavity temperature  31.0 C
Optional control
Control is opt-in. There is an "Allow control" setting that is off by default; while it is off, every command is refused and the control devices stay hidden. Turn it on and you can choose a program, change its options, and start, stop, pause or resume it, also from scenes, timers and scripts. A delayed start is a clock time ("start at 02:30" for a dishwasher, "ready at 18:00" for a washer), and you can move it while the appliance waits.

Home Connect itself adds a safety step you can't skip: an appliance only accepts a start while remote start is switched on at the appliance, usually a button you press when you load it. So nothing starts that nobody prepared.

Every command is checked before it is sent. The plugin knows the program's allowed values and the appliance's state, so a start with the door open, a temperature out of range or a program while the oven is off is refused locally, with a message that says what to do next (The door of Dishwasher is not closed, Oven is switched off; switch it on first). That message also appears briefly at the top of the Domoticz screen (Domoticz 2026.1 or newer, can be turned off).
notification.png
notification.png (5.87 KiB) Viewed 137 times
Requirements
  • Your appliances in the Home Connect app
  • A free account on developer.home-connect.com with the same email address as your Home Connect app account, and an application of type Device Flow registered there (the docs walk you through it, about 15 minutes the first time)
  • Domoticz with the Python plugin system, 2026.4 or newer recommended; Python 3.11 or newer
  • Internet access from the Domoticz machine to the Home Connect cloud
No port forwarding, no public address and no reverse proxy. Signing in uses Home Connect's device flow: the plugin shows a link and a code, you approve on any phone or computer, and Home Connect never has to reach your Domoticz. Everything, the live event stream included, is an outgoing HTTPS connection from the Domoticz machine, so it works fine behind a normal home router.

Standard library only, so there is nothing to pip install.

Install

Code: Select all

cd /opt/domoticz/plugins
git clone -b dist https://github.com/Rouzax/home-connect-domoticz-plugin homeconnect
sudo systemctl restart domoticz
Then Setup, Hardware, Add, pick "Home Connect", enter the Client ID of your application and press Add. A "Home Connect" device on the Utility tab shows a link and a code; open the link, approve with your Home Connect account, and the appliances appear within a minute. Leave Allow control off for a first run.

Screenshots
washer-cards.png
washer-cards.png (137.62 KiB) Viewed 137 times
Documentation
Installation, every setting, every device, control, a troubleshooting page organised by what you see, and security notes on what the plugin stores:
https://rouzax.github.io/home-connect-domoticz-plugin/

This is a beta, and I'd like help with
It runs every day here on a washer, a dryer, a dishwasher, a steam oven and a combination oven with microwave, and control was tested on real appliances. Other appliance types (fridges and freezers, coffee machines, hoods, cooktops, washer-dryers, cleaning robots) should work, because the plugin builds its devices from what the appliance reports rather than from a fixed list, but I haven't seen them myself. If you have one, I'd like to know how it looks, and the appliance support form on GitHub asks for exactly what helps. Bugs and ideas are welcome in the GitHub issues; the repository is the one in the install command above.
User avatar
madpatrick
Posts: 892
Joined: Monday 26 December 2016 12:17
Target OS: Linux
Domoticz version: 2026.1
Location: Netherlands
Contact:

Re: [Plugin] Home Connect: Bosch, Siemens, Neff and Gaggenau appliances in Domoticz

Post by madpatrick »

Nice,

What are the difference with the other Home Connect plugin ?
viewtopic.php?t=45136
-= HP server GEN11 =- ZwaveJS-=- Domoticz v2026.2 -=- Dashticz =-
-= Checkout https://github.com/MadPatrick for the plugins =-
User avatar
Ragdag
Posts: 212
Joined: Friday 30 March 2018 13:56
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Netherlands
Contact:

Re: [Plugin] Home Connect: Bosch, Siemens, Neff and Gaggenau appliances in Domoticz

Post by Ragdag »

madpatrick wrote: Friday 23 October 2026 15:17 Nice,

What are the difference with the other Home Connect plugin ?
viewtopic.php?t=45136
That is a good question and I noticed when I was publishing to the plugin managers that there is already a plugin out :D

How is this different from the existing "Bosch Home Connect" plugin?
The two take different routes, so here is what differs most, so you can pick the one that fits.

Signing in
  • Bosch Home Connect: authorization code flow. You need the Client Secret, a public host name or IP address, and a port forwarded to Domoticz for the one-time authorization.
  • This plugin: device flow. You open a link and enter a code on any phone or computer. No secret, no port forwarding, no public address, ever.
The link and code appear on a "Home Connect" device as well as in the log, with "Sign in again" and "Refresh appliances" as actions, and a Sign out setting that also withdraws the plugin's access at Home Connect.

Installing
  • Bosch Home Connect: Python 3.6 or newer, plus pip install requests. Tokens are stored in a tokens.json file in the plugin folder.
  • This plugin: Python 3.11 or newer, standard library only, nothing to pip install. Tokens are stored in the Domoticz database with the hardware.
Devices
  • Bosch Home Connect: a fixed set of devices per appliance type. Each appliance gets 20 units by its position in the appliance list, so one hardware entry holds up to 12 appliances.
  • This plugin: a DomoticzEx plugin with one Domoticz device per appliance, tied to the appliance's own Home Connect ID: no limit on the number of appliances, and adding or removing one never moves another's devices. The devices are built from what the appliance reports: every program, option, setting and status value it has. Names and values in English or Dutch.
Control
  • Bosch Home Connect: always on. Start a program, switch power and child lock, and a few settings per type, such as hood levels and fridge and oven setpoints.
  • This plugin: off until you turn on Allow control. Then: program, options and settings, start, stop, pause and resume, a delayed start you can still move, and acknowledge. Every command is checked before it is sent. When something is not possible (door open, appliance off, remote start not enabled), a short message at the top of the Domoticz screen says why and what to do next (Domoticz 2026.1 or newer; can be turned off).
Only in this plugin
  • Every message an appliance sends as an alert device (the other plugin handles a few per type, such as the coffee machine's water tank and the hood's grease filter)
  • An on-screen message when a command is refused or fails, with the reason and the next step
  • A Status code device with a fixed number per state, so scripts keep working in any language
  • The washing machine's energy, water, detergent and softener use as Domoticz meters
  • Its own count of the 1000 calls a day Home Connect allows, with a reserve so it cannot lock itself out
The short version: if you don't want to open a port or install Python packages, or you want every appliance message, the washer meters, delayed start or control you can switch off, this one is built for that. Both use the same Home Connect cloud API and its live event stream. They install into different folders with different plugin keys, so switching from one to the other leaves the first one's devices alone.
User avatar
FireWizard
Posts: 1976
Joined: Tuesday 25 December 2018 12:11
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Voorthuizen (NL)
Contact:

Re: [Plugin] Home Connect: Bosch, Siemens, Neff and Gaggenau appliances in Domoticz

Post by FireWizard »

Hi @Ragdag,

Today I received the following email:
Home Connect
Developer Program


Important: Required Account Migration for Home Connect Developer Program
Dear User of the Home Connect Developer Program,


Following the previous update to our Terms & Conditions, we are writing to inform you about an important upcoming change regarding your use of the Home Connect Developer Program.
As part of an update to our authentication infrastructure, we are changing the identity provider used for Home Connect Developer Program. To continue accessing your account, you must migrate your existing account beginning on Monday, 26.10.2026.

What do you need to do?

1. Visit developer.home-connect.com/user/login
2. Sign in using your current account credentials.
3. Follow the on-screen instructions to complete the migration.
The migration should take approximately two minutes. If you do not complete the migration by 26.11.2026, you may temporarily lose access to your Home Connect Developer Program account until the migration has been completed

Your data

Your existing account data, settings, and available services will remain associated with your account during the migration process, subject to the updated Terms & Conditions and our Data Privacy Statement.

Your options

If you do not agree to the updated Terms & Conditions, you may discontinue your use of Home Connect Developer Program in accordance with the applicable agreement and any relevant termination provisions. If applicable, you may also request account closure by contacting us before the effective date.

Need help?

If you have any questions or require assistance with the migration process, please visit our dedicated migration FAQs or contact our support team.
Thank you for continuing to use Home Connect Developer Program.

Kind regards,
Your Home Connect Developer Team
Have you seen such mail as well? I think it is a really short time notice.
Will it have impact on your plugin?

Regards
Post Reply