For the Advanced users who prefer to not wait for better documentation and who are willing to provide me with some feedback…
I have uploaded 12 new device handlers and 2 new Arduino sketches to my GitHub repository, along with some revisions to the ST_Anything Arduino library. These changes implement SmartThings new Composite Device Handler feature (i.e. Parent/Child Device Handlers) which allow more than one of each ST Capability in a single DH without requiring a Miltiplexer SmartApp to translate between the Arduino DH and the Virtual DH’s. In fact, no virtual devices are needed any longer with ST_Anything!
I have adopted the ST Github IDE integration for the 12 new Device Handlers to make it much simpler to add them to your ST Account. Add my Github to your IDE using these settings:
Owner = DanielOgorchock
Name = ST_Anything
Branch = master
Or you can still manually copy and paste the new DH’s from (https://github.com/DanielOgorchock/ST_Anything/tree/master/devicetypes/ogiewon)
Please be sure to get all eleven “Child …” and one “Parent …” Device Handlers. Note: At this time I only have support for Ethernet/Wifi based Arduino and ESP8266 based boards. I have not yet implemented a “Parent DH” for the old ThingShield.
Be sure to grab the latest copy of the ST_Anything Arduino library and copy it to your …\Arduino\libraries\ folder. I needed to make a few minor changes to support the new DH’s. All of the Arduino code is still 100% backwards compatible with the old DH’s.
Additionally, please download and copy the two new example “ST_Anything_Multiples…” sketches to your local …\Arduino\Sketches\ folder.
ST_Anything_Multiples_ESP8266WiFi.ino is for use on a NodeMCU ESP8266 board (standalone, no Arduino)
ST_Anything_Multiples_EthernetW5100.ino is for use on an Arduino MEGA 2560 with a W5100 shield.
(Note: remember to update the network settings within each of these sketches to allow them to attach to your home network. Do NOT change the name of each of the defined devices. You must follow the standardized naming convention for everything to work correctly. After you get things working as-is, you can start experimenting with how many of each device type you want, what pins to use, etc… For now, just try getting the new example to work.)
Once you have everything installed in the ST IDE, manually add a new device, using the new Parent_ST_Anything_Ethernet DH. Configure it in your phone just like you did previously, setting the MAC Address, IP Address, and Port of your Arduino or NodeMCU board.
Once configured, and the Arduino or NodeMCU board is online, all of the child devices will be automagically created for you within SmartThings. From the THINGS view, you can rename each of the Child Devices as you see fit. From within the Parent, you can see all of the children, but cannot rename them. Just think of the parent as a generic container. Each of the children is what you will have normal SmartApps interact with anyway.
Something to be aware of… sometimes an extra child device will be created. This appears to be caused by a race condition in the ST Cloud. Just delete any duplicate child devices using the ST Phone App. You can even delete all of your child devices and the parent will automagically recreate any missing ones whenever new data is received from the Arduino/NodeMCU board. Pressing the new “Refresh” tile (in the parent DH) will force the Arduino to send the latest data for each of its defined devices. Deleting the parent will delete all of its children as well.
Getting late… more to come later. As always, feedback is welcome!