Great! Thanks for sharing. This is a nice extension, and glad to hear you were able to modify both the firmware and UI to achieve the feature. We should probably integrate this into the code. Regarding safety, to begin with, the UI can check to allow only available pins (i.e. those that have already been assigned to other functions are not available), and the firmware can do its own independent checking to double check.
Regarding the ‘send and refresh’ approach for remote stations — I know it sounds intuitive, but the main reason to do it this way is that currently the remote stations are one-way communication — the master controller does not check the return from remote controllers to ensure the station is on/off as it’s supposed to. So to make sure the remote station is in sync with what master controller thinks it’s doing, the ‘send and refresh’ is used. Actually even for the standard stations (connected through the shift register), there is a 1-second refresh to ensure it’s in sync — otherwise if there is any signal interference that could leave the station on unintentionally.