So I bought this GVM-560AS LED photography light on Amazon. It is a really good light for the job; but to control it remotely you have to download a really dodgy APK from the GVM website, a package which flagged red across the board on VirusTotal.com
So in the spirit of experimentation I loaded the control app onto the Android emulator and captured the packets it sent to the light over WiFi.
It is sending UDP messages to port
2525 on the broadcast address
When I replay these UDP messages with Python it has the desired effect in controlling the light.
The issue is that I can't make sense of the message generation mechanism, and enumerating the 65,000 potential states seems a little tedious.
The message to turn the light on is
The message to turn the light off is
The message to set the brightness to 11% at 3200K is
The message to set the brightness to 63% at 3200K is
I am guessing that this is just a weird encoding scheme that I can't figure out, rather than it being some kind of proprietary RPC. Any suggestions or pointers towards the generation mechanism would be much appreciated!