thank you for your efford, creating this custom integration.
I have two UniPi 1.1 boards (with RPI 4 - 2 GB version) to control my garden watering.
With your integration, I_m now able to control both devices from HA, running in a docker container together with EVOK, not running in a container but installed on Pi-OS (buster) on one of these RPIs.
The only flaw was the built in configuration validation, done by the regex check for the port value (in lights.py, line 36
The port number scheme differs for UniPi 1.1 ("/relay/1") from Neuron ("/relay/1_01").
I managed to add an regex alteration, thus both variants could be passed to Evok ,but only one will work, of course ("1" for UniPi or "1_01" for Neuron).
One might add some
if else code depending on the so far unused type parameter ("L203", "M203", "S203" ) and addd "UniPi" to this list.
But I'm not used to program with python, thus I'm happy with this little hack.
Maybe one will find this useful, too.