@mrobst/solar-edge

Edge application for SOLAR - Sensor Objects Linked to Actions and Reports

Usage no npm install needed!

<script type="module">
  import mrobstSolarEdge from 'https://cdn.skypack.dev/@mrobst/solar-edge';
</script>

README

SOLAR EDGE

Sensor Objects Linked [to] Actions [and] Reports

About

This project uses Feathers.

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.