Sorry, long post - but this is not a problem - just a new way to think about how to program (well, not that new...)   -setInterval is "implemented as" a chained setTimeout, HTTP does call-backs, so they are not (really) problems. HTTP has timeouts. -loops and  api.X calls do take all the processing - until they are done  - often api.X calls are very fast so that is not a problem. However, api.get(/refreshState) hangs if there are no events. That's a choice by fibaro and we have to