README
DataNow.io CLI & SDK
DataNow.io is a simple service you can send generic data, read it back or graph it in a nice app. This is a simple command line tool and node.js SDK for interfacing with it.
Examples
Setup
Install
Open a command line and run the following command to install. Requires node.js to be installed.
[sudo] npm install -g datanow
Register
Register using the command below substituting in your username and email.
datanow register --username your-username --email your-username@example.com
# Enter your password
You will need to click the verification link that was sent to your email before proceeding.
Now you can login.
datanow login --username your-username --email your-username@example.com
An authorization token has been generated and placed in ~/.datanow-config.json
so DataNow will remember you.
Simple Example
First create an app and a board to post your data to.
datanow create your-username/test-board
Now post some numbers to it.
datanow write 1
datanow write 2
datanow write 3
Let's get those numbers back.
datanow read
# Prints
# 2015-01-29T10:01:06.382Z, 1
# 2015-01-29T10:01:07.194Z, 2
# 2015-01-29T10:01:09.542Z, 3
You like that? Good. I was hoping you would.
Specifying Date
Notice how in the above example you got a date back? That is because the default schema is [ date, number ]
and if you don't supply date its is auto filled.
Let's try specifying our own date in the ISO 8601 format.
datanow write 2014-12-28T13:27:48.000Z 4
# reads out as 2014-12-28T13:27:48.000Z, 4
datanow write 2014-12-29 5
# reads out as 2014-12-29T00:00:00.000Z, 5
Custom Schemas
You can specify your own schema when you create a board. Valid data types are date
, number
and string
. Here are some examples.
String only
datanow create your-username/messages string
datanow write hello
datanow write world
datanow write 'goodbye world'
datanow read
# Prints
# hello
# world
# goodbye world
Date, Number and String
datanow create your-username/weights date number string
datanow set --board your-username/weights
datanow write `date -u +"%Y-%m-%dT%H:%M:%SZ"` 130 Homer
datanow write `date -u +"%Y-%m-%dT%H:%M:%SZ"` 45 Bart
datanow read
# Prints
# 2015-02-02T14:12:45.000Z, 130, Homer
# 2015-02-02T14:12:51.000Z, 45, Bart
Numbers only
datanow create your-username/temperature number
datanow write -- -3
for i in {-3..5}
do
datanow write -- $i
done
datanow write 5
datanow read
# Prints
# -3
# -3
# -2
# -1
# 0
# 1
# 2
# 3
# 4
# 5
# 5
datanow read --board your-username/weights
# Prints
# 2015-03-13T07:49:09.000Z, 130, Homer
# 2015-03-13T07:49:09.000Z, 45, Bart
Note in this example that it uses the --
. That is a standard with command line tools for handling negative numbers as it marks end of options.
Formatting Output
The default output option is CSV but there are a few more.
CSV Format
CSV (comma separated values) looks nice and you can use with LibreOffice's Calc Spreadsheet program or others similar programs. Just pipe the output to a file.
datanow read --format csv > output.csv
# Try opening with the default program.
open output.csv
Specify the line delimiter and the column delimiter with --lineDelimiter
and --delimiter
. Very handy for piping to other tools like GNUPlot.
datanow read --format csv --lineDelimiter ', '
# Prints
# -3, -3, -2, -1, 0, 1, 2, 3, 4, 5, 5,
datanow read --board your-username/weights --delimiter