Skip to content
This repository has been archived by the owner on Aug 30, 2022. It is now read-only.

I1820/I1820

Repository files navigation

I1820

GitHub Workflow Status Codecov PkgGoDev

Introduction

Link

Link component of I1820 platfrom. This service collects raw data from bottom layer (protocols), stores them into mongo database and decodes them using user's selected decoder. This service also sends data into bottom layer (protocols) after encoding them using user's selected encoder.

Link uses MQTT for communicating with the bottom layer and this communication can be customized using Protocol's interface which is defined in protocols/protocol.go.

Thing Manager

Thing manager manages I1820 Things and their properties. Things belong to the projects, but this component doesn't validate this relationship so other services must verify project identification and existence before calls this project APIs.

Data Manager

DM is a Data Manager component of the I1820 platform. It has some useful built-in queries that can returns data from the database (MongoDB) to the API backend.

Profiler

Enable MongoDB built-in profiler:

use i1820
db.setProfileLevel(2)

The profiling results will be in a special capped collection called system.profile which is located in the database where you executed the setProfileLevel command.

db.system.profile.find().pretty();

Project Manager

PM is a project manager component of the I1820 platform. It builds things, projects, things to project relationship, and project's dockers. Each project consists of two dockers one of them provides a sandbox for user scripts that are in python and based on ElRunner and another runs redis as in-memory storage for user scripts. It builds these dockers in localhost and uses Linux sockets for communicating with docker host.

PMs can run on many hosts to provide load balancing. To distribute requests among them, you can use vulcand. this feature still in development phase so it would be better not to use it now 😂

This component provides API based on HTTP ReST so other components can utilize these APIs for creating and destroying things and projects.

PM requires only MongoDB to persist things and projects data.

About

I1820, IoT Platform that can be used with LoRa, Zigbee and ...

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published