Thanks Mariusz it did look interesting,
Although after a bit of research, I ended up going with Roomie and have got most things to work and have a workaround for the others. My Oppo, Trinnov, LGTV, shield, and apple TV are all included in the included library of commands. The rest of the setup is only slightly more complex than the Harmony to get those going. 
However my BR20 and BDA3.14 are not in the included library of IP commands. So with my reasonably basic programming skills  I am trying to get the Bryston equipment to work over IP via the Service port, Adam has sent me the latest codes - the same hex as listed for the IR remotes. So I have populated a file with the commands via a Plist editor (example button below).
<key>HDMI1</key>
<string>006D 0000 0012 0049 000B 000B 0049 000B 0049 000B 0049 0049 000B 0049 000B 000B 0049 0049 000B 000B 0049 000B 0049 0049 000B 0049 000B 0049 000B 0049 000B 000B 0049 000B 0049 000B 0049 000B 029</string>
To get this to work I need to know which Port number they use as I already have the IP address of each service port.
I then need to know which type of connection it is, from these choices.
gc                 Global Caché Infrared Method (also supports Pronto Infrared Codes)
binary-ack     Binary TCP or Serial Method requiring a response before new data
binary           Binary TCP or Serial Method that does not require any response
lineio            TCP or Serial Method using text commands with CR line endings
lineio-crlf      TCP or Serial Method using text commands with CRLF line endings
http              HTTP Method including GET/POST, body, and header functionality
udp              UDP Method for sending raw UDP packets
rtsp              Live Video via RTSP over UDP
onkyo          Convenience to wrap simple Onkyo commands for Onkyo’s encodings
samsungdtv Samsung Packet Encoding
hk               HomeKit
sio               SocketIO
websocket   WebSockets
gcast           GoogleCast
Any Thoughts or pointers welcome!
Many Thanks
Stuart