No sooner did I finish the blog on my new GroveStreams Node than I was faced with the question “how do I use GroveStreams?”
Well, that’s generally up to you – but I will start you off on how I use GroveStreams – and the ridiculously simple setup (once you know how).
So what I will describe here takes you from never having heard of GroveStreams to sending information to your own stream. This should take no more than minutes if you already have managed to get my NODE set up on your Node-Red installation as per my previous blog. If you are NOT using Node-Red, then read this anyway as the API call is trivial and you could organise this from just about any package.
First things first – head off to GroveStreams and get a new account. That is, register, receive a confirmation email, click the link and receive a welcome email. You are done.
You will be asked to create an organisation. This confused the hell out of me until I realised they don’t necessarily mean a business organisation. For the purpose of demonstration I created one called “Garage”.
So now you have that. There are many ways to use GroveStreams, for me I wanted a simple means of looking at graphical logs of simple devices over time.. so for example my temperature sensor. GroveStreams does SO much more than simply log data, you can average over time, zoom into areas, you can even use graphical instruments for real-time monitoring – but let’s keep it simple for now.
In my case having created “Garage” – click on it in your browser window. You are now in the “Observation studio”. You will see “components” on your left. Don’t do anything with it…
Top right is ADMIN in the menu – go there and go to API keys. Click on the one marked “Feed Put API Key (with auto-registration rights) – make sure you’ve picked the right one. Select “View Secret Key” above that and you will get your API key. Copy to the clipboard.
Now dump the API key in my NODE along with a sensible name, a component name (in my case for fun “GarageRoof” don’t use spaces.. and a stream called “temperature” – again – an arbitrary name in this case.
Click OK, send some numbers to the node from a device or the “inject” node to test.
If you are NOT using Node-Red then you are looking at a PUT – this should give you a clue as to the format.
var options = {
host: ‘grovestreams.com’,
port: 80,
path: ‘/api/feed?api_key=’ + node.api + ‘&compId=’ + node.component + ‘&compName=’ + node.component + ‘&’ + inmsg.payload,
method: ‘POST’
};
And that is that!!!
The component should appear magically along with the stream.
Now, what you DO with that is another matter. In my case right clicking GarageRoof opens a dialog and you can then select temperature, tell it what kind of data you are looking at, what averaging period if any you want to use etc. If you have several test values and want to see a quick average, in the image above, right window you will see below the tab “none” – you can drop that down and instantly see some averaging options – there is just SO much to this but my plan here was merely to get you started. I originally set up GroveStreams to take in data from an Arduino (with Ethernet card) and it did that a treat too – still today logs the temperature in my place in Spain every 15 mins and it’s been doing that for over a year – you can zoom in, overlay one reading over another etc.… time to go look at the documentation – have fun.
Peter,
In another comment I mentioned that I was getting a socket hang up error reported from GS and I also get another longer html error just before one of the streams stops logging to GS, I’ve noticed that it is whenever the value drops below 10 degrees, I don’t know why because the battery level is always less than 10, could it be that the value below 10.0 contains less than 3 digits??
Part of the error is
Your browser sent a request that this server could not understand.
Request header field is missing ‘:’ separator.
Any thoughts?
Regards,
Phil
Well, no… erm, I’ve no idea – clearly something is happening here – a space in the data somehow? I’ve not had this…. space sounds most likely?
Peter,
It looks as though you were right it’s a space creeping into the value when it drops below 10.0.
I’m trying to trim the space in the function node but I just can’t get it to work, have I mentioned I hate javascript. I’ve been googling Javascript and fund the string.trim() command but I just get errors with anything I try and there doesn’t seem to be a node-red forum.
I tried var = newMsg.trim(); but it doesn’t work.
Can you suggest a node-red forum or show me how I can trim the space from my data.
Thanks,
Phil
There is a node-red forum and 2 of the guys in there I think are the designers – I’ve had some great help. https://groups.google.com/forum/#!forum/node-red
So can you give us the EXACT content you are trying to trip.. ie what’s in newMsg… erm, that’s not a javascript object you’re trying to trim is it?
Peter thanks for even more really useful information, I’ve just started playing with node red on my pc and although I’m using thingspeaknat the moment I’ll definitely be trying out grovestreams.
I’ve got a raspberry pi sat there doing nothing and when I get the hang of node red and javascript ill move it off the pc on to the RPi.
Plus reading your blog is making me feel like doing more frequent updates to mine.
Phil
Woohoo!
After a few hours of figuring it out I now have my RPi receiving serial data from a Jeelink and sending to to my Grovestreams account with tweet and email alerts for over and under temp, I also found that there are nodes to switch the RPi output pins, brilliant!
I feel a blog post coming on.
Phil
Hi Peter, you surely are relentless, and continue to create what must be one of the most useful reference sources for so many users to have available to them. I can only thank you for all your work and time you put in so that I can just continually ‘logon, look an learn’.
I’ve just started using this .. https://www.npmjs.com/package/node-red-node-nma. Only for Android at the moment, but simple, effective push notifications. Might be handy at some stage?
All the best ….
That looks useful Dave. I installed PushBullet in Chrome on my PC and into my Android phone and there is a Pushbullet node for Node-Red… I can say that it appears to work flawlessly every time. The more options the merrier I say 🙂 Similar thing – simple message – pops up even if phone on standby.