open-index/open-npm huggingface dataset:
npm package: @mrobst/solar-edge
Description: Edge application for SOLAR - Sensor Objects Linked to Actions and Reports
Author: Marcus
Latest version: 0.6.1

# SOLAR EDGE

> Sensor Objects Linked [to] Actions [and] Reports

## About

This project uses [Feathers](http://feathersjs.com). 

Code written with Typescript using ES6 

## High Level Architecture

The edge application is designed to connect to an MQTT service and subscribe to topics. Messages received on the topics are stored in a local database and then posted to an AMQP exchange (assumed to be durable) before being flagged as posted in the local database.

## Features

The edge application is sensor and action agnostic but the sensors and actuators need to comply with a message and topic schema when talking to MQTT ...tbc

The edge application subscribes to a `PING` channel on the MQTT service and can be setup to expect device IDs to be received at regular intervals on this channel. If a device ping is not received after a configurable interval then alert messages can be triggered through configurable mechanisms.

The edge application will delete `queued` data from its local database after a configurable retention period. It is assumed that data older than this period is no longer needed on the edge device but can still be accessed from the central service for reporting or billing purposes.

The edge application will check for connectivity to the remote AMQP service and delay sending local messages when connectivity is not available. When connectivity is restored messages will be sent to the remote AMQP service in batches with some throttling to manage throughput


## Installation

1. git clone 

2. Install your dependencies

    ```
    cd path/to/solar
    npm install
    ```

3. Start your app

    ```
    npm start
    ```

4. Development 
   ```
   npm run dev
   ```

## Testing

Simply run `npm test` and all your tests in the `test/` directory will be run.