If you are stuck uninstalling the driver, I would try putting the device into pairing mode.
Add device and search nerby.
If it pairs but you don’t see it in the app, put it back on pairing mode until you get lifecycle removed called and you can then uninstall the driver or it pairs successfully
Thanks, it didn’t work at first, but found automations left over from the device that couldn’t be deleted. I used your method and was able to delete the automations, then remove the device. This then allowed me to uninstall the driver.
Got there eventually! Thanks!
I think I have found a bug in the code for injecting a capability command. I am seeing args being lost for the command. I am creating events using Driver.inject_capability_command
. It has already been split out in this thread
This is another issue I am seeing where init
is not called for devices when they are created in quick succession. It was previously reported by @rossetyler and @TAustin in this thread. I don’t see it listed above. This may not be a bug, but there is nothing documented that explains this behavior.
Hi! I’ll check this with the team and let you know their feedback.
A post was split to a new topic: [SmartThings Edge] Issue with the Refresh capability in a custom presentation
A post was split to a new topic: [SmartThings Edge] Issue with the device Fibaro FGS-213 (Z-Wave Switch driver)
gh repo clone SmartThingsDevelopers/SampleDrivers
Hi, @Tommy_Pollyblank. Do you need help with the sample drivers?
Let us know if we can guide you in any way
Do we know if the bug that causes the following error after a driver update or hub restart is going to be resolved?
cosock tried to call socket.select with no sockets and no timeout. this is a bug, please report it
I have code to re-establish a websockets connection after a reboot in my device_init method, but i always get that error, the same code from device_info_changed method (by faking a config change) re-establishes the connection properly
It may not be related, but are you tried calling with delay to the function with code that performs the reconnection.?
device.thread:call_with_delay(5, function() call your function end)
I had a similar problem, which affected the execution of the a necessary configuration on the device when the hub was restarted and calling the function with a 5 second delay solved it.
It seems that the execution of the drivers began without being 100% hub operative
@Mariano_Colmenarejo Yes, that is what my code does
local function device_init(driver, device)
log.info("[" .. device.id .. "] Initializing Harmony device")
-- mark device as online so it can be controlled from the app
if (device.preferences.deviceaddr ~= "192.168.1.n") then
ipAddress = device.preferences.deviceaddr
getHarmonyHubId(device,ipAddress) --this line works fine
connect_ws_harmony(device) --this line does not
end
device:online()
end
function connect_ws_harmony(device)
log.info("connecting over websockets ip: "..ipAddress.."HubId: "..hubId)
hello_world_driver:call_with_delay(1, function ()
ws_connect(device)
end, 'WS START TIMER')
end
The hubId
is printed in log.info? just the hubId
is what was not available when i call to configure in my driver
Yes - that is the harmony hubid, retrieved by this line which calls a function, that does a http post
The code is here, if you wanted a look https://github.com/lrmulli/SampleDrivers/blob/main/harmony-bridge-simple/src/init.lua
Thanks @Mariano_Colmenarejo
Adding an additional delay (using your syntax) inside the device_init method seems to have solved it
I replaced the commented line with the following
--connect_ws_harmony(device)
device.thread:call_with_delay(5, function() connect_ws_harmony(device) end)
Thank you
I have no idea if this is possible and if it is the same type of problem, but as I commented in this thread when I got the errors with the restart of the hub, I think that if they put a delay for the start of the execution of the drivers after a restart of the hub, to give time for everything to be 100% operational, these problems could be solved
Well it worked, thank you
Not sure if it was the additional delay, or the syntax or the position that helped as I already tried my original code at 5s delay and that didn’t work
Thanks for the supports