HOME CONNECT INTEGRATION (working even without SSL & not exposing HA to web)

I am really confused with trying to setup this integration. Any assistance would be helpful.

I’ve setup the Redirect URL in HomeConnect Dev first with my internal HA address as instructed in https://www.home-assistant.io/integrations/home_connect/ not using SSL. The documentation provided with this link doesn’t use SSL in the example.

I got this error when trying to register the new integration:

{
  "error": "unauthorized_client",
  "error_description": "client or redirection URI not authorized",
  "state": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmbG93X2lkIjoiMTFhNTRhMGRkNmJiNDZjNDhlMjIzNGRkMmEzMTlmMTgifQ.QS7pbz6xwdE9BFX5iWAyhTkeCGFKpbCYFQC7UO7e9FA"
}

I googles that error message and saw that a lot of ppl said that you need to use https for your Callback URL. So I’ve now setup a reverse proxy with SSL. And updated the Callback URL with the new SSL-enabled address.

I still get the very same error message. And there is very little information in the message that is useful for debugging the problem. Do you guys have any good suggistions?

/p

Hi everyone,

I´m trying to set up my Siemens washer using the Home Connect Integration, i have my washer working on mobile app.

I can´t get it to work in my Home Assistant.

1 - I create my developer acount, Does this have to be the same email acount as used in the mobile app??
2 - Regisiter new app, OK
3 - Add the client ID in configuration.yaml with client id & secret. OK
4 - Add the integration Home Connect:
This opens webpage api.home-connect.com
I enter my email and password but webpage returns:

"The given user is not assigned to this app in the developer portal".

And i have had the same error as Posterberg

{
  "error": "unauthorized_client",
  "error_description": "client or redirection URI not authorized",
  "state": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

I´ve tried creating using developer acount with the same and diferent email used in the mobile app, but always same error.

I got it working tonight. I was missing the “internal_url” configuration option under the “homeassistant:” tag. Found the solution here https://github.com/DavidMStraub/homeassistant-homeconnect/issues/52

Hi out there,
so i have also a problem with the HC integration and hope someone has an idea to solve it.
I did the integration like mentioned in https://www.home-assistant.io/integrations/home_connect/
The integration works fine and everything is correctly set up.
But I did only got once an update information from my oven. Now if I start a program in my oven homeassistant does not recognize it and e.g. the power shows still “off”.
Does someone also has the same problem and found a solution?

Many thanks 4 help

BR

I have the same problem and I found out that it is because the token expires and Home Assistant does not ask for a new one. I have no idea why, but it can be seen in the log. Then it will always help to restart HA for only about 24 hours (?) Or in the integration to select to restore Home Connect again.
Could you please find out why it is not being restored? HA I have the current version.

1 Like

@jfg31113: The reason why you were getting the message “The given user is not assigned to this app in the developer portal” is, that you have not defined your email address (that you are using in your Home Connect App) in the “Home Connect User Account” of your Home Connect developer account. You can either define it specifically for an app or in your account details centrally.

Hope this also helps others … I have spend a few hours time to find this simple solution.

… same as mentioned here.

Is there an update to using the integration without the servers?
The API and device should both support it.

I read that this was commented here but then somehow the discussion just stopped.

Is someone working on this?

@cotwild Looks like with the current version of the integration the sensors etc. have changed a little bit.
I’ve tried to make something similar to what you made using the ‘multiple-entity-row’ component.
I’ve modified some of the code to work with the new sensors:

configuration.yaml

sensor:
- platform: template
  sensors:
    oven_remaining:
      friendly_name: "Oven remaining"
      value_template: >
        {% if states('sensor.oven_operation_state') == 'Inactive' %} -
        {% elif states('sensor.oven_operation_state') == 'Finished' %} -
        {% elif states('sensor.oven_remaining_program_time') == 'unavailable' %} -
        {% elif (as_timestamp(states('sensor.oven_remaining_program_time')) - as_timestamp(now())) < 61 %} < 1 min
        {% else %}
          {{ (((as_timestamp(states('sensor.oven_remaining_program_time')) - as_timestamp(now())) / 60) | round(0)) | string + " min" }}
        {% endif %}
    dishwasher_remaining:
      friendly_name: "Dishwasher remaining"
      value_template: >
        {% if states('sensor.dishwasher_operation_state') == 'Inactive' %} -
        {% elif states('sensor.dishwasher_operation_state') == 'Finished' %} -
        {% elif states('sensor.dishwasher_remaining_program_time') == 'unavailable' %} -
        {% elif (as_timestamp(states('sensor.dishwasher_remaining_program_time')) - as_timestamp(now())) < 61 %} < 1 min
        {% else %}
          {{ (((as_timestamp(states('sensor.dishwasher_remaining_program_time')) - as_timestamp(now())) / 60) | round(0)) | string + " min" }}
        {% endif %}
    washing_machine_remaining:
      friendly_name: "Washing machine remaining"
      value_template: >
        {% if states('sensor.washing_machine_operation_state') == 'Inactive' %} -
        {% elif states('sensor.washing_machine_operation_state') == 'Finished' %} -
        {% elif states('sensor.washing_machine_remaining_program_time') == 'unavailable' %} -
        {% elif (as_timestamp(states('sensor.washing_machine_remaining_program_time')) - as_timestamp(now())) < 61 %} < 1 min
        {% else %}
          {{ (((as_timestamp(states('sensor.washing_machine_remaining_program_time')) - as_timestamp(now())) / 60) | round(0)) | string + " min" }}
        {% endif %}
    oven_progress:
      friendly_name: "Oven progress"
      value_template: >
        {% if states('sensor.oven_operation_state') == 'Inactive' %} -
        {% elif states('sensor.oven_operation_state') == 'Finished' %} -
        {% elif states('sensor.oven_program_progress') == 'unavailable' %} -
        {% else %}
          {{ states('sensor.oven_program_progress') + "%" }}
        {% endif %}
    dishwasher_progress:
      friendly_name: "Dishwasher progress"
      value_template: >
        {% if states('sensor.dishwasher_operation_state') == 'Inactive' %} -
        {% elif states('sensor.dishwasher_operation_state') == 'Finished' %} -
        {% elif states('sensor.dishwasher_program_progress') == 'unavailable' %} -
        {% else %}
          {{ states('sensor.dishwasher_program_progress') + "%" }}
        {% endif %}
    washing_machine_progress:
      friendly_name: "Washing machine progress"
      value_template: >
        {% if states('sensor.washing_machine_operation_state') == 'Inactive' %} -
        {% elif states('sensor.washing_machine_operation_state') == 'Finished' %} -
        {% elif states('sensor.washing_machine_program_progress') == 'unavailable' %} -
        {% else %}
          {{ states('sensor.washing_machine_program_progress') + "%" }}
        {% endif %}

Card configuration:

type: entities
entities:
  - entity: switch.oven_power
    type: 'custom:multiple-entity-row'
    show_state: false
    state_color: true
    name: Oven
    secondary_info:
      entity: sensor.oven_operation_state
      name: 'Status:'
    icon: 'mdi:stove'
    entities:
      - entity: sensor.oven_progress
        name: Progress
      - entity: sensor.oven_remaining
        name: Remaining
      - entity: binary_sensor.oven_door
        name: false
        icon: true
        state_color: true
  - entity: switch.dishwasher_power
    type: 'custom:multiple-entity-row'
    name: Dishwasher
    show_state: false
    state_color: true
    secondary_info:
      entity: sensor.dishwasher_operation_state
      name: 'Status:'
    icon: 'mdi:dishwasher'
    entities:
      - entity: sensor.dishwasher_progress
        name: Progress
      - entity: sensor.dishwasher_remaining
        name: Remaining
      - entity: binary_sensor.dishwasher_door
        name: false
        icon: true
        state_color: true
  - entity: switch.washing_machine_power
    type: 'custom:multiple-entity-row'
    show_state: false
    state_color: true
    name: Washing machine
    secondary_info:
      entity: sensor.washing_machine_operation_state
      name: 'Status:'
    icon: 'mdi:washing-machine'
    entities:
      - entity: sensor.washing_machine_progress
        name: Progress
      - entity: sensor.washing_machine_remaining
        name: Remaining
      - entity: binary_sensor.washing_machine_door
        name: false
        icon: true
        state_color: true

That results in something like this:
image

Maybe it helps someone else

7 Likes

Keep having issues with the Home Connect integration.
I tried everything, have a proper internal and external URL for callback. and tried my test user line in the application config empty and filled with my username but still I got “The given user is not assigned to this app in the developer portal.”

Any clues?

Hello guys,

I had success working with this integration with a Bosch dishwasher. Sometimes the integration hung up and needed to be reloaded (throughout the first half of 2021), but I guess that was an issue in the BSH cloud. Meanwhile it’s working fine again.

I have one suggestion - could you consider exposing the child lock switch in the integration? It is documented here: https://api-docs.home-connect.com/settings?#child-lock . The key is BSH.Common.Setting.ChildLock and can probably be handled the same way like the power switch or the program switches. It would be an advantage for many other devices as well since most of them (oven, washing machine, dryer…) have a child lock feature.

I’d like to create an automation that monitors the operation state and automatically activates the child lock once the device has started a program - because we simply tend to forget to enable the child lock after starting the device. The Home Connect App does not provide a setting to enable the child lock by default.

Our son has discovered the dishwasher several days ago and now he keeps bashing the panel and the switches when the device is running :wink:

Best regards!

3 Likes

I have my Thermador Dishwasher, Oven, and Hood all working properly.

I wish the Refrigerator worked…any hope of getting that done? I can test.

(also @sagined) Looks like the Home Connect token expiry is a known issue, not fixed yet.

That’s great. Thank you very much.

are there any updates on running this entirely locally

I think the first step would be to make at least the cloud work reliably. I have a fridge-freezer and a dishwasher and both have some issues:

  • Fridge provides a Power switch entity which does nothing…which is essantially a good thing since it does not make sense to ever turn off the fridge.

  • On the other hand, it does not provide many other entities which are supported by the API: setpoint temperatures, superfreeze switch, vacation mode switch etc

  • Dishwasher door state is unreliable if dishwasher is turned off. OK, maybe dishwasher does not report door status when it is turned off, but at least door sensor should go unavailable when dishwasher power is turned off

  • Dishwasher exposes each program as a separate switch. I have 23 individual switches exposed! Couldn’t this be a Select entity since these switches are mutually exclusive anyway?

Just try the HACS integration.

1 Like

Thanks, I thought this topic is about official integration, so my comments were regarding the official one.

It is. But if you are not happy with it and the HACS one is improving your mentioned points, why not using it?

I guess that the gateway only allows you to connect to other devices like sensors etc… Devices like the washer, dryer, dishwasher, etc. use their own connection. Perhaps a good starting point for a truly local gateway would be this: GitHub - osresearch/hcpy: Python tool to talk to Home Connect appliances over the local network (no cloud required)

2 Likes

In the market potentially for a new dishwasher as ours is playing up.

Top of my list is being able to have HA tell my dishwasher when it is ok to start running based on solar PV output.

Can you confirm that this functionality is available with this component? And is there a particular range or feature enabled models of Bosch or Siemens devices that I need to make sure I select when purchasing?

Thanks
Barry