features - dl3ebb/OpenIot GitHub Wiki

#Features

Core Features

OpenIot defines elements that interact with each other via events. This architecture makes it possible to develop modules and connectors without knowing the consuumers.

Logging

During the development service it is very easy to log via the serial console. But this approach has several problems. First of all serial logging is done in real time. So if you have a lot of messages to log or a slow serial connection, the application's speed may be affected. Next if you have the device in the field, you may not have access to your device anymore. OpenIot addresses this problems by offering a logging framework that easily logs to a central log server. This mals life a lot easier if you have a bunch of iot devices in the field.

Wifi Connectivity

The OpenIot core can be configured for two alternative Wifi SSID's and handles the connection to the stronger signal. If no Wifi is available it starts an access point so you can access the device and see what's going on

MQTT

MQTT is the backbone of all iot applications. OpenIot offers you to bind to MQTT topics or publish your Elements to an MQTT broker.

REST

Sometimes you may want to just run a single device and you may not need a MQTT server. In this case OpenIOT provides a simple REST interface to control your devices.

NTP

In case you need exact time for your projects, a ntp server can be used to keep the device internal clock on the exact time.

WebUpdate

In larger installations it is convenient to have a central server, that holds the application images. OpenIot offers a service for that and devices may even be auto updated from that server as soon as a new application version is deployed.

MqttStatus

If you have a MQTT Server connected to your installation, OpenIot can provide you with some useful informations like heap size, loops per second, IpAdress etc. It will update the status every 5 seconds.

Web Frontend

For the configuration of the several connectors and services a webfrontend is provided. The webfrontend is based on websockets and is easily extendible for applications