Skip to content

fix: complete VRF device_info fix started in #338 — sub-units still share one HA device - #454

Open
ItayGo wants to merge 1 commit into
RobHofmann:masterfrom
ItayGo:fix/vrf-device-info
Open

ItayGo wants to merge 1 commit into
RobHofmann:masterfrom
ItayGo:fix/vrf-device-info

Conversation

@ItayGo

@ItayGo ItayGo commented May 22, 2026

Copy link
Copy Markdown

Problem

For Gree multi-split VRF gateways (one WiFi module controlling multiple indoor units, e.g. GR-Gcloud), all indoor units were grouped under a single shared HA device. This made it impossible to assign individual units to different rooms/areas.

Root cause: device_info used _mac_addr (the gateway MAC, shared by all sub-units) instead of _sub_mac_addr (the unique per-unit sub-MAC).

This is a continuation of #338, which fixed unique_id in climate.py to use _sub_mac_addr but left device_info in climate.py and both unique_id + device_info in entity.py still using the gateway MAC.

Changes

  • climate.py: device_info identifiers now use self._sub_mac_addr instead of self._mac_addr
  • entity.py: both _attr_unique_id and device_info identifiers now use self._device._sub_mac_addr

Result

Each VRF indoor unit appears as its own separate HA device and can be assigned to its own room/area independently.

Migration note for existing users

If you already have a multi-split VRF setup configured, after updating you will see a lingering ghost shared device (the old combined device with the gateway MAC). HA will keep it around because it was previously in your device registry.

To clean it up: go to Settings → Devices & Services → Devices, find the old shared Gree device (it will have no active entities), and delete it. The 5 individual devices will remain unaffected.

Tested on

  • Gree VRF gateway (GR-Gcloud type) with 5 indoor units, sub-MACs in subMAC@gatewayMAC format
  • Home Assistant OS 17.3 / HA Core 2026.5.3

In a multi-split setup (subMAC@gatewayMAC), all indoor units share
the same device_info identifier (the gateway MAC). HA treats them
as entities of one single device, so assigning the device to an
area moves all units together — it is impossible to put each unit
in its own room.

The same bug affects unique_id in GreeEntity, which also used the
gateway MAC, causing entity conflicts across units.

Fix: use _sub_mac_addr (the indoor unit MAC) as the device
identifier and unique_id base in both climate.py and entity.py.
Each indoor unit now registers as its own independent HA device
and can be assigned to a different area individually.

Note: after deploying this fix, delete the old shared ghost device
that HA will leave behind in Settings > Devices.
@RobHofmann

Copy link
Copy Markdown
Owner

Looking for people who can test this one (I don't have this feature)

@meirlo

meirlo commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

@RobHofmann I can confirm this one works. Tested on a Gree GR-Gcloud VRF gateway fronting 4 indoor units (v1/ECB, current HA stable): after applying it, each indoor unit shows up as its own HA device and can be assigned to a separate area independently. No issues found — good to merge from my side.

@ItayGo thanks for this fix! I've built two related VRF PRs on top of the same setup — #507 (reliable discovery of all sub-units) and #508 (stops commands bouncing back on stale gateway reads + hides switches the units don't implement). If you have a moment, would you be willing to test them on your VRF gateway too? Extra confirmation on real hardware would help them land.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

help wanted Extra attention is needed to test This issue needs testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants