Home Connect Direct Binding (no cloud)

just to confirm that the tool is running fine with the now updated node version v22.
I uploaded the profiles. Regarding the detected channels the result is the same: Washer and dryer are recognized and the status works fine. Hood, hob and oven are generic devices without channels. I guess that’s the expected behavior?

For my needs that’s totally fine, as at the moment the only use case is to let Alexa shout when the laundry needs manual action.
So thank you very much for the nice Christmas present.

Here is a small interim release that fixes a bug.

org.openhab.binding.homeconnectdirect-4.3.0-2025-01-02-15-13.jar

Updates:

  • Fix: Dispose websocket clients
  • Improved error messages
5 Likes

Just installed it and all devices were immediately online :+1:

1 Like

Hey @jb4711,

the new version was running over night without any problems. The disposed websocket problem seams to be solved! Thanks!

1 Like

Here we go:

2025-01-12
org.openhab.binding.homeconnectdirect-4.3.0-2025-01-12-10-13.jar

Updates:

  • Added hood support
  • Added cooktop support
  • Fixed oven door state
  • Added ARM (32-bit) support (for TLS connection)
  • Improved selected and active program channel labels (dynamic description)
5 Likes

For my washing machine the Progress State mostly never reach 100% using the direct binding.
When I compare Washing machine progress state with the cloud binding I see the progress in cloud is always 1 (100%) when the program is completed.

For dishwasher it is working well.
Dryer is always 0%

Any idea?

Yesterday I tried to add dynamic channels to my oven.
I added two channels which I where by default available in the old homeconnect addon:

Thing homeconnectdirect:oven:siemens-hn678g4s6          "Siemens Backofen"  [ haId = "SIEMENS-HN678G4S6-XXXXXXXXXXX", address = "192.168.178.40", connectionRetryDelay = 1 ] {
    Channels:
        Type number :    currentCavityTemperature       "Temperature"           [ eventKey = "Cooking.Oven.Status.CurrentCavityTemperature" ] 
        Type number :    setpointTemperature            "Set Temperature"       [ eventKey = "Cooking.Oven.Option.SetpointTemperature" ]
}

I followed the instructions here:

The event key I took from /ro/allMandatoryValues

{
    "name": "Cooking.Oven.Status.CurrentCavityTemperature",
    "value": 24
  },

I also see in the log that the temperature changes with this event key:

But the value in the channel stays “UNDEF”. No temperature.

Can someone help me what is wrong in my thing definition?

Hi @jb4711,
this is really a great help as the cloud based binding went sour after the single sign-on change.
I was able to install it without problems for my dishwasher, oven and CookIt (took a while, though).
Some observations and polite requests:

  • I do have a combined Fridge/Freezer, for which I also got a profile. However, I was not able to even add it as a generic item. Error message se below. Any ideas? In the cloud based binding it worked fine with temparature settings, door state etc.
  • Also for the oven, the given channels work fine. However, in the cloud based binding I was also able to get the oven temperature, which was quite helpful. Any idea how to add this channel?
  • Minor hint: In your documentation you use a map file “contact.map”, which is not defined
2025-01-25 19:54:27.936 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'homeconnectdirect:generic:BOSCH-KGF56PI40' changed from UNKNOWN to OFFLINE (COMMUNICATION_ERROR): Connect Timeout

Thanks again for your effort!
Thomas

Hi Oliver,

everything actually looks great. Could you please send me the item configuration.

Jonas

Hi Thomas,

Can you please share your thing and item configuration via PM. If you have a log (Home Connect Binding Web UI), that would be great as well.

I will try to add the temperature channel on the weekend. Will let you know.

Thanks for the hint. Will change it.

The corresponig item look like this:

Number:Temperature   HC_Oven_Temperature  "Backofen Temperatur [%.f °C]"             {channel="homeconnectdirect:oven:siemens-hn678g4s6:currentCavityTemperature"}

Same as in the old Addon but the channel is adapte to the dynamic channel.

When I switch the oven on I see in the addon log:

But in the openhab log it says:

2025-01-30 19:42:34.732 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'HC_Oven_Temperature' updated to UNDEF

2025-01-30 19:42:43.921 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'HC_Oven_Temperature' updated to UNDEF

strange… :slight_smile:

Hi Stefan,

yes, the behavior of the washing machine is the same for me. I took a look at the logic in the “old” cloud-based binding. There is also a fix built in, when the program is “Finished”, the progress is set to 100%. The washing machines simply send it incorrectly. But I will also correct it in the new binding in the next version. Until now, I had always solved it via a rule. But that’s stupid and I’m going to solve it directly in the binding.

rule "Washer reset timer etc."
when
    Item Washer_OperationState received update "Finished"
then
    Washer_RemainingProgramTimeState.postUpdate(0)
    Washer_ProgramProgressState.postUpdate(100)
end

What do you mean by that? Is it not working at all? Can you please send me (via private message) the logs.

Thank you
Jonas

Hi Oliver,

*** EDIT ***
Using a different thing id for the manually defined items does not seem to work after all. Doing it like this did work for the added channels (in the thing file) but the Channels of the thing defined in the UI did not update anymore…
I have now added the channels in the UI and not defining them in a things file. This seems to work…

Cheers,
Matt

Hey Matt,
thank you for that hint. Meanwhile got a “test version” from @jb4711, with a fix.
Its working now! I guess we will see an update soon :slight_smile:

1 Like

HI @jb4711,

I just tried from scratch to add the FridgeFreezer again - and it worked now. For whatever reason. So I now have a generic thing online. However, it only gives me one item “homeconnectdirect:generic:BOSCH-KGF56PI40:buttonVolume”. It would be great to have all the items available as in the cloud based binding:

Contact Refrigerator_Door_State "Refrigerator_Door_State [%d]" (gRefrigerator)                      { channel="homeconnect:fridgefreezer:api_bridge_at_home:fridgefreezer1:door_state" }
Number  Refrigerator_Temperature "Refrigerator_Temperature [%d °C]"  (gRefrigerator)                   { channel="homeconnect:fridgefreezer:api_bridge_at_home:fridgefreezer1:setpoint_temperature_refrigerator" }
Switch  Refrigerator_Super_Mode "Refrigerator_Super_Mode[%d]" (gRefrigerator)                       { channel="homeconnect:fridgefreezer:api_bridge_at_home:fridgefreezer1:super_mode_refrigerator" }
Number   Refrigerator_Freezer_Temperature "Refrigerator_Freezer_Temperature [%d °C]"  (gRefrigerator)  { channel="homeconnect:fridgefreezer:api_bridge_at_home:fridgefreezer1:setpoint_temperature_freezer" }
Switch Refrigerator_Freezer_Super_Mode "Refrigerator_Freezer_Super_Mode[%d]" (gRefrigerator)        { channel="homeconnect:fridgefreezer:api_bridge_at_home:fridgefreezer1:super_mode_freezer" }

I could also send you the Fridgefreezer HomeConnect Profile, if it helps.
Thanks for all your effort!
Thomas

Hi Thomas,

Nice that it works. Can you please send me the log from the Home Connect Console. Then I’ll implement your channels. I don’t think it should be too much trouble. Just need the log files, otherwise I’ll have to guess too much. Please send me a private message.

Thank you
Jonas

1 Like

Hi Jonas,

I hope this email reaches you. Thanks for your support, highly appreciated!

Enclosed you will find two logs:

  • The fridge log: I played around with the settings for the fridge and the freezer to provoke (hopefully) all the channels which are available
  • The oven log: The same here. There are some channels, which are not yet available in your binding. I would be specially interested getting the oven temperature. I did not see the oven temperature in the log, though, even though it is available in the cloud. Surprisingly I found the meat probe temperature (Cooking.Oven.Status.CurrentMeatprobeTemperature), which would be also very interesting to have.

Thanks again for your effort!

Thomas

(attachments)

homeconnectdirect-oven-bosch-hsg636xs6_2025-02-15_09-24-56.log (38 KB)
homeconnectdirect-fridge-freezer-bosch-kgf56pi40_2025-02-15_09-24-38.log (13.1 KB)

Today I’ve tried this new binding. Setup was a breeze. Well done jb4711!

2 small points:

  1. Thing example
Thing homeconnectdirect:oven:siemens-hn678g4s6          "Oven"            [ haId = "SIEMENS-HN678G4S6-000000000000", address = "10.168.2.245", connectionRetryDelay = 1 ] {
    Channels:
        Type number     :    currentCavityTemperature   "Temperature"     [ eventKey = "Cooking.Oven.Status.CurrentCavityTemperature" unit = "°C" ]
}

, unit = “°C” : The , is missing

  1. Program list
    The program lists from my 2 ovens are partly in German and English. Is it possible to set them all to Dutch or English?