@sgonsalves I have been working on an Arduino project as well based on Steve’s original work. I now have created three “Device Types” and one “Smart App” plus the Arduino code to achieve something very similar to what you’re looking for. Each of the contact sensors (I have 6 currently) is exposed as either a Virtual Garage Door Tile (which accepts button presses and shows all four door states on its Garage Door Tile as well as having a traditional contact sensor tile for compatibility with other SmartApps) or a Virtual Contact Sensor for normal doors.
I have created an Arduino Device Type, a Virtual Garage Door Device Type, a Virtual Contact Sensor Device Type, and a Smart App to handle the multiplexing/demultiplexing between the Arduino and Virtual Devices. I have also modified Steve’s original Arduino code extensively, as I have added 4 other magnetic contact sensors to monitor traditional doors in my house.
Code can be found at https://gist.github.com/ogiewon
Let me know if you have any questions. I know I have been struggling for a while to try and figure this groovy language out. I am very grateful that others have been willing to share their code, so I feel it is only right that I try to help others as well.
One caveat - this is a work in progress. I have not installed my Arduino in my garage yet, but everything is working great on the workbench. I am planning on making some more optimizations to improve performance. One feature I added to the Arduino code was to send the door status updates to the ST Cloud every 30 seconds, if nothing had been sent within the past 30 seconds. This helps to ensure the tiles always have the correct values.