I think most devices will report once the state has been changed.
If this doesn’t work for I would try to look into the code that handles zigbee messages, perhaps adding debug prints.
If you are sure your zigbee handlers are fine, perhaps issuing read attribute command in the platform handler, right after sending on/off command would help.
If this doesn’t help, then read attribute command can be issued on timer with 1 or 2 sec delay (this is theoretical, I have no idea how to do it in Lua)
Please note, your decision to have id==1 for the main when sending the commands has nothing to do with how device reports the state. I would guess, the device still reports attribute change for channel 1 under end point 1, etc.
So, your end point to component function should take that into account.
Yes, that is what I have done to try to solve that only the main switch (1) sends state change messages.
When you send a refresh () or a read command, all 3 switches respond.
By pressing the on-off button on the strip, the message that switch 1 sends due to the status change is captured with the zigbee Handlerand a read attribute command is sent to 2 and 3.
These respond to the read command and are updated by sending the command with the received status and the event is emitted to the platform, so that the device and the status on the platform are not de-synchronized.
The only problem is that when switch 1 is offand you turn off the 3 switches with the button on the power strip, switch 1 does not send a status change message and the off status of switches 2 and 3 is not updated in app until the following message from the configured report of switch 1, maximum 5 minutes.
It is not a big problem since that use case is very rare to occur, but I would like to know why this happens, jajaja…
To compare I have installed the strip with the groovy DTH and the three switches send through switch 1 the status message according to the configuration, not only switch 1 as happens with the edge driver.
I put the IDE’s live logging capture where you can see the response of the 3 endpoints and raw data, which you can’t see in the logcat, just the decoded message.
In order to use the driver with 2, 3, 4 socket strips, I want to know how many components has the installed device, using component_count (), which I saw in the documentation and use a loop for enpoint = 1, components do … configuration or send commands to all components
This occurs only when have these conditions and physical button on the power strip is pressed to turn off all the switdh at the same time.
This happens because the main switch is already OFF and there is no change of state and because switches 2 and 3 do not send periodic reports and they only respond to the refresh command or attribute read commands.
With this scenario, when switch 1 is turned off there is a change of state and it sends a zigbee message. I capture it with zigbee handler and emit the ON state of the other 2 switches
Hi, thank you for bringing this up. I tracked the bug report about this, what it’s clear is that this issue is not edge-related because it happens for other multi-component devices, that’s why I moved the post back here.
Once I get more info, I’ll let you know.
Was this ever resolved? Is multi-component devices working on the edge platform? I have multiple devices I bought specifically for the capabilities it came with that used child devices on the groovy platform.
Secondary switch gangs are not available in routines (and there is no Child), but they appear in Smart Lighting as switch “2/3”. Than with a “virtual Child switch” third-party voice integration could control these devices again.
If no Child Device can be created, than could I use a Virtual Device (switch) to control a secondary switch in a 2 or 3 gangs switch (Zigbee)?
Applied by some power users, sure. But way too complicated for most people who just buy a typical inexpensive two gang light switch and expect it to work out of the box with SmartThings.
While we’re talking about it…there will be Matter-compatible multi gang light switches soon. I hope those will be “plug and play” with the new SmartThings architecture because they will be on other Matter-compatible platforms.
They should work directly on SmartThings, the multi-component devices are fully supported there, we can create Routines for those devices. I understood the issue is with third-party apps, like Alexa (that’s already been reported).
I checked the Smart Lighting app, and yeah, it doesn’t allow you to select actions for each component and it only performs the action in “main”.
I’ll confirm with the team they’re considering the cases of multi-component devices in the new version of the app.
If I’m missing something, please provide more details
I have an Edge driver that creates a device with three components, each with a momentary capability. In ActionTiles, which has a Groovy based connector SmartApp, the components are presented in the device selection lists as if they are separate devices and momentary tiles can be created using them. They just don’t work.