Homey integration for Home Assistant - Now Available! šŸŽ‰

I think I got this figured out now based on your additional feedback. I’ve created a new dev version.

Use v1.1.6-dev.3 to test!


What was happening

  • When two Homey hubs were added, devices could disappear or get ā€œkicked out.ā€

  • Root cause: the integration used the same device registry ID for both hubs, so Home Assistant treated devices from different Homeys as the same device and removed the ā€œotherā€ one during cleanup.

What I changed

  • Device IDs are now scoped per Homey hub, so each Homey keeps its own devices and they no longer collide or get removed.

Result

  • Two Homeys can run side‑by‑side without devices vanishing.

:information_source: If you run into duplicates after updating, it’s just HA seeing the new IDs; you can remove the old device entries once and it should settle.

Also:

  • The invert light temperature toggle now persists correctly in options (was reverting because the value wasn’t stored consistently). So the light temperature inversion setting stays as you set it. But the default config value should now be enough to fix it.
1 Like

Version 1.1.6-dev.3

Fixed! Much appreciated.
Only which part of ā€œno priorityā€ wasn’t clear, Mike? :zany_face::wink:

Oh no :frowning: I have over 300 dead devices after the update, and my new dashboard is also broken.

Sorry, haha. When I found out what the issue actually was I just had to fix it…

1 Like

Seeing is believing :smiley:
I made a split-screen vid to show:
GIF_20260117_211408_780

H.A. → Homey is almost realtime :rocket:

1 Like

Don’t worry!

This is expected after the multi‑Homey fix. It’s not data loss, just new device IDs.

  • Fix: remove the old Homey devices in HA (Devices & Services → Devices → filter Homey → delete old entries), or use entity registry cleanup.

  • After that, update the dashboard to point to the new entities (or re‑use the same entity IDs if they kept).

→ ONLY DO THIS IF YOU ARE CURRENTLY RUNNING THE DEV.3 VERSION AND WANT TO STICK WITH IT!

But!

Nothing has been deleted. I’ve even made sure that dev.2 that worked for you before is usable again. So just remove the integration and install that again if you want to. (Bonus: I made sure that the ā€œtemperatureā€ fix was included in this as well..)

Next steps

We (me…) need to come up with some good idea on how to do this with multi-homey setups. This is not for everyone so I was thinking about having this as a separate branch. But then again people will probably not see that. I’ll have to think about it… And creating a migration script will take forever - I think.

Actually… If I can:

  • Detect old identifiers (DOMAIN, device_id)
  • Convert them to (DOMAIN, homey_id:device_id)
  • Reattach entities to the new device entries

… then a script could work and make that happen during upgrade! I’ll check on that next week.


And also… Be careful using dev branch. Things will break sometimes and things will change here often! This is why all of this is not on the main/stable branch yet :slight_smile:

1 Like

I’ve absolutely no clue about the number of folks using multiple Homeys and H.A.

In my humble opinion you shouldn’t invest too much time in it for now.
We can for example still use Homeylink to sync multiple Homeys by using a ā€˜main’ Homey.

1 Like
Hi Mike, could you please add my washing machine?

"capabilities":[23 items
0:string"onoff"
1:string"WM-prewash"
2:string"WM-soilwash"
3:string"WM-temp"
4:string"WM-rinse"
5:string"WM-spin"
6:string"WM-creasecare"
7:string"WM-steam"
8:string"WM-doorlock"
9:string"measure_WM-tclcount"
10:string"WM-turbowash"
11:string"WM-childlock"
12:string"WM-remotestart"
13:string"WM-operation"
14:string"WM-course"
15:string"alarm_connectivity"
16:string"DEVICE-state"
17:string"measure_remaintime"
18:string"DEVICE-notification"
19:string"DEVICE-error"
20:string"measure_powertoday"
21:string"DEVICE-initialtime"
22:string"meter_power"
]
"capabilitiesObj":{23 items
"onoff":{11 items
"id":string"onoff"
"type":string"boolean"
"iconObj":NULL
"title":string"Eingeschaltet"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":string"Eingeschaltet"
"insightsTitleFalse":string"Ausgeschaltet"
"value":boolfalse
"lastUpdated":dateTue, Jan 20, 2026, 02:58 PM
}
"WM-prewash":{10 items
"id":string"WM-prewash"
"type":string"string"
"iconObj":{2 items
"id":string"49c6befbcce58f59dc32800d629b3a38"
"url":string"/api/icon/fa1f308e-f496-4990-91db-35f983ec8ce7"
}
"title":string"VorwƤsche"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Aus"
"lastUpdated":dateFri, Dec 26, 2025, 02:47 PM
}
"WM-soilwash":{10 items
"id":string"WM-soilwash"
"type":string"string"
"iconObj":{2 items
"id":string"54cce63988ec28017cdb995d8f447464"
"url":string"/api/icon/dcc15a08-0b7b-445b-a1a6-5dafecbcda1c"
}
"title":string"Was programma"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Normal"
"lastUpdated":dateFri, Jan 9, 2026, 01:03 PM
}
"WM-temp":{10 items
"id":string"WM-temp"
"type":string"string"
"iconObj":{2 items
"id":string"363f68662b0856f84792bbd20b2a6ea7"
"url":string"/api/icon/483bbb2b-2528-42ba-8587-04a158d3ea22"
}
"title":string"Temperatur"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"40ā„ƒ"
"lastUpdated":dateTue, Jan 20, 2026, 02:17 PM
}
"WM-rinse":{10 items
"id":string"WM-rinse"
"type":string"string"
"iconObj":{2 items
"id":string"ef1c7cf15f8810fcc1affe96626b32c7"
"url":string"/api/icon/34b44da3-9586-47a5-8dda-65e9cee46d37"
}
"title":string"Spülen"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Normal"
"lastUpdated":dateFri, Jan 9, 2026, 01:03 PM
}
"WM-spin":{10 items
"id":string"WM-spin"
"type":string"string"
"iconObj":{2 items
"id":string"d6932ecedaca653b202209db905a0fd5"
"url":string"/api/icon/01dbcec5-5b09-4159-971d-8a410fd8158e"
}
"title":string"Schleudergeschwindigkeit"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"max."
"lastUpdated":dateTue, Jan 20, 2026, 02:58 PM
}
"WM-creasecare":{10 items
"id":string"WM-creasecare"
"type":string"string"
"iconObj":{2 items
"id":string"30b203f1eaddbeae4d60f96c7a3c91b7"
"url":string"/api/icon/f7b36b29-6a2d-45e7-8d7a-86dfde2f2faf"
}
"title":string"Faltenpflege"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Aus"
"lastUpdated":dateFri, Dec 26, 2025, 02:47 PM
}
"WM-steam":{10 items
"id":string"WM-steam"
"type":string"string"
"iconObj":{2 items
"id":string"6c6ce612195d94f9b2754cda2f7771c8"
"url":string"/api/icon/e12db748-6756-4654-b179-71f666393146"
}
"title":string"Dampf"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Aus"
"lastUpdated":dateFri, Dec 26, 2025, 02:47 PM
}
"WM-doorlock":{10 items
"id":string"WM-doorlock"
"type":string"string"
"iconObj":{2 items
"id":string"4f5e0256943e8c51923a8511f02514ce"
"url":string"/api/icon/32b51dbf-a4de-42a4-9a61-5790a5cde447"
}
"title":string"Tür gesperrt"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Aus"
"lastUpdated":dateTue, Jan 20, 2026, 02:58 PM
}
"measure_WM-tclcount":{13 items
"id":string"measure_WM-tclcount"
"type":string"number"
"iconObj":{2 items
"id":string"90c5df6f77500a2160f4edc81f9768e4"
"url":string"/api/icon/c31a3428-7b7c-4773-9a9e-45294dfb7467"
}
"title":string"Trommelreinigung"
"getable":booltrue
"setable":booltrue
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":NULL
"decimals":int0
"value":int44
"lastUpdated":dateTue, Jan 20, 2026, 01:57 PM
}
"WM-turbowash":{10 items
"id":string"WM-turbowash"
"type":string"boolean"
"iconObj":{2 items
"id":string"aececac7d0876ffa9607e773668ee5ec"
"url":string"/api/icon/01632dbd-b05c-4736-b24e-167957ba6773"
}
"title":string"Turbo Wasch"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":boolfalse
"lastUpdated":dateThu, Jan 2, 2025, 10:15 AM
}
"WM-childlock":{10 items
"id":string"WM-childlock"
"type":string"string"
"iconObj":{2 items
"id":string"63ac8722e02139d444a08d0359b3904f"
"url":string"/api/icon/a6974420-00dc-43d6-a2ba-5e113d976ae8"
}
"title":string"Kindersicherung"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Aus"
"lastUpdated":dateFri, Dec 26, 2025, 02:47 PM
}
"WM-remotestart":{10 items
"id":string"WM-remotestart"
"type":string"boolean"
"iconObj":{2 items
"id":string"a7a2734b0328a351386630dfad31cc0c"
"url":string"/api/icon/68ba90d9-effb-4735-a476-667d607b74fc"
}
"title":string"App start"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":boolfalse
"lastUpdated":dateThu, Jan 2, 2025, 10:15 AM
}
"WM-operation":{11 items
"id":string"WM-operation"
"type":string"enum"
"iconObj":NULL
"title":string"Waschmachine Modus"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"values":[4 items
0:{2 items
"id":string"START"
"title":string"Start Programm"
}
1:{2 items
"id":string"STOP"
"title":string"Stopp Programm"
}
2:{2 items
"id":string"POWER_OFF"
"title":string"Ausschalten"
}
3:{2 items
"id":string"WAKE_UP"
"title":string"Aus Standby holen"
}
]
"value":string"POWER_OFF"
"lastUpdated":dateTue, Jan 20, 2026, 02:58 PM
}
"WM-course":{11 items
"id":string"WM-course"
"type":string"enum"
"iconObj":NULL
"title":string"Wasch programm"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"values":[14 items
0:{2 items
"id":string"AI_COURSE"
"title":NULL
}
1:{2 items
"id":string"COTTON"
"title":NULL
}
2:{2 items
"id":string"EASYCARE"
"title":NULL
}
3:{2 items
"id":string"COTTONPLUS"
"title":NULL
}
4:{2 items
"id":string"DUVET"
"title":NULL
}
5:{2 items
"id":string"MIXEDFABRIC"
"title":NULL
}
6:{2 items
"id":string"SPORTSWEAR"
"title":NULL
}
7:{2 items
"id":string"SPEED14"
"title":NULL
}
8:{2 items
"id":string"TUB_CLEAN"
"title":NULL
}
9:{2 items
"id":string"WOOL"
"title":NULL
}
10:{2 items
"id":string"DELICATE"
"title":NULL
}
11:{2 items
"id":string"ALLERGYSPASTEAM"
"title":NULL
}
12:{2 items
"id":string"TURBO39"
"title":NULL
}
13:{2 items
"id":string"NOT_SELECTED"
"title":string"Nicht ausgewƤhlt"
}
]
"value":string"AI_COURSE"
"lastUpdated":dateSat, Jan 17, 2026, 12:04 PM
}
"alarm_connectivity":{11 items
"id":string"alarm_connectivity"
"type":string"boolean"
"iconObj":NULL
"title":string"Connectivity Alarm"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":string"Disconnected"
"insightsTitleFalse":string"Connected"
"value":boolfalse
"lastUpdated":dateFri, Jan 9, 2026, 11:56 AM
}
"DEVICE-state":{10 items
"id":string"DEVICE-state"
"type":string"string"
"iconObj":{2 items
"id":string"67872105d887d108f89e2fbf0bbd15ee"
"url":string"/api/icon/3d7e789c-9f18-42f1-93d5-2ebdfe862547"
}
"title":string"Status"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Ausschalten"
"lastUpdated":dateTue, Jan 20, 2026, 02:58 PM
}
"measure_remaintime":{15 items
"id":string"measure_remaintime"
"type":string"number"
"iconObj":NULL
"title":string"Verbleibende Zeit"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"min":int0
"max":int1440
"step":int1
"units":string"min"
"decimals":int0
"value":int0
"lastUpdated":dateTue, Jan 20, 2026, 02:57 PM
}
"DEVICE-notification":{10 items
"id":string"DEVICE-notification"
"type":string"string"
"iconObj":{2 items
"id":string"684b2fa5333223bc6298c47442ff4ed6"
"url":string"/api/icon/d552eabb-ccfa-4e69-9940-8fa49e728d2d"
}
"title":string"Letzte Meldung"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"Waschen ist abgeschlossen"
"lastUpdated":dateThu, Jan 1, 2026, 02:25 PM
}
"DEVICE-error":{10 items
"id":string"DEVICE-error"
"type":string"string"
"iconObj":{2 items
"id":string"e3ac9a0f785a56361ce22470596394b1"
"url":string"/api/icon/f18baa90-e1ca-4768-a64f-271a5f9203ac"
}
"title":string"Letzte Fehler"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":NULL
"lastUpdated":dateFri, Sep 12, 2025, 10:44 AM
}
"measure_powertoday":{13 items
"id":string"measure_powertoday"
"type":string"number"
"iconObj":{2 items
"id":string"3c9c730a32102304211b21ac6d7a45a6"
"url":string"/api/icon/b27e902c-6c1c-453b-b828-644f408a5fb7"
}
"title":string"Energieverbrauch heute"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"Wh"
"decimals":int4
"value":float0.5
"lastUpdated":dateTue, Jan 20, 2026, 03:03 PM
}
"DEVICE-initialtime":{10 items
"id":string"DEVICE-initialtime"
"type":string"string"
"iconObj":{2 items
"id":string"d7ab0326bf52d9d8ba8f257330732dc0"
"url":string"/api/icon/c7786b90-a3eb-4ca4-aaf3-aa3ce9d11f9f"
}
"title":string"Initiale Zeit"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":string"53"
"lastUpdated":dateMon, Jan 19, 2026, 02:17 PM
}
"meter_power":{13 items
"id":string"meter_power"
"type":string"number"
"iconObj":NULL
"title":string"Energie"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"kWh"
"decimals":int2
"value":float33.07
"lastUpdated":dateMon, Jan 19, 2026, 04:03 PM

My heat pump is still missing some strings "string"One-time hot water preparation"

"class":string"heatpump"
"capabilities":[26 items
0:string"measure_temperature"
1:string"measure_temperature.normal"
2:string"measure_temperature.comfort"
3:string"measure_temperature.reduced"
4:string"measure_temperature.outside"
5:string"measure_temperature.supply"
6:string"measure_temperature.dhw"
7:string"measure_temperature.dhw_outlet"
8:string"measure_temperature.return"
9:string"measure_temperature.dhw_top"
10:string"measure_temperature.dhw_bottom"
11:string"target_temperature"
12:string"target_temperature.normal"
13:string"target_temperature.comfort"
14:string"target_temperature.reduced"
15:string"target_temperature.dhw"
16:string"target_temperature.dhw2"
17:string"thermostat_mode"
18:string"operating_program"
19:string"circulation_pump"
20:string"comfort_program"
21:string"eco_program"
22:string"hot_water"
23:string"compressor_hours"
24:string"compressor_starts"
25:string"compressor_active"
]
"capabilitiesObj":{26 items
"measure_temperature":{13 items
"id":string"measure_temperature"
"type":string"number"
"iconObj":NULL
"title":string"Temperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":NULL
"lastUpdated":NULL
}
"measure_temperature.normal":{13 items
"id":string"measure_temperature.normal"
"type":string"number"
"iconObj":NULL
"title":string"Tagestemperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":NULL
"lastUpdated":NULL
}
"measure_temperature.comfort":{13 items
"id":string"measure_temperature.comfort"
"type":string"number"
"iconObj":NULL
"title":string"Komfort-Temperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":NULL
"lastUpdated":NULL
}
"measure_temperature.reduced":{13 items
"id":string"measure_temperature.reduced"
"type":string"number"
"iconObj":NULL
"title":string"Nachttemperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":NULL
"lastUpdated":NULL
}
"measure_temperature.outside":{13 items
"id":string"measure_temperature.outside"
"type":string"number"
"iconObj":NULL
"title":string"Außentemperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":float3.4
"lastUpdated":dateWed, Jan 21, 2026, 12:24 PM
}
"measure_temperature.supply":{13 items
"id":string"measure_temperature.supply"
"type":string"number"
"iconObj":NULL
"title":string"Vorlauftemperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":float30.7
"lastUpdated":dateWed, Jan 21, 2026, 12:24 PM
}
"measure_temperature.dhw":{13 items
"id":string"measure_temperature.dhw"
"type":string"number"
"iconObj":NULL
"title":string"Heißwassertemperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":int49
"lastUpdated":dateWed, Jan 21, 2026, 12:29 PM
}
"measure_temperature.dhw_outlet":{13 items
"id":string"measure_temperature.dhw_outlet"
"type":string"number"
"iconObj":NULL
"title":string"Warmwasserausgangstemperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":NULL
"lastUpdated":NULL
}
"measure_temperature.return":{13 items
"id":string"measure_temperature.return"
"type":string"number"
"iconObj":NULL
"title":string"Rücklauftemperatur"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":float28.7
"lastUpdated":dateWed, Jan 21, 2026, 12:24 PM
}
"measure_temperature.dhw_top":{13 items
"id":string"measure_temperature.dhw_top"
"type":string"number"
"iconObj":NULL
"title":string"Warmwasserzylindertemperatur (oben)"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":int49
"lastUpdated":dateWed, Jan 21, 2026, 12:29 PM
}
"measure_temperature.dhw_bottom":{13 items
"id":string"measure_temperature.dhw_bottom"
"type":string"number"
"iconObj":NULL
"title":string"Warmwasserzylindertemperatur (unten)"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"°C"
"decimals":int1
"value":NULL
"lastUpdated":NULL
}
"target_temperature":{16 items
"id":string"target_temperature"
"type":string"number"
"iconObj":NULL
"title":string"Ziel-Temperatur"
"getable":booltrue
"setable":booltrue
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"min":int3
"max":int37
"step":int1
"units":string"°C"
"decimals":int0
"value":int22
"lastUpdated":dateTue, Jan 20, 2026, 06:13 PM
}
"target_temperature.normal":{16 items
"id":string"target_temperature.normal"
"type":string"number"
"iconObj":NULL
"title":string"Target day temperature"
"getable":booltrue
"setable":booltrue
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"min":int3
"max":int37
"step":int1
"units":string"°C"
"decimals":int0
"value":int22
"lastUpdated":dateTue, Jan 20, 2026, 06:14 PM
}
"target_temperature.comfort":{16 items
"id":string"target_temperature.comfort"
"type":string"number"
"iconObj":NULL
"title":string"Komfort-Temperatur"
"getable":booltrue
"setable":booltrue
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"min":int3
"max":int37
"step":int1
"units":string"°C"
"decimals":int0
"value":int22
"lastUpdated":dateSat, Nov 15, 2025, 07:12 AM
}
"target_temperature.reduced":{16 items
"id":string"target_temperature.reduced"
"type":string"number"
"iconObj":NULL
"title":string"Zielnachtstemperatur"
"getable":booltrue
"setable":booltrue
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"min":int3
"max":int37
"step":int1
"units":string"°C"
"decimals":int0
"value":int20
"lastUpdated":dateWed, Jan 22, 2025, 04:05 PM
}
"target_temperature.dhw":{16 items
"id":string"target_temperature.dhw"
"type":string"number"
"iconObj":NULL
"title":string"Heißwassertemperatur"
"getable":booltrue
"setable":booltrue
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"min":int10
"max":int60
"step":int1
"units":string"°C"
"decimals":int0
"value":int48
"lastUpdated":dateMon, Jan 19, 2026, 02:12 PM
}
"target_temperature.dhw2":{16 items
"id":string"target_temperature.dhw2"
"type":string"number"
"iconObj":NULL
"title":string"Heißwassertemperatur 2"
"getable":booltrue
"setable":booltrue
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"min":int10
"max":int60
"step":int1
"units":string"°C"
"decimals":int0
"value":int48
"lastUpdated":dateSat, Oct 25, 2025, 09:20 AM
}
"thermostat_mode":{11 items
"id":string"thermostat_mode"
"type":string"enum"
"iconObj":NULL
"title":string"Thermostat-Modus"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"values":[3 items
0:{2 items
"id":string"dhw"
"title":string"Nur Warmwasser"
}
1:{2 items
"id":string"dhwAndHeating"
"title":string"Heizung und Warmwasser"
}
2:{2 items
"id":string"standby"
"title":string"Standby"
}
]
"value":string"dhwAndHeating"
"lastUpdated":dateWed, Jan 22, 2025, 04:05 PM
}
"operating_program":{11 items
"id":string"operating_program"
"type":string"enum"
"iconObj":{2 items
"id":string"609c6201fb1a6de8f04a50cd648d5ab4"
"url":string"/api/icon/8caa4c0e-5c49-4bd9-885f-8ce1c72393c6"
}
"title":string"Heating program"
"getable":booltrue
"setable":boolfalse
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"values":[7 items
0:{2 items
"id":string"comfort"
"title":string"Komfortbetrieb"
}
1:{2 items
"id":string"eco"
"title":string"Energiesparmodus"
}
2:{2 items
"id":string"fixed"
"title":string"Feste"
}
3:{2 items
"id":string"normal"
"title":string"Tagesbetrieb"
}
4:{2 items
"id":string"reduced"
"title":string"Reduziert"
}
5:{2 items
"id":string"heatpump"
"title":NULL
}
6:{2 items
"id":string"standby"
"title":string"Standby"
}
]
"value":string"normal"
"lastUpdated":dateSat, Nov 15, 2025, 07:17 AM
}
"circulation_pump":{11 items
"id":string"circulation_pump"
"type":string"boolean"
"iconObj":{2 items
"id":string"3a0ba87d2c43a0ab3a6048cfe56f7293"
"url":string"/api/icon/5c5e847c-067a-486f-ab0d-b6f93e1298bf"
}
"title":string"Heizkreispumpe"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":booltrue
"lastUpdated":dateMon, Sep 22, 2025, 01:17 AM
}
"comfort_program":{10 items
"id":string"comfort_program"
"type":string"boolean"
"iconObj":{2 items
"id":string"14d127dee29d837524b6904262443d59"
"url":string"/api/icon/0fe3ab31-941d-4290-af90-97f71013b627"
}
"title":string"Komfortprogramm"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":boolfalse
"lastUpdated":dateSun, Nov 30, 2025, 05:36 PM
}
"eco_program":{10 items
"id":string"eco_program"
"type":string"boolean"
"iconObj":{2 items
"id":string"70c862a2b09b425e29081e4ae987fcb1"
"url":string"/api/icon/899b092a-1b0b-48cd-be94-d63ae7b1e0c4"
}
"title":string"Ɩkologisch"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":boolfalse
"lastUpdated":dateSat, Nov 15, 2025, 07:08 AM
}
"hot_water":{10 items
"id":string"hot_water"
"type":string"boolean"
"iconObj":{2 items
"id":string"330cc34bd3b67d3e00ad57ac6d7d8bb5"
"url":string"/api/icon/9da7cf3a-6a78-4892-9e51-a3e409bc4825"
}
"title":string"Einmalige Warmwasserbereitung"
"getable":booltrue
"setable":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":boolfalse
"lastUpdated":dateThu, Jan 15, 2026, 08:32 PM
}
"compressor_hours":{11 items
"id":string"compressor_hours"
"type":string"number"
"iconObj":{2 items
"id":string"0683f6f75b758b1b4c44b9369859426b"
"url":string"/api/icon/e151ca8b-3076-4581-88f3-8436b3a17292"
}
"title":string"Kompressor-Stunden"
"getable":booltrue
"setable":boolfalse
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":string"h"
"value":float14230.1
"lastUpdated":dateWed, Jan 21, 2026, 12:29 PM
}
"compressor_starts":{11 items
"id":string"compressor_starts"
"type":string"number"
"iconObj":{2 items
"id":string"0683f6f75b758b1b4c44b9369859426b"
"url":string"/api/icon/2d72859a-463d-48f1-81e1-1efd0c3f8376"
}
"title":string"Kompressor beginnt"
"getable":booltrue
"setable":boolfalse
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"units":NULL
"value":int3139
"lastUpdated":dateTue, Jan 20, 2026, 06:19 PM
}
"compressor_active":{11 items
"id":string"compressor_active"
"type":string"boolean"
"iconObj":{2 items
"id":string"0683f6f75b758b1b4c44b9369859426b"
"url":string"/api/icon/f7f046e8-6230-4dc1-9c97-e914f8a4192d"
}
"title":string"Kompressor-Status"
"getable":booltrue
"setable":boolfalse
"insights":booltrue
"insightsTitleTrue":NULL
"insightsTitleFalse":NULL
"value":booltrue
"lastUpdated":dateTue, Jan 20, 2026, 06:19 PM




Hi Joe!

I’ve added these in the new dev and beta release. Will post an update about it here as well.

Hi everyone! :waving_hand:

I’ve just published a new beta for the Homey integration: v1.1.6-beta.1.

I’d love for you to try it out and if everything works as expected, I’ll promote it to the main branch.

Release: Release v1.1.6-beta.1 Ā· ifMike/homeyHASS Ā· GitHub

You can find it in HACS - Just choose redownload and choose the right version.

Highlights

  • Multi-homey support: safe for single-homey installs; adds hub scoping when a second Homey is present

  • New option: toggle to expose settable string capabilities as editable text inputs (optional)

  • Entity unique IDs are now scoped per hub to prevent collisions

  • Expanded capability coverage (text inputs, enum/string selects, extra switches)

  • CI now enforces syntax, lint, type checks, tests, and HACS validation

  • Light temperature inversion option (warm/cold reversal fixes)

  • Generic sensors for getable numeric/string capabilities beyond measure_/meter_

What multi‑homey means

  • Single Homey (default): no change - everything works as before

  • Multiple Homeys: when you add a second hub, entities are automatically re‑scoped so devices from different hubs don’t conflict (you might see entity IDs update once)

Fixes (there are more… but here are some)

  • Prevent duplicate entity warnings for sensors in multi‑homey setups

  • Heat pump boolean entities restored (compressor_active, circulation_pump, hot_water)

  • Curtain stop error on enum-based covers

  • Service setup error caused by vol import scoping

  • Light inversion toggle now persists correctly

.. and I’ve added a bunch of fixes to capabilities including the ones you’ve all posted here.

2 Likes

Mike, I downloaded the update. The heat pump is working fine so far. The light temperature is also okay. The problem is, after every update, all my devices are listed twice! That’s almost 700 devices now :(. Quite a few devices are still missing from the washing machine list (e.g., the status).

With every update, it always imports all my devices, regardless of what I selected previously.

For ā€œall devices listed twice after every updateā€

That usually happens when entity unique_ids change between versions, so Home Assistant keeps the old entities and adds new ones. I’ve recently changed unique‑ID logic (hub‑scoped IDs), which can trigger duplicates if HA still has the old registry entries.

What you can do:

  • Best fix: remove the Homey integration in ā€œDevices and servicesā€ and add it again (clears old entity registry for the integration).

  • Alternative: delete old entities in Settings → Devices & Services → Entities, then reload the integration.

Please let me know how it goes :slight_smile: If not, then I will implement the migration I’ve been working on.

I deleted all duplicates manually. Could you add a search function to the integration? It’s very tedious to find the right ones in larger installations. I don’t want all devices in HA.

You should not be afraid to delete the integration. Nothing will go missing. Just delete, restart and just add it again and the dashboards will be the same as before. This is by far the easiest way to ā€œresetā€.

It’s not possible to add a search function as this is a Home Assistant limitation. Trust me, I’ve tried.
The best way is actually to add them all, then under ā€œEntitiesā€ you filter and select (you can search there) for the devices you don’t want and just hide/disable them.

Either way, I have created a migration so that if this happens again then it will fix itself in the future

Everything’s fine, Mike. You’re doing a great job! Could you fix my washing machine too?

Quick fixes. Should have resolved all errors in build: v1.1.6-beta.2
Check the release notes:

Strings visibility (important)

  • If you can’t see certain status/notification strings, open Homey → Configure → Connection & Polling and set the string toggles.
  • If you see new string sensors you don’t want, disable the read-only strings toggle.
  • Note: enabling editable text inputs disables the read-only sensors to avoid duplicates.

Because:

Some devices expose status/notification fields as string capabilities, and those are not standard sensors, so they only appear if the string toggles are enabled in settings.
This actually resolved an issue I had myself with a similar device. Try it and see if it was the same for you. Also, it’s enabled to read-only by default now!

EDIT: I just tried this with both my own Bosch washing machine and dryer. It works (for me..)

  • Boolean capabilities (alarm_contact, remote_control_active, remote_control_start_allowed) → supported as binary sensors.

  • String capabilities (bshc_string.remaining_time, bshc_string.progress) → supported via the string toggles (read‑only sensors by default, or editable text if enabled). Those are not ā€œsettableā€.