I have an iPort surface mount with 10 buttons (product link: [login to view URL]) and i wish to control this with homekit app. I use homebridge running on a Raspberry Pi for non-compatible homekit devices so i need someone to create a homebridge compatible extension. You can find details about it's configuration here: [login to view URL]
It's a simple frame with 10 RGB LED buttons and each button has two states either it's idle or it's being pushed.
When i telnet the device on it's static IP [login to view URL] and port 10001 i get this:
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","versio
n":"V6","uptime":"1834442889","keys":[{"label":"key 1","state":"0"},{"label":"ke
y 2","state":"0"},{"label":"key 3","state":"0"},{"label":"key 4","state":"0"},{"
label":"key 5","state":"0"},{"label":"key 6","state":"0"},{"label":"key 7","stat
e":"0"},{"label":"key 8","state":"0"},{"label":"key 9","state":"0"},{"label":"ke
y 10","state":"0"}]}
After pushing one of 10 buttons (button number 5) it gets to state "1":
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834481454","eventtime":"63278","events":[{"label":"key 5","state":"1"}]}
When i release the button it gets again to state "0":
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834481574","eventtime":"63398","events":[{"label":"key 5","state":"0"}]}
If i keep pushing the button (i push button number 4 this time) it returns again and again state "1" until i release it and then it returns to state "0":
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834509314","eventtime":"25602","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834510316","eventtime":"26604","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834510617","eventtime":"26905","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834510918","eventtime":"27206","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834511219","eventtime":"27507","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834511520","eventtime":"27808","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834511821","eventtime":"28109","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834512122","eventtime":"28410","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834512423","eventtime":"28711","events":[{"label":"key 4","state":"1"}]}
{"deviceid":"SurfaceMount","model":"iPortSM10B","macaddr":"DC82F60009DD","version":"V6","uptime":"1834512943","eventtime":"29011","events":[{"label":"key 4","state":"0"}]}
There is also an optional LED RGB color changing option for the buttons when being pressed and i'm not very sure how it can be done but i've captured network traffic between my PC and the mount frame with wireshark when this happens and you can find the info captured in the attached file.
You can also find attached a PDF file describing the device and the API.
Of course i can give you access to my LAN to test the device if you need to.