Simple utility to push data to enableiot.com. The enableiot API is documented on GitHub.
npm install
The enableiot-pump
supports two usage patterns:
- Simple get data and submit results (single)
- Event-based subscription model (ongoing)
Simply setup the cloud client, retreave results from observation provider and submit:
// error handling and validation omitted for clarity
cloud.setup(config, function(err, state){
var observations = provider.get(state);
cloud.submitObservations(state, observations, err_handler);
});
See examples for working example.
When ongoing submission is required you can use the event-based pattern with subscription to the data
event:
// error handling and validation omitted for clarity
cloud.setup(config , function(err, state){
provider.sub(state).on("data", function(observations){
cloud.submitObservations(state, observations, err_handler);
});
});
See examples for working example.
Both of these usage models are implemented using provider pattern. You can easily implement your own provider from Database, Message Queue or simply by tailing a log by implementing get
and sub
functions.
var get = function(config){
//TODO: Implement your code here
}
var sub = function(config){
//TODO: Implement your code here
}
Both of these functions must return an array of observations
.
Observation is a simple construct representing an event in time:
{
"componentId": "my-registered-component-1",
"on": 1406685882807,
"value": "96.6"
}
The above object represents only the required elements. See enableiot documentation for more details about the supported types.
- Tests (yes please)
- DB, MQ, Log provider samples
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.