Interesting discussion. I have been figuring out what to use for monitoring for some time. I was using Smart Energy Groups from around the time they started. I stopped, because the free ride was over and value of the site vs. the cost did not seem worth it to me. Having spent small amounts of time over the last year plus looking at alternatives, I appreciate SEG much more now. Part of it, I am sure is that I am more familiar with it, but part of it is that it has a pretty decent design for dealing with different types of data and a good set of visualizations that are pretty easy to use and pretty performant.
The reason I have not gone back is I really want something that works locally, because we have frequent power/Internet outages here and I want a system that will work with that constraint.
I had been hearing about emoncms for some time so I decided to check it out. I first started trying to install it locally, but the instructions for installing it (and keeping it secure) on Windows leave much to be considered easy to use/deploy (even for someone skilled in the art of software development). I then tried using it on emoncms.org. Even this was somewhat complicated, because the graph capability is wholly unsuited to feeds that have a small amount of data. The getting started info does not provide enough information about this. It is vitally important to understand some basic concepts (that I am sure everyone who is familiar with emoncms understands without even thinking about it).
It all starts with Inputs. These get populated automatically when you send data to emoncms, but they really do nothing. This is okay, but it is not very well explained. This is also where I ran into my first problem. The local version allows names for nodes, but emoncms.org requires numbers and there is a limit to the number (probably 32). It took me a long time to figure out that, primarily because the API doesn’t return an error for an obviously wrong call.
Once I figured out that I had to use numbers for the node (but I could use names for next level (tag?) I was able to make some more progress. The next thing I ran into, is all the examples show sending the API key as part of the URI (which is a pretty insecure way of doing it). The help does talk about ways to avoid this, but does not provide any examples. None of the code that I could find in various locations showed how to do it more securely. Since I know how to debug systems I tried debugging it on my local copy to see if I could figure it out. I had a solution, but then someone posted a question (that I can’t find now) about something similar and it turned out that posting to bulk.json instead of post.json with json data instead of data data worked fine. I figured this was easier and changed my code to use the different URI. This took a long time to figure out because the API documentation is sparse and doesn’t really explain all the options that are available and doesn’t have examples of more secure ways of doing things (so, of course, all the code that most people write does things the same insecure way). I am not really that paranoid about the security of the data I am sending, but I have enough training to know that I should at least think about how secure something needs to be.
Finally I had figured out how to get my data traveling to emoncms.org. The next hurdle was figuring out how to visualize it in a meaningful way. It took me a while to figure out my local copy didn’t have everything (dashboards are not included by default). The Getting Started might have said something about this, but I don’t recall for sure. I decided to just use emoncms.org to see if the visualizations would work well or not.
I have used a few sites for this in the past (ThingSpeak, SEG, AdaFruit.IO and probably some others that no longer exist). I do understand this is not an easy thing to do well. I found the dashboard to be incredibly difficult (it looks like it is pretty powerful too) to use. Specifically the Graph. It seems like it works okay if you already have a lot of data in your feed, but it is nearly impossible to use if you only have a little data (because you are just starting out). The UX for graphs is way too geeky. Here is a really good example of the power of SEG: https://smartenergygroups.com/groups/teken_energy
Scroll down to the part that has Real Time Watts and see the multiday realtime data chart that lets you see the big picture and also zoom in to find out the details. I don’t believe there is any way (currently) to anything remotely this good with emoncms. Note also the sliders that you can use to change the amount of data you are seeing and also which part of it. The graph in emoncms can do that, but it is much harder to understand how to do it. Notice how quickly you can scroll through the data. Somehow it manages to do all of this in real time. That is truly amazing and almost magical (as they say magic always comes at a price ) Now I am sure that the person who made that site spent a lot of time on his dashboards, but the thing is SEG provides a really rich set of things that support using it for many types of data. All feeds come with averaging and statistics, so it is really easy to see them on a dashboard. I would love to be able to do these kinds of things with emoncms and I think the other users would love it too. I don’t know what it would take to implement any of these enhancements, but if I continue to use it I will probably attempt to make it do them. (or I might just decide it really is worth the $10-$20/month to get it much easier by using SEG).
I will say that it still feels like early days IOT visualization and things will hopefully get better. Also, there does seem to be a fair amount of engagement of emoncms, which is promising.