I am not sure if this topic belongs here, in the development forum, or in the general forum, but here goes. I have two lamps on each side of my bed. Each of these lamps are controlled via a Zwave module under the bed causing my wife and I to have to go to our iPhone each time we want to turn on or off the lamp. When going to sleep that is OK, but when walking in the room it is a pain to have to find the cell phone, find the SmartThings app, find the lamps, and turn them on.
So, as a solution I have a switch where you walk in the room that no longer controls anything. I put a ZWave switch here with nothing connected to the load. I wanted to use the switch as a trigger in an custom written SmartApp to then control the two lamps. The application works flawlessly with one exception. Sometime when the switch is pressed, the lamps come one within five seconds which is tolerable. Other times however, it will take up to a minute for lamps to respond. I don’t know where the delay comes from, but I am assuming it is from the one centralized resource in the system, the SmartThings server.
So, it seems to me that an option to both lower the compute requirements for SmartThings and to speed to response of SmartApps in the home would be a distributed architecture where there was an option to run a SmartThings engine on my home computer. I have a computer that is up 24/7 and would be ideal for this. SmartApps would be downloaded to this machine and all of my SmartApps would run there. Certain events would have to be forwarded from the central server to this home server (e.g. smartphone based leaving or arriving events). Depending on how clever you wanted to be, the center server could take over for the home server when it was down as long as the hub could still talk to the center server. Depending on the current architecture of the SmartApps engine, it does not seem like this would be that difficult to do.
As an alternative, it seems like some simple application capability (much less than the overall server) could be deployed to a local computer instead of the server ( checkbox on the smart app for local deployment ). The Smartthings IDE could check that the features used met some subset for local deployment, and the app could be deployed locally. When the hub saw the switch event, it would forward to both the SmartThings server and the local PC running apps. Since the app was locally deployed the server would not respond in any way, but the local machine could run the app and perform the operations.
Anything like this in the works ??? Thoughts ???