There are three ways these types of devices are controlled remotely.
-
Directly via Bluetooth Low Energy (BLE). This requires a phone scan for and "pair" with the device. If left unpaired, anyone with the app can scan, find, and control them as long as nobody else is actively connected. If paired, most cheap chipsets can only pair with one phone at a time. They usually mention if there is BLE or Bluetooth on the box or show a logo. They can also be controlled via Bluetooth Serial, but then it wouldn't work with an iOS device, just Android. So that's also something to look for. Bluetooth also means you have to be within physical range (30-200m).
-
Zigbee, Zwave, or Thread. These require a gateway or hub. Your phone talks to the hub, which relays the message to the bulb or plug. A lot of Home Automation or security devices use this.
-
Through the cloud, via wifi. The device is put on the home wifi. Your phone app sends a signal to the cloud API, which then relays it back to the device via polling, a websocket, or a common protocol like MQTT.
If the device is being controlled by an Alexa, HomeKit, or Google Nest assistant, they're going through one of these. Once you find out which one, you can try reverse engineering the signal and having a little device like a Raspberry Pi or ESP32 mimic the same commands.
If the bulbs show a 'Matter' logo, you don't have to manually reverse engineer the protocols. There are Matter controller toolkits in Python or C++ that your Pi or ESP can call and discover and control the device directly.
all 4 comments