Good questions, I’ll try to break them out and address them one by one:
I have an asset tracking project that requires data logging from remote locations; so remote that I would need GSM/GPRS and perhaps satellite radios in addition to the WiFi radio. The assets would sleep most of the time, waking up every hour or so to send data to a host. A web app would then provide user/customer access to this data.
As I understand the Spark concept, it has no storage capability - correct?
2.) The core has an external flash chip with 2 megs of storage. 1 Meg is generally reserved for stuff like encryption keys and firmware backups, and the other meg is free for whatever. The photon also has a meg of internal storage, and some misc space for small values, but it’s tougher to write to. I really really like this SD card hack, and it’s a great way to cheaply add offline storage to your project ( https://community.spark.io/t/micro-sd-card-library/2666/29?u=dave )
So I would have to use Google Datastore or AWS for storage, then another service to host the web app to manipulate the data - also correct?
3.) We love being open, so your data is your data. We’re building some tools to make it easier to let you save data from your core to a database. So you could host a database somewhere, and pipe messages directly to a table easily. I think this would work well for your project. I’ll hopefully be able to beta test this after this sprint. So please ping me if you want to help test it.
Also, because the assets are live for such short periods, they need to query a host occasionally to determine if a firmware update or remote procedure needs to be executed. This would have to be done outside of Spark.io?
4.) We’ve been thinking about deferred function calls and deferred flashes. I am beta testing deferred flashing at the moment which would happen automatically when your device came back online and agreed to the update. I think a similar process for function calls, variables, and events would be cool and super useful for these scenarios.
So if I understand correctly, for this use case Spark would allow rapid prototyping and a secure firmware update facility, but most of my effort would require 3rd party services? Can anyone comment on this?
5.) We’ve been thinking about this a lot lately, and we have something in the works that addresses this. I’m hoping we can talk more about it in a few sprints (March/April)
I hope that helps!