If looking for lightweight solution with zigbee (usb dongle) one can also take a look at Zigbee2MQTT [0]. This library is used by HomeAssistant under the hood, but it can be used independently as a standalone app and let one interact with zigbee devices using MQTT json messages. And it supports a lot of devices : "Currently 2971 devices are supported from 379 different vendors"