Dash alternative for now obsolete free streaming to Plotly Cloud


#1

https://community.plot.ly/t/plotlyrequesterror/9754

Till 2 weeks ago, my Arduino Yun generated a daily Plotly API graph by streaming data from 2 .csv datalog files (< 500 kB) each night (simple Python script on Arduino Yun).

As this free service is no longer available, I want to switch over to Dash and a free Heroku account.

According to Plotly (https://plot.ly/python/streaming-tutorial/) Dash supports streaming, but the given Dash Wind Streaming example only loops through a static .db sqlite file on Heroku.

I already managed to get Dash working on Heroku, but I can’t find an example Python script for my Arduino Yun to upload a .csv or .db to Heroku.

Did anybody else already do this?


#2

You could use a PostgreSQL add-on but it looks like the free plan is limited to 10,000 rows.

Edit: There are other database add-on alternatives that may serve you better on the free plan but I am not familiar with them.

https://elements.heroku.com/addons


#3

Did anyone already try the AT&T M2X add-on on Heroku to stream data which are then processed with a Dash app on Heroku?

I’ve explored the Google Drive option, but my Arduino Yun (still running Python 2.7) can not manage the apiclient module which I successfully used on my desktop to send csv’s to the cloud (i/o streaming data).


#4

Got it working.
Arduino Yun (Python2.7) > csv files > uploaded to Google Drive (apiclient) > hosting via DriveToWeb > Dash on Heroku


#5

Interesting approach.

I stream my sensor data on a per-event basis (every few minutes) directly to dynamodb on aws using boto3. The dynamodb table is set up with sensor id as the hash key and timestamp ts as the sort key. That allows me to query for any sensor data with ts > provided date. I haven’t run into any issues with read/write capacity or storage in the free tier.

NoSQL worked for me because my sensors may have different schemas (some sensors return multiple values, for example). May be easier to use something like AWS RDS instead of dynamo.