Bosch/Siemens washing machine: anyone successfully using Set Program and Options with currently selected program

I'm planning to buy a Siemens washing machine specifically to automate it via Home Assistant, but before I commit I'd like confirmation from someone who has this working in practice.

Here is what I want to do
I load the washing machine, select the program, temperature etc. Then Enable remote start and close the door. That fires an automation that

  1. Reads the currently selected program from select.washingmachine_selected_program (this works reliably actually already with my dishwasher)
  2. Calculates the cheapest window from the Tibber electricity prices matching the program duration
  3. Calls home_connect.set_program_and_options with affects_to: active_program with the selected program I read out first and b_s_h_common_option_start_in_relative for the delay

I have almost exactly the same thing working with my dishwasher already

  • Has anyone here got a Bosch/Siemens washing machine running a scheduling automation (Tibber, PV surplus, time-of-use, whatever) that uses the current home_connect.set_program_and_options action with a dynamically read selected program and finish_in_relative?
  • Which washing machine model are you using?
  • Any quirks I should know about (e.g. options that don't apply to the active program once it's been started with a delay)?

The main reason I ask is as there is an issue For Automations, how to only "start" the laundry with settings done locally on the machine · Issue #38330 · home-assistant/home-assistant.io · GitHub where someone tries exactly that but he reports that the select.washingmachine_selected_program returns empty but that issue is quite old and nothing more reported there. So it might work now or might still be an issue.

I'd really appreciate any confirmation that this combination of features works end-to-end on washing machines — the docs say it should, but I can't find a single public example of someone doing exactly this.

Thanks!

I am doing exactly this for my Bosch dishwasher but rather than using the stock Home Connect integration, I'm using the Home Connect Local (GitHub - chris-mc1/homeconnect_local_hass: Home Connect integration for Home Assistant using direct communication over the local network · GitHub) custom integration.

I've got a script that executes when the door is closed but only if the power is on and remote start is enabled. It then uses the programme time remaining entity to calculate how many 30 minute slots are required and then uses the data from the Octopus Energy integration to find the cheapest time. The script then calls the homeconnect_ws.start_program action with the start_in parameter to schedule the dishwasher.

Works a charm. I need to make a few changes though to constrain the latest end-time depending on the time of day that the dishwasher is loaded (so if I load it in the evening it will be finished by the time I wake up, if it is in the morning I want it to finish before dinner time, etc).

2 Likes