I have created several device types in order to integrate Smartthings with an AMX Netlinx control system. The integration was fairly straightforward by creating a server port on my Netlinx system listening for HTTP GET calls from the Smartthings hub. The Netlinx system would then reply back to the hub using JSON formatted HTTP POST calls to the hub on port 39500. This worked 100% flawlessly until my hub updated its firmware today. Now my devices are listed as “cloud” instead of “local” for their execution location and no longer receive the communication from the Netlinx controller.
Is there a new work-around for direct LAN communication? I was also never able to get asynchronous HTTP to work as it is described in the documentation. Any help is greatly appreciated!
I assume you are entering the DNI as a Mac address in capitals with no colons? If so then that is very flakey unless your device also uses mDNS and SSDP.
If you don’t want to add those protocols to your device then the other option is to change the DNI to be ip:port in hex bytes (i.e. each of the numbers separated by decimal points converted from decimal to hex), in capitals. Hence 192.168.0.1 on port 80 would go to C0A80001:0050
I expect this will start it working again, but if not please post a bit more information since the reason above is the only reason I know of for LAN devices stopping working. (It is also more commonly a problem with newer firmware)
This is also largely a requirement for asynchronous to work…
Thanks for your suggestions! I was using the MAC address as the DNI just as you said. I tried to use the ip:port method you described with no luck. The unfortunate thing about an AMX Netlinx system is any protocol I want to use (mDNS, SSDP, UPnP, etc) has to be hand coded from scratch because AMX does not supply default code blocks to handle such things. I might have more luck with Java as a Cafe Duet module (AMX proprietary) but I’m not sure the classes or APIs I’ll need are available in that environment either since AMX has stripped that down as well. IP communication is very simplistic in Netlinx and typically works best with controlling Video Matrix switchers, Projectors, Audio DSPs, and such.
Can you give me the IP of your AMX and the string you used as the DNI? I think it is worth checking that is correct first.
Also you could fake the ssdp / mDNS packets from another computer using a test app, though it can sometimes be a bit confusing for routers and switches.
This ended up being an ID-10T problem. The ST hub grabbed a different IP address when I thought I had it in a reserved DHCP one. I know there is a better way to do this integration but with everything being such a manual process on the AMX side and lacking native support for the common connection methodologies it’s no wonder people go the Raspberry Pi route.
Thanks for your help and insight, I really appreciate it.