[ST Edge] Can devices using the same driver package directly communicate with each other?

Can devices using the same driver package directly communicate with each other via shared variables? What about Z-Wave? What prevents one Z-Wave device from sending an unsolicited command to another Z-Wave device using the ST (Lua) libraries?

I’m assuming that since all the driver code lives in the same namespace, the driver could maintain/share whatever information was needed to allow inter-device communication without involving the ST Devices API. This would guarantee that everything runs local.

local device_list = driver:get_devices()
for _, dev in ipairs(device_list) do
  dev:send(msg)
end

Just to preserve clarity, it’s still the hub sending the message. Not “one device sending a command directly to another device.”

Really in your scenario it’s the driver sending the message (via the hub), not the device.

Zwave itself, independent of SmartThings, only allows one device to send a command directly to another, bypassing the hub, through the mechanism of direct association. Otherwise it’s always via the hub.

I’m pretty sure you meant having a driver, not a device, ask the hub to send a command to another driver, but I just wanted to keep things clear.

People quite frequently ask about direct communication between two end devices without going through the hub, but that’s not what you’re describing. An Edge Driver itself runs on the hub, so the hub is definitely involved in your scenario.

And I know: nobody cares. LOL! :wink: I’ll go back to the engineer corner now. :control_knobs:

7 Likes

No, @JDRoberts, we care. Keep it up. :sunglasses:

4 Likes