This project is an alternative integration for Home Connect enabled home appliances manufactured by BSH under the Bosch, Siemens, Constructa and Neff brands.
If you're using this integration please star it on Github
Home Assistant already has a built-in integration for Home Connect, however, it is quite basic, generates entities that are not always supported by the connected appliances and tends to stop getting status updates after a while. This integration attempts to address those issues and has the following features:
Before installing the integration you need to create an "application" in the Home Connect developers website. Note that if you have an existing appliacation, that was created before July 2022 you will most likely have to update the redirect URI to the one specified below. It can take a few hours for the changes to existing applications to apply, so be patiant.
The esiest way to install the integration is using HACS. Just click the
button bellow and follow the instructions:
Alternatively, go to Settings -> Devices & Services in Home Assistance and click the "Add Integration" button. Search for "Home Connect Alt" and install it.
A dialog box will popup asking you to select your preferred Home Connect server.
Select "China" if you are located in China and "Default" for any other location.
Next you will be asked to provide the Home Connect developer app credentials you
created erlier. Give these credetials set a name that will make it easy for you to reference them in the Home Assistant credentials manager :
Finnaly, a new window will popup where you will be asked to login to to your Home Connect account and allow Home Assistant to access your appliances. After you approve that you will be redirected back to Home Assistant, continue as instructed.
Congratulations, you're done!
Home Connect Alt will now start downloading the data for your
appliances and will add the entities for them to Home Assistant.
Note that the integration dynamically discoveres entities as they are made available by the API, so expect new entities to be added in the first few uses of the appliances.
Starting with version 0.7.0 the integration supports the UI configuration flow for most configuration options. Existing config values will be read however, once the options are saved in the UI they will override the values from the config file.
These options will show up for all users.
Language (optional - default = "en") - Indicates the language to use for entity names and values. The translation is automatically loaded from the Home Connect service and must be one of its supported languages.
Translation Mode - Indicates how sensor values and select boxes should be translated to friendly names:
Delayed start behavior (experimental) - Sets the behavior of the delayed start UI.
By default the integration will use the standard delay method supported by the appliance. Typically this would be the delay time until the start of the program for dish washers and the delay time until the end of the program for washing machines and dryers. However, it can be annoying to have to work out the time to set instead of just setting and absolute time when the program should finish.
Setting this option to "Absolute time" will replace the delay entity with a time entity that will always show the expected end time of the selected program. The value of this entity can be changed to set the desired end time for the program.
Notes:
These options will only show up when the user has enablde "Advanced mode" in the user profile.
Name Template -
Defines the template used for rendering entity names. The following placeholders are supported and will be replaced dynamically when rendering the name:
$brand - The brand name of the appliance ("Bosch", "Siemens", etc.)
$appliance - The type of the appliance ("Washing machine", "Dishwasher", etc.)
$name - The name of the entity
The default template is "$brand $appliance - $name"
Log mode - Defines the log verbosity level. Should normally be set to 0. Don't change this unless asked to do so while working on a bug you reported.
SSE Timeout -
Define the timeout, in minutes, to renew the event stream connection with the HC server.
The default value of 15 minutes is designed to prevent situations of zombie streams that appear to be connected but don't receive events from HC.
The following very advanced options can only be defined using YAML. Generally you should not change them unless you really know what you're doing.
appliance_settings (optional) - Overrides some settings for specific appliances.
This setting requires specifying the identifier (HAID) of the appliance. The easiest way to find it is to look at the entity ID of the "Connected" sensor of the appliance.
This would look something like binary_sensor.bosch_wat286h0gb_68a64f51deb_connected
, and the ID in this case is bosch_wat286h0gb_68a64f51deb
.
Currently supported settings:
_nametemplate - override the global name_template setting
disabled - set to true to disable loading the specified appliance (default=false)
For example:
bosch_wat286h0gb_68a64f51deb:
name_template: My appliance $name
disabled: false
entity_settings (optional) - Overrides internal entity settings.
Currently supported settings to override are:
unit: The units to use for numeric values
icon: The Material Design icon to use for the entity in the format "mdi:\
class: The Home Assistant class of the entity (must be a class which is already supported for that entity type)
For example:
ConsumerProducts.CoffeeMaker.Status.BeverageCounterCoffee:
unit: cups
icon: mdi:coffee
After the integration is configured READ THE FAQ then add it from the Home-Assistant UI.
The following services are available for use with automations:
select_program - Selects a program and optionally set its options
start_program - Starts a program and optionally set its options
stop_program - Stops the active program
pause_program - Pauses the active program (if and when supported by the appliance)
resume_program - Resumes a paused program (if and when supported by the appliance)
set_program_option - Sets an option on the active program if one exists or on the selected program otherwise
apply_setting - Applies the sepecified setting on an appliance
run_command - Runs the specified command on an appliance
The integration exposes the events fired by the service as Home Assistant events under the name: "home_connect_alt_event"
The published events values are:
The integration exposes two triggers for easy automation:
The default behavior of this integration is to use "local" value translation. That means that all string sensors keep their internal value in a raw, language independant format. Those values are "translated" in the UI to a human friendly text by using local translation files.
This method is different than most other Home Assistant integration but it has three important benefits:
In contrast, setting sensor_value_translation: server
will override this behavior and use translations provided by the Home Connect API. This is limited to languages supported by the API but it does make sensor have the actual textual values displayed in the UI. So you can use that if you prefer,
I don't get the installation dialogs mentioned in the Installation section above
These dialogs will only show up the first time you install the integration and only if you do not have the client_id and client_secret configured in your configuration.yaml file.
The make it appear again make sure the integration is uninstlled, then go to the Settings -> Devices & Services page on Home Assistant, then click the three-dot-menu on the top righthand corner and select "Application credentials". Locate the previous credentials row for this integration and delete it.
I get errors on the browser window that pops-up after installing the integration for the first time
This popup window is trying to log you into the Home Connect website to establish a connection with the integration. If you get an error at this stage it means you didn't follow the setup instuctions carefully enough, so make sure that you do.
Also make sure that you open https://my.home-assistant.io/ and configure the URL of your Home-Assistant server.
NOTE: If you are modifying an existing Home-Connect App then it may take up to 2 hours for the changes to take effect, so make sure you wait long enough.
Some of my appliances are not showing up after I added the integration
This is most commonly caused by two reasons:
The Home Connect Status sensor is showing the value BLOCKED and nothing works
Congratulations, you've hit one of Home Connects annoying API rate limits. It will get automatically lifted anytime between a few minutes and 24 hours. If you have many appliances and hitting this issue frequently then see the Dealing with API rate limits section below.
The Home Connect mobile app has some controls/data/events that are missing in Home Assistant
This integration doesn't know anything about any specific appliance, it is using the official Home Connect API to explore the available options for each appliance and automatically exposes them as appropriate Home Assistant entities. The type of entities is automatically determined by information received from the API. The Home Connect mobile app is using a private API that is not available to the public and has more capabilities than those in the official API. Therefor it is expected that there will be some data, controls or events that are available in the app but not in the integration, this is NOT a problem with the integration but a limitation of the API.
DO NOT open bugs or feature requests related to such issues unless you can demonstrate that the missing item is actually available in the API
I've restarted Home Assistant a few times and now all my appliances are unavailable
This is, again, related to the Home Connect rate limits. Every time you restart Home Assistant the integration makes a few API calls to the service and if that happens too often it may block for up to 24 hours. The best way to fix this is to wait a day and restart Home Assistant again.
I select a program or option but nothing happens on the appliance
Make sure the appliance is turned on. Typically the integration will automatically detect appliances that are turned off or disconnected from the network and disable them in Home Assistant but it may happen that it fails to detect that and then attempting make any changes to setting will fail.
I try to start the selected program by pressing the button but nothing happens
Make sure Remote Start is enabled on the appliance
Sensor related to program progress are showing up as unavailable
These sensors only become available when the appliance is running a program.
All the program, option and settings selection boxes, switches and numbers are disabled
Make sure that Remote Control is allowed on the appliance. It is typically enabled by default but gets temporarily disabled when changing setting on the appliance itself.
The Start button is disabled
Make sure that Remote Control Start is allowed on the appliance, it's disabled by default.
Sensor values or select boxes have values like BSH.Common.EnumType.PowerState.Off
Start by reading where these values are coming from in the explanation of the sensor_value_translation config param above. You can also set that parameter as a workaround for missing translations in sensor values.
Regardless if you decide to use the language parameter or not it would be great if you can report these values so they can be properly translated. Ideally, if you know how, please update the translation files directly (at least the English ones) and create a PR. If you don't know how then you can add them to issue #26 and I will add them to the translation files.
Note: It is expected to see these values in sensor history data. This is currently a limitation/bug in Home Assistant which doesn't translate these values.
Home Assistant display "Error" popup after installing the integration and completing the login flow to Home Connect
When this issue occurs the log file will show a "Bad Request" "400" error.
Make sure the email address you used when registereting your Home Connect account has ONLY lowercase letters.
If you have more than 5 appliances you may occasionaly hit the Home Connect API rate limit which only allows up to 1000 daily API calls, regardless of how many appliances you own. This limit ends up hurting their best customers and it doesn't make any sense, it should be adjusted based on the number of appliances in the account. If you hit that limit then I strongly enourage you to reach out to Home Connect and protest. Until hey listen there is an annoying workaround:
See the FAQ above.
CAREFULLY Read the FAQ before submitting a bug report or opening a feature request, a lot of common issues are already covered there.
DO NOT open bugs or feature requests on missing data, controls or events, unless you can show, either in the logs or in the API documentation that the missing item is actually available. Read the FAQ section for more details on this.
All non trivial issues require:
Use one of these two methods enable debug logging:
In Home Assistant navigate to Settings → Devices & Services → Home Connect Alt
and click on "Enable debug logging".
If you are using this method you can click "*Disable debug logging" when you're done to download the log file which you'll have to attach to your bug report.
-OR-
Add the following to your configuration.yaml file then restart HA:
logger:
default: warn
logs:
home_connect_async: debug
home_connect_alt: debug
custom_components.home_connect_alt: debug
If you're using this method you will have to download the log directly from the Home Assistant server in order to attach it to the bug report.
If while analyzing an issue you reported you are requested to set a specific Log Mode:
Major changes will be released in beta versions to reduce the impact on existing users. It is strongly advised not to install the beta version unless you are a part of an issue that specifically calls for installing one and when you are, you should only install the specified version (as there may be several issues handled in separate beta versions at the same time). To install a beta version go to the HACS dashboard in the Home Assistant UI:
You are welcome to create PRs for new language translations or updates to existing ones however please note the following requirements:
This integration is not built, maintained, provided or associated with BSH in any way.