Issue with Matter on self hosted Homey

After testing Homey for about a week now I run into exacty this issue. Matter-over-Wifi Devices (Shelly Smart Plugs and Tink Basic E27 bulbs) do pair with the Matter Network and then, when handing over to Homey SHS get error Code 0x00ac. Tried it with Devices before paired with Home Assistant and new devices. Currently my Work-around is to have Home Assistant running and pair Matter devices to it (which works without a problem) instead of Homey and then use the HomeAssistant Addon to make them accessible in Homey SHS.
Other then that I have no issues whatsoever with Homey SHS. Even migrating my z2m Setup over by running z2m in a docker container in the same compose stack works perfectly.

Logs from Homey for the pairing Attempt of a Shelly Plug S Gen3 via Matter:

Homey [log][ManagerVirtualDeviceLocal][VirtualDriverMatterLocal:driver] Get learnmode null
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 200
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
Server HTTP GET /manager/thread/active-dataset
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
Homey [log][ManagerApiLocal] IO homey:manager:energy:getLiveReport
Homey [log][ManagerApiLocal] IO homey:manager:energy:getLiveReport → Success 200
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
Homey [log][ManagerMatterLocal] [Pairing:0x1d048836] Start
Homey [log][ManagerMatterLocal] [Pairing:0x1d048836] Got status update: SEARCHING (-0x01, Unknown)
Homey [log][ManagerMatterLocal] Updating PAA certs
Homey [log][ManagerMatterLocal] DCLs: https://on.dcl.csa-iot.org. Git: false
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
Homey [err][ManagerMatterLocal] [Pairing:0x1d048836] Finished with error: Unknown error (Matter code: INTERNAL (0x00ac))
Homey [err][ManagerMatterLocal] [Pairing:0x1d048836] Could not cleanup pairing: Unknown error (Matter code: INTERNAL (0x00ac))
Homey [err][ManagerMatterLocal] [Pairing:0x1d048836] Could not stop pairing: Could not stop pairing (Matter code: INCORRECT_STATE (0x0003))
Homey [err][ManagerMatterLocal] [Pairing:0x1d048836] Failed: Unknown error (Matter code: INTERNAL (0x00ac)) (at stage: unknown)

And the logs of the same attempt from the Shelly Plug

{
  "deviceInfo": {
    "name": null,
    "id": "shellyplugsg3-e4b063e55ce4",
    "mac": "E4B063E55CE4",
    "slot": 0,
    "key": "eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NDc4MTU2ODQsIm1hYyI6IkU0QjA2M0U1NUNFNCIsIm0iOiJTM1BMLTAwMTEyRVUiLCJiIjoiMjQ1MS1Ccm9hZHdlbGwiLCJmcCI6IjA3NjNkZGEyIn0.s_V2vhxAYLjZLR0QsXrNP06dLtKwhzNqiJY6_fExk3FpJCXFRwnIOxxEfR6WTiNfeV_Dh1YHy3SFLOfXv7w4coUui3_BpO0Xb1V8DRpisdsO3uu8PPbEAqNSHadHMxQE",
    "batch": "2451-Broadwell",
    "fw_sbits": "00",
    "model": "S3PL-00112EU",
    "gen": 3,
    "fw_id": "20250924-062730/1.7.1-gd336f31",
    "ver": "1.7.1",
    "app": "PlugSG3",
    "auth_en": false,
    "auth_domain": null,
    "matter": true
  },
  "logs": [
    {
      "data": "Connected.",
      "ts": 1767448557.822,
      "level": 2,
      "fd": 1
    },
    {
      "seq": 178,
      "ts": 1767448557.828,
      "level": 2,
      "data": "shelly_debug.cpp:236    Streaming logs to 192.168.0.20:40826",
      "fd": 2
    },
    {
      "seq": 179,
      "ts": 1767448560.036,
      "level": 2,
      "data": "shelly_notification:164 Status change of switch:0: {\"aenergy\":{\"by_minute\":[0.000,0.000,0.000],\"minute_ts\":1767448560,\"total\":18753.142},\"apower\":0.0,\"current\":0.000,\"freq\":49.95,\"ret_aenergy\":{\"by_minute\":[0.000,0.000,0.000],\"minute_ts\":1767448560,\"total\":0.000},\"voltage\":233.6}",
      "fd": 2
    },
    {
      "seq": 180,
      "ts": 1767448565.015,
      "level": 1,
      "data": "shelly_persistent_c:391 Writing persistent counters, but interval is shorter than 60 sec.",
      "fd": 2
    },
    {
      "seq": 181,
      "ts": 1767448566.084,
      "level": 2,
      "data": "shos_http_client.cp:321 0x3fccdedc: WS ws://192.168.0.236:4:6113/",
      "fd": 2
    },
    {
      "seq": 182,
      "ts": 1767448572.623,
      "level": 2,
      "data": "shos_http_client.cp:656 0x3fccdedc: Finished; bytes 0, code 0, redir 0/3, auth 0, status -10: Host not found",
      "fd": 2
    },
    {
      "seq": 183,
      "ts": 1767448578.525,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 607 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 184,
      "ts": 1767448579.147,
      "level": 2,
      "data": "shos_matter_server.:297 Commissioning started",
      "fd": 2
    },
    {
      "seq": 185,
      "ts": 1767448579.148,
      "level": 2,
      "data": "shos_matter_server.:333 Commissioning window closed",
      "fd": 2
    },
    {
      "seq": 186,
      "ts": 1767448579.149,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 541 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 187,
      "ts": 1767448580.614,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 503 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 188,
      "ts": 1767448580.835,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 138 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 189,
      "ts": 1767448581.346,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 403 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 190,
      "ts": 1767448582.051,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 255 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 191,
      "ts": 1767448582.824,
      "level": 2,
      "data": "shos_matter_server.:352 Fabric updated",
      "fd": 2
    },
    {
      "seq": 192,
      "ts": 1767448582.826,
      "level": 2,
      "data": "shos_dns_sd_respond:236 ws(0x3fcc330c): Announced E4B063E55CE4 any@any (192.168.0.47)",
      "fd": 2
    },
    {
      "seq": 193,
      "ts": 1767448582.827,
      "level": 2,
      "data": "shos_dns_sd_respond:236 ws(0x3fcc330c): Announced E4B063E55CE4 any@any (fe80::e6b0:63ff:fee5:5ce4)",
      "fd": 2
    },
    {
      "seq": 194,
      "ts": 1767448582.828,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 631 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 195,
      "ts": 1767448583.584,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 370 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 196,
      "ts": 1767448584.131,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 490 ms, for event type 2",
      "fd": 2
    },
    {
      "seq": 197,
      "ts": 1767448584.316,
      "level": 2,
      "data": "shos_dns_sd_respond:236 ws(0x3fcc330c): Announced E4B063E55CE4 any@any (192.168.0.47)",
      "fd": 2
    },
    {
      "seq": 198,
      "ts": 1767448584.318,
      "level": 2,
      "data": "shos_dns_sd_respond:236 ws(0x3fcc330c): Announced E4B063E55CE4 any@any (fe80::e6b0:63ff:fee5:5ce4)",
      "fd": 2
    },
    {
      "seq": 199,
      "ts": 1767448584.319,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 172 ms, for event type 2",
      "fd": 2
    },
    {
      "seq": 200,
      "ts": 1767448585.038,
      "level": 2,
      "data": "shos_matter_server.:348 Fabric committed",
      "fd": 2
    },
    {
      "seq": 201,
      "ts": 1767448585.039,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 527 ms, for event type 3",
      "fd": 2
    },
    {
      "seq": 202,
      "ts": 1767448585.222,
      "level": 2,
      "data": "shos_matter_server.:333 Commissioning window closed",
      "fd": 2
    },
    {
      "seq": 203,
      "ts": 1767448585.223,
      "level": 2,
      "data": "shos_matter_server.:257 === Commissioning complete",
      "fd": 2
    },
    {
      "seq": 204,
      "ts": 1767448585.224,
      "level": 0,
      "data": "Matter-DL:1             Long dispatch time: 166 ms, for event type 32781",
      "fd": 2
    },
    {
      "seq": 205,
      "ts": 1767448585.372,
      "level": 2,
      "data": "shos_matter_server.:329 Commissioning window opened",
      "fd": 2
    },
    {
      "seq": 206,
      "ts": 1767448588.007,
      "level": 2,
      "data": "shos_dns_sd_respond:236 ws(0x3fcc330c): Announced E4B063E55CE4 any@any (fe80::e6b0:63ff:fee5:5ce4)",
      "fd": 2
    },
    {
      "seq": 207,
      "ts": 1767448588.085,
      "level": 2,
      "data": "shos_dns_sd_respond:236 ws(0x3fcc330c): Announced E4B063E55CE4 any@any (192.168.0.47)",
      "fd": 2
    },
    {
      "seq": 208,
      "ts": 1767448594.019,
      "level": 2,
      "data": "shos_http_client.cp:321 0x3fcce8c8: WS ws://192.168.0.236:4:6113/",
      "fd": 2
    },
    {
      "seq": 209,
      "ts": 1767448600.623,
      "level": 2,
      "data": "shos_http_client.cp:656 0x3fcce8c8: Finished; bytes 0, code 0, redir 0/3, auth 0, status -10: Host not found",
      "fd": 2
    },
    {
      "seq": 210,
      "ts": 1767448611.786,
      "level": 2,
      "data": "shos_rpc_inst.c:243     Shelly.GetStatus [1138011471@] via HTTP_in GET 192.168.0.236:45164",
      "fd": 2
    },
    {
      "seq": 211,
      "ts": 1767448615.092,
      "level": 0,
      "data": "Matter-SWU:1            No suitable OTA Provider candidate found",
      "fd": 2
    },
    {
      "seq": 212,
      "ts": 1767448620.036,
      "level": 2,
      "data": "shelly_notification:164 Status change of switch:0: {\"aenergy\":{\"by_minute\":[0.000,0.000,0.000],\"minute_ts\":1767448620,\"total\":18753.142},\"apower\":0.0,\"current\":0.000,\"freq\":49.95,\"ret_aenergy\":{\"by_minute\":[0.000,0.000,0.000],\"minute_ts\":1767448620,\"total\":0.000},\"voltage\":233.4}",
      "fd": 2
    },
    {
      "seq": 213,
      "ts": 1767448639.561,
      "level": 2,
      "data": "shos_http_client.cp:321 0x3fccd6c0: WS ws://192.168.0.236:4:6113/",
      "fd": 2
    },
    {
      "seq": 214,
      "ts": 1767448645.623,
      "level": 2,
      "data": "shos_http_client.cp:656 0x3fccd6c0: Finished; bytes 0, code 0, redir 0/3, auth 0, status -10: Host not found",
      "fd": 2
    },
    {
      "seq": 215,
      "ts": 1767448675.864,
      "level": 2,
      "data": "shos_rpc_inst.c:243     Shelly.GetStatus [1152496476@] via HTTP_in GET 192.168.0.236:58168",
      "fd": 2
    },
    {
      "seq": 216,
      "ts": 1767448680.036,
      "level": 2,
      "data": "shelly_notification:164 Status change of switch:0: {\"aenergy\":{\"by_minute\":[0.000,0.000,0.000],\"minute_ts\":1767448680,\"total\":18753.142},\"apower\":0.0,\"current\":0.000,\"freq\":49.95,\"ret_aenergy\":{\"by_minute\":[0.000,0.000,0.000],\"minute_ts\":1767448680,\"total\":0.000},\"voltage\":233.6}",
      "fd": 2
    }
  ]
}

Unfortunately I don’t really see any issues here that would help me explain the error. But maybe someone else sees something.

Thank god. I was really starting to doubt myself.

  • does it matter (pun intended) to add devices via this workaround? Are devices now working with Homey-SHS or working on Homey-SHS via HA?
  • Should it work directly with Homey-SHS or is there a limitation that I am not aware of?
  • Do we know anyone that was able to add matter devices to Homey-SHS?
  • The Devices only work in HA, not in Homey SHS. I use Homeys Home Assistant Addon to get them integrated into Homey SHS for now
  • I think Matter devices should work in Homey SHS, but I currently don’t know if they do at all.

Currently I think the only way of action is to wait and and provide as much information as is requested, unfortunately.

1 Like

You shouldn’t, did you see the post I shared.. there are 2 more with other matter devices including me that can’t get this to work. Seems to be a problem in Homey. By now everyone is working with the Home Assistant Work around I guess. Issue with Matter on self hosted Homey - #17 by Bram_H

1 Like

Did you see this?

1 Like

Yes, although that explains it for the Shelly app? Not in general for homey I think

Yeah… but what if more assume the port is two digits?

Nobody does that (famous last words).

Also, this was a WiFi-issue, Matter works differently.

1 Like

Damn…

Finally had some time to dig a bit further.
To test if my IPv6 Setup, Firewall or mDNS (and what not, Matter is by far more setup demanding then e.g. zigbee) works as intended, I grabbed the HomeAssistant docker Container and the Python Matter Server required to have matter in HA running (NOT VIA ADDON, But as a standalone Container).
Also I grabbed a Smartphone, which was never connected to any Smart Home System at all (a new iPhone 16e, which I just got from work) and logged into the dockerized Home Assistant instance. There I paired the same Shelly Plug (reset the Matter Fabric in the WebUI), the same tink Basic Matter-over-Wifi Bulb (reset via toggeling it on and off five times) AND a new Tink Basic Matter-over-Wifi Bulb (I currently don’t care about Thread setup, which is another, bigger topic at some point).

The hope was, that I could see more detailed logs within HA, if my Network Setup did not work.

ALL of the devices worked without any issue whatsoever in HomeAssistant (dockerized Intance).

I’m still quite sure, that in some way my setup is broken and not Homey SHS, but I can’t really see how to debug this further. Couldn’t find anything in syslog on the docker host, in the dmsg logs (at least nothing which I could link to this issue) and now I’m quite sure, that my IPv6 setup works.

I’m also aware that Athom can’t easily guarantee a working matter setup, as running Homey on your own hardware is completely different then running it on verified hardware.

If anyone has any hint I could try to investigate further, I would appriciate it, otherwise I quite likely will wait for an Homey SHS Update and check if that might have some pointers. (Or I will buy more Zigbee devices, which seem to work very well with z2m).

1 Like

Just to follow your train of thought; why do you now assume that your setup is broken and not Homey-SHS?

From my experience, Matter (over Thread or Wifi) is really tricky if your setup is not correctly configured. Container make Network Config quite tricky, as its the one part that a container cant fully configure in the Image easily and needs config from the host os.

Even when the HomeAssistant Container works, I currently think that Homey and HomeAssistant (or rather python-matter-server, as HA only communicates via WebSocket with it) use different approaches to handle the Network traffic for Matter Devices.

Also, the biggest reason I belive this: I do own a Matter hub (My LG G4 OLED) which should be able to pair with matter devices. Unfortunately I can’t pair any device to LG ThinQ and I assume the underlying reason is my Network setup. Unfortunately I can’t figure out what exactly is not working.