Yes, that would be great. There are also some MDNS changes that went out last night that might help a little as well with reconnections, i’m testing right now and will push something later.
I just tested the 2 buttons of my Switchbot Hub 2 and it does properly trigger a DSL rule using the trigger channels of the binding.
Each time, the event value is
{"newPosition":1.0}
. Any idea what could be position 0.0 and position 1.0 ? What defines the Matter standard for that ?
From the matter 1.3 cluster specification
1.13.6.3.1. NewPosition Field
This field SHALL indicate the new value of the CurrentPosition attribute, i.e. while pressed.
GSON turns numbers into doubles i believe, so really this should be an Integer, but its the position number the switch is now in, with 0.0 being the first position, the constraint in the spec is
0 to NumberOfPositions -1 .
We should probably come back to this Cluster and maybe clean up the trigger payload be better suited for rules, i’ll have to give that some thought as implemented just the basics. I mostly set triggers up to get the event type, like long vs short press, number of clicks, etc…
Question, does the currentPosition channel change as well ? I would think it does, but i can’t remember on my switch.
Hi Dan, I am getting this error for a GE Cync 6" downlight. I have 3 others that work fine. It did connect and work for about 4 hours and then the light went offline.
Mike
2024-12-11 13:03:18.895 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: New exchange channel: udp://fd3a:77cd:2952:1:c6e7:aeff:fe03:cd0e:5540 on session secure/49580 protocol: 1 id: 12310 session: secure/49580 peerSessionId: 49580 active threshold ms: 4000 active interval ms: 300 idle interval ms: 500 maxTransmissions: 5 useMrp: true
2024-12-11 13:03:18.896 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « id: 49580/12310/137779736 type: 1/5 acked: undefined reqAck: true duplicate: false payload: 1526004c1f8c6124ff0b18
2024-12-11 13:03:18.897 [TRACE] [ternal.client.MatterWebsocketService] - InteractionMessenger: Received DataReport chunk with 0 attributes and 0 events, suppressResponse: undefined, moreChunkedMessages: undefined, subscriptionId: 1636573004
2024-12-11 13:03:18.898 [TRACE] [ternal.client.MatterWebsocketService] - ExchangeManager: Message » id: 49580/12310/45098577 type: 1/1 acked: 137779736 reqAck: true duplicate: false payload: 1524000024ff0c18
2024-12-11 13:03:18.899 [TRACE] [ternal.client.MatterWebsocketService] - InteractionClient: Subscription result empty for subscription ID 1636573004
2024-12-11 13:03:18.972 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « id: 49580/12310/137779737 type: 0/16 acked: 45098577 reqAck: false duplicate: false payload:
2024-12-11 13:03:22.346 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: New exchange channel: udp://fd7b:782b:a3d0::ee23:ce72:e57a:e61c:5540 on session secure/49581 protocol: 1 id: 29340 session: secure/49581 peerSessionId: 49581 active threshold ms: 4000 active interval ms: 1100 idle interval ms: 3300 maxTransmissions: 5 useMrp: true
2024-12-11 13:03:22.347 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « id: 49581/29340/189037062 type: 1/5 acked: undefined reqAck: true duplicate: false payload: 15260078897d5824ff0118
2024-12-11 13:03:22.348 [TRACE] [ternal.client.MatterWebsocketService] - InteractionMessenger: Received DataReport chunk with 0 attributes and 0 events, suppressResponse: undefined, moreChunkedMessages: undefined, subscriptionId: 1484622200
2024-12-11 13:03:22.348 [TRACE] [ternal.client.MatterWebsocketService] - ExchangeManager: Message » id: 49581/29340/71928134 type: 1/1 acked: 189037062 reqAck: true duplicate: false payload: 1524000024ff0c18
2024-12-11 13:03:22.349 [TRACE] [ternal.client.MatterWebsocketService] - InteractionClient: Subscription result empty for subscription ID 1484622200
2024-12-11 13:03:22.604 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « id: 49581/29340/189037063 type: 0/16 acked: 71928134 reqAck: false duplicate: false payload:
2024-12-11 13:03:22.701 [TRACE] [ternal.client.MatterWebsocketService] - MdnsScanner: Sending 1 query records for 1 queries with 0 known answers. Re-Announce in 12 seconds
2024-12-11 13:03:23.433 [DEBUG] [ternal.client.MatterWebsocketService] - Controller: Error executing function getNode:
2024-12-11 13:03:23.434 [DEBUG] [ternal.client.MatterWebsocketService] - Controller: Stack trace: Error
2024-12-11 13:03:23.435 [TRACE] [ternal.client.MatterWebsocketService] - none: at StandardTimer.eval [as callback] (webpack://matter-server/./node_modules/@matter/general/dist/cjs/util/DataReadQueue.js?:53:24)
2024-12-11 13:03:23.436 [TRACE] [ternal.client.MatterWebsocketService] - matter: Sending response: {"type":"response","message":{"type":"resultError","id":"1dc4d6a0-6251-43c9-a4f9-92fadcd214e2","result":"undefined","error":""}}
2024-12-11 13:03:23.436 [TRACE] [ternal.client.MatterWebsocketService] - none: at Timeout.eval (webpack://matter-server/./node_modules/@matter/general/dist/cjs/time/Time.js?:134:12)
2024-12-11 13:03:23.437 [TRACE] [ternal.client.MatterWebsocketService] - none: at listOnTimeout (node:internal/timers:573:17)
2024-12-11 13:03:23.438 [DEBUG] [al.controller.MatterControllerClient] - onWebSocketText {"type":"response","message":{"type":"resultError","id":"1dc4d6a0-6251-43c9-a4f9-92fadcd214e2","result":"undefined","error":""}}
2024-12-11 13:03:23.439 [TRACE] [ternal.client.MatterWebsocketService] - none: at process.processTimers (node:internal/timers:514:7)
2024-12-11 13:03:23.440 [DEBUG] [ternal.client.MatterWebsocketService] - Controller: Error name: Error
2024-12-11 13:03:23.440 [DEBUG] [al.controller.MatterControllerClient] - result type: resultError
2024-12-11 13:03:23.441 [DEBUG] [ternal.client.MatterWebsocketService] - Controller: Full error object: {"stack":"Error\n at StandardTimer.eval [as callback] (webpack://matter-server/./node_modules/@matter/general/dist/cjs/util/DataReadQueue.js?:53:24)\n at Timeout.eval (webpack://matter-server/./node_modules/@matter/general/dist/cjs/time/Time.js?:134:12)\n at listOnTimeout (node:internal/timers:573:17)\n at process.processTimers (node:internal/timers:514:7)"}
2024-12-11 13:03:23.442 [DEBUG] [ternal.client.MatterWebsocketService] - Controller: NoResponseTimeoutError
2024-12-11 13:03:23.443 [TRACE] [ternal.client.MatterWebsocketService] - none: at StandardTimer.eval [as callback] (webpack://matter-server/./node_modules/@matter/general/dist/cjs/util/DataReadQueue.js?:53:24)
2024-12-11 13:03:23.444 [TRACE] [ternal.client.MatterWebsocketService] - none: at Timeout.eval (webpack://matter-server/./node_modules/@matter/general/dist/cjs/time/Time.js?:134:12)
2024-12-11 13:03:23.445 [TRACE] [ternal.client.MatterWebsocketService] - none: at listOnTimeout (node:internal/timers:573:17)
2024-12-11 13:03:23.446 [TRACE] [ternal.client.MatterWebsocketService] - none: at process.processTimers (node:internal/timers:514:7)
2024-12-11 13:03:23.441 [DEBUG] [r.internal.handler.ControllerHandler] - Could not update node 11702867703668416211
java.util.concurrent.CompletionException: java.lang.Exception:
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:347) ~[?:?]
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:636) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162) ~[?:?]
at org.openhab.binding.matter.internal.client.MatterWebsocketClient.lambda$1(MatterWebsocketClient.java:253) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: java.lang.Exception:
... 7 more
2024-12-11 13:03:23.449 [DEBUG] [.matter.internal.handler.NodeHandler] - setEndpointStatus OFFLINE COMMUNICATION_ERROR java.lang.Exception: 11702867703668416211
==> /var/log/openhab/events.log <==
2024-12-11 13:03:23.452 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:queen:11702867703668416211' changed from UNKNOWN (NOT_YET_READY): Waiting for data to OFFLINE (COMMUNICATION_ERROR): java.lang.Exception:
==> /var/log/openhab/openhab.log <==
2024-12-11 13:03:26.479 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: New exchange channel: udp://fd3a:77cd:2952:1:3613:43ff:fe94:63e:5540 on session secure/49617 protocol: 1 id: 53153 session: secure/49617 peerSessionId: 49617 active threshold ms: 4000 active interval ms: 300 idle interval ms: 500 maxTransmissions: 5 useMrp: true
2024-12-11 13:03:26.480 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « id: 49617/53153/159720157 type: 1/5 acked: undefined reqAck: true duplicate: false payload: 1526006cca829724ff0118
2024-12-11 13:03:26.480 [TRACE] [ternal.client.MatterWebsocketService] - InteractionMessenger: Received DataReport chunk with 0 attributes and 0 events, suppressResponse: undefined, moreChunkedMessages: undefined, subscriptionId: 2541931116
2024-12-11 13:03:26.481 [TRACE] [ternal.client.MatterWebsocketService] - ExchangeManager: Message » id: 49617/53153/160123176 type: 1/1 acked: 159720157 reqAck: true duplicate: false payload: 1524000024ff0c18
2024-12-11 13:03:26.481 [TRACE] [ternal.client.MatterWebsocketService] - InteractionClient: Subscription result empty for subscription ID 2541931116
2024-12-11 13:03:26.510 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « id: 49617/53153/159720158 type: 0/16 acked: 160123176 reqAck: false duplicate: false payload:
2024-12-11 13:03:26.514 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: New exchange channel: udp://fd3a:77cd:2952:1:3613:43ff:fe94:1f04:5540 on session secure/49641 protocol: 1 id: 25005 session: secure/49641 peerSessionId: 49641 active threshold ms: 4000 active interval ms: 300 idle interval ms: 500 maxTransmissions: 5 useMrp: true
2024-12-11 13:03:26.514 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « id: 49641/25005/88533165 type: 1/5 acked: undefined reqAck: true duplicate: false payload: 152600686791c324ff0118
2024-12-11 13:03:26.515 [TRACE] [ternal.client.MatterWebsocketService] - InteractionMessenger: Received DataReport chunk with 0 attributes and 0 events, suppressResponse: undefined, moreChunkedMessages: undefined, subscriptionId: 3281086312
2024-12-11 13:03:26.516 [TRACE] [ternal.client.MatterWebsocketService] - ExchangeManager: Message » id: 49641/25005/256247949 type: 1/1 acked: 88533165 reqAck: true duplicate: false payload: 1524000024ff0c18
2024-12-11 13:03:26.516 [TRACE] [ternal.client.MatterWebsocketService] - InteractionClient: Subscription result empty for subscription ID 3281086312
2024-12-11 13:03:26.532 [TRACE] [ternal.client.MatterWebsocketService] - MessageExchange: Message « id: 49641/25005/88533166 type: 0/16 acked: 256247949 reqAck: false duplicate: false payload:
Can you ping the light , specifically its IPV6 address? The logs show the thing as not reachable, i’m guessing you are seeing this timeout error every 5 mins as it tries to reconnect ? If all else fails, can you power cycle the device or at least force it to connect to wifi again? I realize this might be difficult in a recessed ceiling light. I didn’t know GE was selling matter recessed lighting, thats great. I think one issue with in wall or in ceiling wifi devices is they are often encased in a metal ballast, then drywall, etc… and the connection can get spotty, but that may or may not be the issue here.
I discovered a new problem after putting my item (and channel links) in a config file.
Now at OH startup, all (or almost all) of my Matter items are NULL.
If I restart the matter binding, then the items are set.
Maybe the problem is when the items are loaded after the binding is started.
Maybe the REFRESH command for channel is not well implemented ?
I just pushed a new update which handles REFRESH in a standard way across all channels/endpoints. Maybe this fixes the issue? while i keep my items in files, i mange things through the UI, so have not tested file based things yet with the binding.
Does not resolve the problem.
I do not think that the problem is due to items not yet loaded because I can see the matter binding started late this time and items were already loaded.
Maybe rather something related to dynamic creation of thing types ?
I will add logs and log if the channel is linked when it is updated.
One thing that is unexpected is that bridged endpoint things are coming ONLINE before their bridge thing:
2024-12-14 12:53:47.043 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:openhab:hubSwitchbot' changed from UNKNOWN (NOT_YET_READY): Waiting for data to UNKNOWN (NOT_YET_READY): Node Reconnecting
2024-12-14 12:53:51.220 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:bridge-endpoint:openhab:hubSwitchbot:temperature' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2024-12-14 12:53:51.251 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:bridge-endpoint:openhab:hubSwitchbot:humidite' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2024-12-14 12:53:51.282 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:bridge-endpoint:openhab:hubSwitchbot:boutons' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2024-12-14 12:53:51.344 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2024-12-14 12:53:51.384 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus2' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2024-12-14 12:53:51.414 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:bridge-endpoint:openhab:hubSwitchbot:outdoorMeter' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2024-12-14 12:53:51.461 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'matter:node:openhab:hubSwitchbot' changed from UNKNOWN (NOT_YET_READY): Node Reconnecting to ONLINE
This is the same when I stop and then start the binding, but this time the items are set.
I added a DEBUG log in method updateState class MatterBaseThingHandler.
public void updateState(Integer endpointNumber, ChannelTypeUID channelTypeUID, State state) {
ChannelGroupUID channelGroupUID = new ChannelGroupUID(getThing().getUID(), endpointNumber.toString());
ChannelUID channelUID = new ChannelUID(channelGroupUID, channelTypeUID.getId());
logger.debug("updateState channelUID {} isLinked {} state {}", channelUID, isLinked(channelUID), state);
super.updateState(channelUID, state);
}
At OH startup, I can find that:
13:59:43.926 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
13:59:43.925 [DEBUG] [nternal.handler.BridgeEndpointHandler] - updateEndpointInternal 7
13:59:43.945 [DEBUG] [nternal.handler.BridgeEndpointHandler] - updateEndpointInternal added device type 770 7
13:59:43.957 [DEBUG] [nternal.handler.BridgeEndpointHandler] - updateState channelUID matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1:7#temperaturemeasurement-measuredvalue isLinked true state 19.60 °C
13:59:43.968 [DEBUG] [nternal.handler.BridgeEndpointHandler] - updateState channelUID matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1:7#relativehumiditymeasurement-measuredvalue isLinked true state 37 %
The channels are those I am using, the method isLinked is returning true but the linked items is not updated!
My two corresponding items:
Number:Temperature TemperatureChambre "Température chambre [%.1f °C]" <temperature> (GSondeChambre,GTemperatureInt) [ "Measurement", "Temperature" ] { channel="matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1:7#temperaturemeasurement-measuredvalue" }
Number:Dimensionless HumiditeChambre "Humidité chambre [%.0f %%]" <humidity> (GSondeChambre,GHumiditeInt) [ "Measurement", "Humidity" ] { channel="matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1:7#relativehumiditymeasurement-measuredvalue", unit="%", listWidget="" [iconUseState=true, action=""] }
I do not remember what must be done exactly but did you use AbstractStorageBasedTypeProvider ? It is necessary when using thing type and channel type providers.
https://github.com/openhab/openhab-core/pull/3407
Now, when I stop the matter bundle and restart it:
14:11:46.986 [DEBUG] [nternal.handler.BridgeEndpointHandler] - Setting Online 7
14:11:46.991 [DEBUG] [nternal.handler.BridgeEndpointHandler] - updateEndpointInternal 7
14:11:46.991 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1' changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
14:11:46.996 [DEBUG] [nternal.handler.BridgeEndpointHandler] - updateEndpointInternal added device type 770 7
14:11:47.002 [DEBUG] [nternal.handler.BridgeEndpointHandler] - updateState channelUID matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1:7#temperaturemeasurement-measuredvalue isLinked true state 19.70 °C
14:11:47.011 [DEBUG] [nternal.handler.BridgeEndpointHandler] - updateState channelUID matter:bridge-endpoint:openhab:hubSwitchbot:meterPlus1:7#relativehumiditymeasurement-measuredvalue isLinked true state 37 %
14:11:47.026 [INFO ] [nhab.event.GroupItemStateChangedEvent] - Item 'GHumiditeInt' changed from 40 to 38.5 through HumiditeChambre
14:11:47.033 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'HumiditeChambre' changed from NULL to 37 %
The item (humidity) is this time updated. Note that it was NULL before.
The second item (temperature) is not updated because this item is persisted and the value probably did not change. So it is normal.
Hmm, i’ll look at that, my guess is i need to revisit the status logic, there are 2 conditions that affect its online status, its parent openHAB bridge thing (matter node), but also if the device is reporting it’s reachable (part of the matter bridge info cluster)
Yes, i am using this for channels and things. I wonder if i need to implement channelLinked(...) in my handler? I give that a shot and see if it helps.
I tend to think we do not need to use channelLinked nowadays.
What is strange in my case is that the channel is detected as linked but updateDtate does not update the item…
I’m still trying to get Alexa to find the OH matter bridge. I have Google Home paired without issue. I go to the Google Home app and find the OH Matter device and go to Linked Matter apps & services. Then I click on ‘Link apps & services’. OH then prints the messages below. I use the link in the Google Home app to link with Alexa. Alexa initially says it is connecting to the device, but then says it can’t connect. I never see anything in the log when Alexa is trying to connect.
I use the exact same phone to connect Google Home and it works fine. If I disconnect Google Home and try to connect Alexa, I get similar symptoms, connecting, then ‘can’t connect’.
The OH runs on a Linux box with a LAN connection to the router. Everything else is through the wifi. Since Google Home works and uses the same network, I don’t suspect issues, but obviously something is different.
I did set the accept_ra to 1, and I set the aaccept_ra_rt_info_max_plen to 64. Because GH works, I think these must be set correctly? IPV6 is enabled and it works for GH. Also, I have Matter wifi devices that OH can connect to. The only issue I have is getting Alexa to see the OH Matter bridge.
Any suggestions on how to debug further? Alexa is doing something different, but I don’t know what it is.
This is the initial log:
2024-12-14 09:29:21.976 [DEBUG] [ternal.client.MatterWebsocketService] - CaseServer: Received pairing request from udp://fe80::5831:faff:feef:49e5%enp2s0:39929
2024-12-14 09:29:22.078 [DEBUG] [ternal.client.MatterWebsocketService] - CaseServer: session 26476 created with udp://fe80::5831:faff:feef:49e5%enp2s0:39929 for Fabric 000000002547B36E(index 1) and PeerNode 0000000007B77703 with CATs 65537
2024-12-14 09:29:22.113 [DEBUG] [ternal.client.MatterWebsocketService] - InsecureSession: End insecure session insecure/16268767440079569550
2024-12-14 09:29:26.462 [DEBUG] [ternal.client.MatterWebsocketService] - Behavior: Invoke bridge-0.administratorCommissioning.openCommissioningWindow online#6fa97ec@7b77703 commissioningTimeout: 180 pakePasscodeVerifier: afa8b58bedfa34c179ffaa728b07263d28d2990fe9f78c1e91fda840e6570bd104ea0b1c545f164ebe0c2a198b814d696ef81662cd5ab3c19c1772dc11144353ac9ff4abf6330d2a863f0dc2ccfb7c7b90275a874fdd5a07deb1a42ba95c8df008 discriminator: 1091 iterations: 10000 salt: cd70a5fdb06ee5817488614eefc0d0b4d2fa89efb9a205821085201c08b461f2
After a few minutes, it ends with this:
2024-12-14 09:32:26.514 [DEBUG] [ternal.client.MatterWebsocketService] - UdpMulticastServer: lo: send ENETUNREACH ff02::fb:5353
2024-12-14 09:32:26.600 [DEBUG] [ternal.client.MatterWebsocketService] - DeviceCommissioner: All announcements stopped
OH 4.3.RC1, Matter binding: 4.3.0.202412080401
What link, like a URL? Or is this a QR code or a code like 1234-567-8901 ? This sounds like a pairing code issue since its working with GH. Also the binding allows you to enable commissioning with multiple controllers without having to go to say your google home (although that should work as well). Go to he matter settings in the Main UI (Settings → Add On Settings) and click “Allow Commissioning” and hit save , this will open the window up for 15 mins and you can use the QR code and numeric code in that screen (see screen shot of mine, but yours will be different)
These are only needed when controlling matter thread based devices directly from openhab, but not for exposing items in this case.
Question, does this happen to all matter items, or just ones linked to a bridge-endpoint ?
Apparently all.
Only persisted items have a value but that’s due to restore feature of persistence.
I can try again but I believe it was working with managed items.
Same result with using the OH ‘Allow Commissioning’. Alexa says looking for the device, connecting to the device, then failed to connect. During this process nothing new is shown in the OH log. I’ve put the log below which starts when I do the save after allow commissioning. Does it point to anything?
This same process works fine with Google Home.
2024-12-14 13:04:01.682 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : ConfigurableComponentHolder configuration updated for pid org.openhab.matter with change count 25
2024-12-14 13:04:01.683 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Querying state active
2024-12-14 13:04:01.683 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Querying state active
2024-12-14 13:04:01.683 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : getting modified: modified
2024-12-14 13:04:01.684 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Locating method modified in class org.openhab.binding.matter.internal.bridge.MatterBridge
2024-12-14 13:04:01.684 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Declared Method org.openhab.binding.matter.internal.bridge.MatterBridge.modified([interface org.osgi.service.component.ComponentContext]) not found
2024-12-14 13:04:01.684 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Found modified method: protected synchronized void org.openhab.binding.matter.internal.bridge.MatterBridge.modified(java.util.Map)
2024-12-14 13:04:01.685 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : invoking modified: modified: parameters [org.apache.felix.scr.impl.helper.ReadOnlyDictionary]
2024-12-14 13:04:01.685 [DEBUG] [.matter.internal.bridge.MatterBridge] - Modified Matter Bridge {osgi.ds.satisfying.condition.target=(osgi.condition.id=true), manualPairingCode=24970112330, component.name=org.openhab.binding.matter.internal.bridge.MatterBridge, qrCode=MT:-24J0MNY16P70648G00, service.config.category=io, service.config.description.uri=io:matter, discriminator=2974, service.config.label=Matter Bridge, resetBridge=false, service.pid=[org.openhab.matter, org.openhab.matter], service.config.factory=false, openCommissioningWindow=true, component.id=462}
2024-12-14 13:04:01.686 [DEBUG] [r.internal.bridge.MatterBridgeClient] - sendMessage: {"id":"43813167-1d42-40bd-b92f-5c715685644c","namespace":"bridge","function":"openCommissioningWindow","args":[]}
2024-12-14 13:04:01.829 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"response","message":{"type":"resultSuccess","id":"43813167-1d42-40bd-b92f-5c715685644c","result":"undefined","error":"undefined"}}
2024-12-14 13:04:01.836 [DEBUG] [r.internal.bridge.MatterBridgeClient] - result type: resultSuccess
2024-12-14 13:04:01.836 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : invoked modified: modified
2024-12-14 13:04:01.837 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency $000: currently registered: true
2024-12-14 13:04:01.837 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency $001: currently registered: true
2024-12-14 13:04:01.837 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency $002: currently registered: true
2024-12-14 13:04:01.837 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency $003: currently registered: true
2024-12-14 13:04:01.837 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency osgi.ds.satisfying.condition: currently registered: true
2024-12-14 13:04:01.837 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Querying state active
2024-12-14 13:04:01.838 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : ImmediateComponentHolder Finished configuring the dependency managers for component for pid org.openhab.matter
2024-12-14 13:04:01.838 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : ImmediateComponentHolder Will not enable component for pid org.openhab.matter: holder enabled state: true, metadata enabled: true
15 minutes later I see:
2024-12-14 13:19:01.841 [DEBUG] [r.internal.bridge.MatterBridgeClient] - onWebSocketText {"type":"event","message":{"type":"bridgeEvent","data":{"type":"eventTriggered","data":{"eventName":"commissioningWindowClosed","data":{}}}}}
2024-12-14 13:19:01.844 [DEBUG] [r.internal.bridge.MatterBridgeClient] - bridgeEvent message {"type":"eventTriggered","data":{"eventName":"commissioningWindowClosed","data":{}}}
2024-12-14 13:19:01.849 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : ConfigurableComponentHolder configuration updated for pid org.openhab.matter with change count 26
2024-12-14 13:19:01.849 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Querying state active
2024-12-14 13:19:01.850 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Querying state active
2024-12-14 13:19:01.850 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : invoking modified: modified: parameters [org.apache.felix.scr.impl.helper.ReadOnlyDictionary]
2024-12-14 13:19:01.850 [DEBUG] [.matter.internal.bridge.MatterBridge] - Modified Matter Bridge {osgi.ds.satisfying.condition.target=(osgi.condition.id=true), manualPairingCode=24970112330, component.name=org.openhab.binding.matter.internal.bridge.MatterBridge, qrCode=MT:-24J0MNY16P70648G00, service.config.category=io, service.config.description.uri=io:matter, discriminator=2974, service.config.label=Matter Bridge, resetBridge=false, service.pid=[org.openhab.matter, org.openhab.matter], service.config.factory=false, openCommissioningWindow=false, component.id=462}
2024-12-14 13:19:01.851 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : invoked modified: modified
2024-12-14 13:19:01.851 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency $000: currently registered: true
2024-12-14 13:19:01.851 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency $001: currently registered: true
2024-12-14 13:19:01.851 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency $002: currently registered: true
2024-12-14 13:19:01.851 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency $003: currently registered: true
2024-12-14 13:19:01.852 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : No change in target property for dependency osgi.ds.satisfying.condition: currently registered: true
2024-12-14 13:19:01.852 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : Querying state active
2024-12-14 13:19:01.853 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : ImmediateComponentHolder Finished configuring the dependency managers for component for pid org.openhab.matter
2024-12-14 13:19:01.853 [DEBUG] [.matter.internal.bridge.MatterBridge] - bundle org.openhab.binding.matter:4.3.0.202412140433 (358)[org.openhab.binding.matter.internal.bridge.MatterBridge(462)] : ImmediateComponentHolder Will not enable component for pid org.openhab.matter: holder enabled state: true, metadata enabled: true
2024-12-14 13:19:01.958 [DEBUG] [ternal.client.MatterWebsocketService] - DeviceCommissioner: All announcements stopped
So the only thing i can think of that might be different is that Google may be doing part of the matter discovery directly on your phone, Apple does this, so i would not be surprised if Google does as well since they collaborated on this part of the spec, specifically with mobile in mind. I’m pretty certain Alexa is not doing anything directly in their mobile app and instead is having the local device do all the matter discovery bits once the mobile app feeds it a code.
Discovery uses MDNS to find matter devices to commission, so it seems like something there is not working. I take it there are no vlans, multiple subnets, multiple wifi networks, fancy (like unifi) managed routers, and so on ?
I’ll try using a thing file for one of my matter nodes for testing and reproduce locally.
No, nothing fancy, no vlans, single subnet, single wifi network. I have the Google Nest mesh with 3 nodes, but I don’t believe there is anything unusual there. I have about 8 Echo devices on the network.
One item of potential note is that I have Echo devices in 2 different physical locations (2nd home) with the same account. This has never been an issue; when I have Alexa ‘find my devices’ it is successful in either location. And it has found and configured Matter wifi devices locally, so I doubt that is a problem but I thought I should mention it.
If Alexa is using a device and not the phone, I wonder which Echo device it chooses for the discovery?
Maybe I should look for some sort of MDNS monitoring tool?
