Projet Smart Building, avec KNX, OpenZWave, Beacons et Kafka.
Le fichier .env contient toutes les variables d'environnement nécessaires au docker-compose et aux programmes python. Avant de lancer le système, il faut éditer ce fichier selon ses besoins. Ensuite, il faut démarrer dans l'ordre :
- Une gateway KNX (que ce soit le simulateur actuasim ou une vraie gateway)
- Les containers Docker avec le
docker-compose.ymlsur une machine accessible depuis internet avec les bons ports ouverts - Le module KNX (
knx) avec lemakefileassocié : exécutermakedans le répertoire - Le module OpenZWave (
zwave) sur un Raspberry Pi avec la configuration nécessaire (voir TP2 OpenZWave)
Le répertoire android contient le code de l'application. Le répertoire db contient la configuration et le script de création de la base de données. Le répertoire knx contient le code du module KNX ainsi qu'un makefile pour lancer le simulateur actuasim. Le répertoire scripts contient les modules python reliés à Kafka, ainsi qu'un simple exemple de consommateur et producteur (consumer.py et producer.py). Le répertoire server contient le serveur Flask avec un Dockerfile. Le répertoire zwave contient le code du module OpenZWave. On retrouve également le docker-compose.yml à la racine permettant de lancer en même temps le broker Kafka, la base de données, le serveur Flask et le contrôleur automatic. Il faut déployer ces containers sur une machine visible depuis Internet et exposant les ports mentionnés.
|-- android
| |-- app
| |-- ...
|-- db
| |-- conf
| | |-- conf.cnf
| |-- dump
| |-- create.sql
|-- docker-compose.yml
|-- knx
| |-- init_devices.py -> ../scripts/init_devices.py
| |-- knx_lib.py
| |-- knx.py
| |-- makefile
|-- README.md
|-- scripts
| |-- automatic_controller.py
| |-- consumer.py
| |-- db_to_kafka.py
| |-- Dockerfile
| |-- init_devices.py
| |-- logs.py
| |-- producer.py
|-- server
| |-- Dockerfile
| |-- server.py
|-- zwave
|-- configpi.py
|-- init_devices.py -> ../scripts/init_devices.py
|-- zwave_lib.py
|-- zwave.py