SmartThings Edge Developer Beta | Known Issues and Bug Tracking

A post was split to a new topic: [SmartThings Edge] Issue with the Z-Wave Switch driver

A post was split to a new topic: [SmartThings Edge] Socket port binding limitation

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

2 Likes

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.

1 Like

Hi! :smiley: I’ll check this with the team and let you know their feedback.

1 Like

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

A post was merged into an existing topic: [ST Edge] How to create child devices with edge?

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

@nayelyz

2 Likes

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

1 Like

@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

2 Likes

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

1 Like

I also ended up doing this. You can’t connect within the first few seconds of driver init

2 Likes

4 posts were split to a new topic: [Custom capabilites] Issue with enum commands