In case there is an interest for solution to this, check out open.edison.watch and the accompanying blog posts on the README there.
Very tricky, though. I’d be curious to hear your response to simonw’s opinion on this.
We've implemented this in open.edison.watch