Ajout du README

This commit is contained in:
LeClubber
2022-03-13 11:43:58 +01:00
parent 77727dc166
commit 3d97778eb0
3 changed files with 128 additions and 5 deletions

127
README.md
View File

@@ -1 +1,126 @@
# iDiamant2Mqtt
# iDiamant2Mqtt
Outil de conversion de l'API du iDiamant (volets Bubendorff) depuis MQTT pour Home Assistant.
## Netatmo
Pour que cela fonctionne, les volets doivent être configurés dans l'application "Home + Control" de Legrand - Netatmo - Bticino.
Rendez-vous ensuite sur la page https://dev.netatmo.com/ et connectez-vous avec les même identifiants que l'application. Il faut enuite cliquer sur son login puis "My apps".
Cliquer ensuite sur "Create" et renseiger les champs suivants :
- app name : le nom de votre application, par exemple "Volets"
- description : une courte descrition, pzr exemple "Gestion des volets depuis HASS"
- data protection officer name : votre nom
- data protection officer email : l'email de votre compte
Cliquer sur "I agree to the terms and conditions" et sur Save.
Dans la partie "App Technical Parameters", conserver les identifiants "client ID" et "client secret" pour le déploiement.
## Déploiement
Il vous faut :
- Home-Assistant (en même temps, vous êtes surtout là pour lui non?)
- Un brocker (serveur) MQTT (sans certificat pour l'instant)
- Le service iDiamant2Mqtt
Il y a deux solutions pour déployer ce service :
- Docker (recommandé)
- Exécuter le script python directement
### Docker
Je préfère cette solution car elle encapsule le processus, contient toutes les dépendances et facilite le déploiement.
Le service peut être démarré grâce à la commande suivante :
``` sh
docker run -d --name idiamant \
-e PALAZZETTI_HOST=192.168.1.1 \
-e PALAZZETTI_PULL_STATUS=5 \
leclubber/idiamant2mqtt
```
Ou en docker-compose (recommandé) :
``` yaml
version: '3'
services:
palazzetti:
container_name: idiamant
image: leclubber/idiamant2mqtt
privileged: true
restart: always
environment:
- MQTT_PORT=1883
- MQTT_HOST=mqtt
- MQTT_TOPIC=homeassistant
- IDIAMANT_USER=<votre email>
- IDIAMANT_PASSWORD=<votre mot de passe>
- IDIAMANT_CLIENT_ID=<client ID généré>
- IDIAMANT_CLIENT_SECRET=<client secret généré>
```
Certaines variables d'environnement sont optionnelles, elles possèdent une valeur par défaut. Toutes les variables d'environnement sont les suivantes :
- MQTT_PORT (1883 par défaut)
- MQTT_HOST (mqtt par défaut)
- MQTT_TOPIC (homeassistant par défaut)
- MQTT_USER (vide par défaut)
- MQTT_PASSWORD (vide par défaut)
- IDIAMANT_USER (aucun par défaut)
- IDIAMANT_PASSWORD (aucun par défaut)
- IDIAMANT_CLIENT_ID (aucun par défaut)
- IDIAMANT_CLIENT_SECRET (aucun par défaut)
Un fichier [docker-compose.yml](docker-compose.yml) est disponible pour exemple, avec toutes les variables d'environnement ainsi que les services homeassistant et mqtt.
Une fois votre fichier docker-compose.yml réalisé, il faut lancer la commande suivante pour démarrer le ou les services configurés :
``` sh
docker-compose up -d
```
### Python
Il faut récupérer le contenu du dossier [idiamant](idiamant) et le mettre sur votre futur serveur.
Certaines variables d'environnement sont optionnelles, elles possèdent une valeur par défaut (voir section Docker).
Chaque variable sera définie de cette manière :
``` sh
export ENV_VAR=valeur
```
Exécuter ensuite les lignes suivantes :
``` sh
pip install -r requirements.txt
chmod +x *.py
./server.py
```
## Configuration de Home-Assistant
Le iDiamant dans Home-Assistant fonctionne avec le discovery de MQTT. Il suffit de s'abonner dans Home-Assistant au canal souhaité ("homeassistant" par défaut).
**Optionnel :** On peut également le déclarer via le fichier de configuration [configuration.yaml](configuration.yaml). Il faut ajouter un module "cover" de cette façon :
``` yaml
cover:
TODO
```
Vous pourrez alors :
- Monter, descendre et arrêter les volets
- Renommer dans Home-Assistant chaque volet
## Todo list
- [x] Initialisation des config dans MQTT
- [x] Discovery MQTT
- [x] Documentation
- [x] Utilisation d'un login/mot de passe pour le broker MQTT
- [x] Publier image Docker en multiple arch
- [ ] Attente du serveur MQTT si non disponible
- [ ] Tester les paramètres et gestion d'erreur
- [ ] Utilisation de certificat pour le broker MQTT

View File

@@ -25,8 +25,8 @@ services:
idiamant:
container_name: idiamant
# image: leclubber/idiamant2mqtt
build: ./idiamant
image: leclubber/idiamant2mqtt
# build: ./idiamant
privileged: true
restart: always
environment:
@@ -37,5 +37,4 @@ services:
- IDIAMANT_PASSWORD=${PASSWORD}
- IDIAMANT_CLIENT_ID=${CLIENT_ID}
- IDIAMANT_CLIENT_SECRET=${CLIENT_SECRET}
- IDIAMANT_PULL_STATUS=5

View File

@@ -3,7 +3,6 @@ FROM python:3-alpine
ENV MQTT_PORT 1883
ENV MQTT_HOST mqtt
ENV MQTT_TOPIC homeassistant
ENV IDIAMANT_PULL_STATUS 5
WORKDIR /usr/src/idiamant
COPY requirements.txt requirements.txt