Unresponsive Execution Environment


(Ken) #1

I have frequently found - and am once again finding this morning - a nearly completely unresponsive environment for the execution of code. My apps are either not functioning or they are highly delayed. My messages sent from scheduled code, if they arrive, arrive way after they should have, and when I attempt an update in the IDE, the “working” wheel spins, but never completes the update. Is anyone else seeing this?


(Toejough) #2

Yep. I (and I think several others on the dev forums) have moved on to creating our own custom endpoints so that we can work in an environment that’s more predictable.


(Ken) #3

Oh, thanks for that reply – I was unfamiliar with that concept until you mentioned it just now. I quickly read about what it means. It appears that custom endpoint code still runs on SmartThings servers. Does such code somehow not suffer from the same server slowdowns, despite that fact?


(Ben Edwards) #4

Hi guys, Thanks for hanging in there with us. Nothing is more important to us than ensuring the platform performance is solid and reliable. We know without that, all the great features and user experience is not worth anything. Keep your feedback coming - we are listening.

Ben


(Ken) #5

Thanks Ben - But what’s up? What was the nature of the problem this morning? Is it fixed, or is it likely to keep occurring? I’ve only been working with the SmartThings platform for a very short time, but have experienced it to be highly unreliable during that time. The idea of forcing logic to execute on SmartThings servers in the cloud is questionable to begin with. If the servers are unreliable, it becomes utterly absurd.


(Boris M) #6

I had the same issue - no smartthings. This goes to show you that a cloud free environment should be implemented as a backup for the coud based solution.


(Ardenite) #7

Same here this morning…actually impeded my girlfriend trying to make a train out of town. The lights wouldn’t turn on so she couldn’t see where she put her keys. It’s hard to justify the expense and complexity to your partner when the system is inconsistent.


(Toejough) #8

@kapple

Regarding your question about endpoint logic still going through the smartthings servers…

In my limited experience in the last few months, the command-to-execution latency is about what I would expect from living in the boonies with bad internet; it’s the scheduled and/or triggered tasks that sometimes suffer from crazy latencies (like, an hour…just once, but still…an hour).

For example, during that hour of no responses from any of my smart apps, I was still able to “manually” turn on and off my lights within a second or two from hitting the button on my phone, and the events log was just as “fast” during that time.

To my thinking, then, I should be able to use a custom endpoint to actually perform my logic, and only send “manual” commands to the smartthings servers. I have not actually tested that theory out yet, unfortunately, because, well, this is not my day job. All I’ve gotten up and running so far is an external event logger/browser. I’m hoping this weekend to get some commands working.

The other advantage of using your own endpoint, even if you don’t avoid the actual smartthings latencies, is that you can use your own editor (VIm) in your own environment (Mint) in your own favorite web-friendly language (JavaScript) with whatever scheduling library you want (as of this writing, the SmartThings scheduling library doesn’t allow you to pass variables or closures to scheduled functions).

Other bonuses for going this route:

- build up libraries of triggers/actions
- create your own interface, which could...
  - include graphs of data
  - show your device names on the front page
- add functionality to your apps, like...
  - a 'disable' feature to disable your apps for a period instead of having to uninstall them and then set them back up
  - secure LAN communication (for instance, with a foscam, which doesn't provide security because it assumes you're using it on a secured network)

I’m sure there’s a bunch more. Anyway, now that I’ve typed all this out for you it makes me realize that I have built up quite a list of things I’d like SmartThings to consider for new features…I should write in to their support about these.


(Toejough) #9

@ben_edwards

Thanks for chiming in! As far as I can tell, there’s nobody out there doing zwave devices as hackably (I use that term affectionately) as SmartThings while still providing out-of-the-box features like a phone app and such. I do get frustrated sometimes with the state of the dev documentation, the general bugginess of the online IDE, and the times when the lags go crazy. I am quite happy that I have the option to build my own endpoint… In general I’m still glad I bought the SmartThings hub rather than any of the other existing solutions, but I’m also really hopeful that SmartThings management is, as you say, listening to the requests and complaints in the forums. I see so much potential for SmartThings, and it can’t come fast enough for me :slight_smile:


(Toejough) #10

Oh man, I almost forgot the main reason for my quitting the IDE and concentrating on my own endpoint: DEBUGGABILITY.

Debugging with the online IDE and groovy was killing me. Several times I broke the simulator, and it started spitting out live events from my hub on the console (when I was supposed to be simulating with fake devices). Cause a runtime error in the right way, and you have to refresh your page to reset the simulator. Several times I lost code doing that - I started copying and pasting before refreshing my page. Most of my runtime error messages were from deep in some library that SmartThings has abstracted…I spent a lot of time googling and digging through groovy library documentation on 3rd party sites trying to figure out where errors were coming from.

Having a real debugger to step through my logic, or at least full backtraces when a runtime error happens, drastically improves my turnaround time when testing.


(Billmans) #11

@ben_edwards

I too have been noticing extreme slowdowns to the point I would says things are just not working. Light are not turning on etc.

I also had an issue last night where installing a smartapp via android created about 16 instances of this app. It then took over an hour to uninstall them all!

I am experimenting with both Hue and Sonos right now, so I am unsure if this is the problem/related etc. It would seem to me that since this has been released, the server is under a heavier load!

Growing pains are fine, but what I would like to see is some form of feedback from Smartthings (a dashboard?) on how the system is running? Somebody responding to these threads daily (hourly) on the forums. Right now I have no way of knowing what is going on when things don’t work. For example last night I could see (in the android app) that my motion was being seen, and it said it had sent a command to turn on the lights, but no light?

I think this platform has great possibilities, but we need to hear more from Smartthings on documentation, status etc…I have seen zero documentation on the new “labs” features, it seems that we must figure it out for ourselves.

Finally, in an attempt to find out what is going on I have been looking for your recent office hours video on youtube, but it has not shown up 2 days later!!!


(Jeff DeWolfe) #12

I agree that a dashboard or some way to see the “SmartThings System Status” would be nice. We did discuss the issues lately with @urman on the call. From what I understood, it is an issue with the database and the implementation of Quartz they are using. It sounds like they are working on migrating off of the old database and onto a new one which will improve and hopefully eliminate these issues.