Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/martindenion/dmway
An app that creates a dynamic link between different sensor networks and Thingsboard.
https://github.com/martindenion/dmway
cetic python thingsboard thingsboard-gateway
Last synced: 3 months ago
JSON representation
An app that creates a dynamic link between different sensor networks and Thingsboard.
- Host: GitHub
- URL: https://github.com/martindenion/dmway
- Owner: martindenion
- Created: 2019-10-09T12:49:09.000Z (over 4 years ago)
- Default Branch: dev
- Last Pushed: 2019-12-01T11:56:11.000Z (over 4 years ago)
- Last Synced: 2024-01-16T11:51:59.552Z (5 months ago)
- Topics: cetic, python, thingsboard, thingsboard-gateway
- Language: Python
- Homepage: https://www.cetic.be/
- Size: 682 KB
- Stars: 8
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Lists
- awesome-stars - dmway
README
# dmway
## What is it ?
d for dynamic, m for mapping and way from gateway.
The objective of this project is to develop an application that links a network of sensors and Thingsboard.
This application includes :
- checking the format of the data received by the sensors
- data persistence
- the creation of sensors on Thingsboard
- the provision of data on ThingsboardThis approach is a direct alternative to Thingsboard Gateway, offering a more generic view by providing dynamic mapping.
Here is how dmway fits into our network architecture :
If you want a lower-level view to understand how dmway works, a [flowchart](https://github.com/martindenion/dmway/wiki/dmway-flowchart) is available.
## Getting started
### OS tested
* Raspbian Strech (desktop and lite version)
* Raspbian Buster (desktop and lite version)### Prerequisites
#### Thingsboard
First, you must have Thingsboard platform running.
If not, you can follow the [Thingsboard installation guides](https://thingsboard.io/docs/guides/#AnchorIDInstallationGuides).
#### Eclipse Mosquitto
You can install a MQTT broker locally or use a MQTT broker on the cloud.
These following way use a local Mosquitto broker but you can use your own MQTT broker.
```
$ sudo apt update
$ sudo apt install -y mosquitto mosquitto-clients
```#### Git tool
You may also need to install the git tool for cloning the dmway project from Github :
```
$ sudo apt install -y git
```#### Python package
dmway requires at least Python 3.5 version so you don't need to upgrade Python to a newer version :
```
$ sudo apt install -y python3.5 python3-pip
```### Cloning dmway
Clone the dmway source code and install dmway dependancies :
```
$ git clone https://github.com/martindenion/dmway.git
$ cd dmway
$ sudo pip3 install -r requirements.txt
```### Running dmway
To run dmway, 3 methods are possible depending on the needs :
#### For development
Then, you can execute the app.py Python file :
```
$ cd dmway
$ python3 app.py
Output:
Connecting to SQLite database ...
Connected to SQLite database 2.6.0
Connected with result code 0
```
dmway is now waiting for receiving JSON data by MQTT.#### For deployment with systemd
```
$ cd dmway
$ chmod +x make_service.sh
$ sudo ./make_service.sh 'dmway' '/home/pi/dmway/app.py' 'dmway.service' yes
Output :
Created symlink /etc/systemd/system/multi-user.target.wants/dmway.service → /etc/systemd/system/dmway.service.
$ sudo reboot
```
dmway is now waiting for receiving JSON data by MQTT.#### For deployment with Docker
*TO DO*
### Quick start test
#### Publish json_message with local MQTT broker
Considering this [format](https://github.com/martindenion/dmway/wiki/JSON-message-and-topic-format), execute the following command line :
```
$ mosquitto_pub -h localhost -m "json_message" -t "topic"
```Note : if you ran dmway using the development way, execute the previous command line from another duplicated shell to let dmway running correctly.
In order to better understand what does this command in the dmway context, see this [diagram](https://github.com/martindenion/dmway/wiki/Pub-and-Sub-command-around-dmway).
## Sources
* https://thingsboard.io/docs/iot-gateway/what-is-iot-gateway/
* https://www.startupbootcamp.org/startups/zolertia/
* https://obrienlabs.net/how-to-setup-your-own-mqtt-broker/