[Tuto] Piloter des volets solaires velux IO
Publié : 04 juil. 2018, 22:06
Bonjour,
Après avoir cherché longtemps une solution pour piloter mes velux solaires depuis domoticz, voici ce que j'ai trouvé et mis en œuvre :
1- Achat d'une box Connexoon (environ 129 euros)
2- Récupération du programme d'appel aux API Somfy : https://github.com/philklei/tahoma-api
3 -Installation de Flask : sudo apt-get install python3-flask
4 -Configuration du serveur web python : créer le fichier ci-dessous et nommez le start.py (configurer avec son login et password Somfy)
5 - Démarrer le serveur : python3 start.py
6 - tester l'url : [url]http://MON_IP:5000[/url]
Le texte Hello World s'affiche alors dans votre navigateur
7 - on peut maintenant ouvrir et fermer ses volets :
http://192.168.x.xxxx:5000/execute/<nom de mon volet>/up
http://192.168.x.xxxx:5000/execute/<nom de mon volet>/down
Le nom des volets se trouve dans l'App Connexoon Window préalablement installé sur votre smartphone.
Il n'y a plus qu'a paramétrer domoticz :

Voilà. Pour améliorer encore, on peut récupérer le statut des volets pour mettre à jours les états dans domoticz. Ce sera l'objet d'un autre tuto.
Après avoir cherché longtemps une solution pour piloter mes velux solaires depuis domoticz, voici ce que j'ai trouvé et mis en œuvre :
1- Achat d'une box Connexoon (environ 129 euros)
2- Récupération du programme d'appel aux API Somfy : https://github.com/philklei/tahoma-api
3 -Installation de Flask : sudo apt-get install python3-flask
4 -Configuration du serveur web python : créer le fichier ci-dessous et nommez le start.py (configurer avec son login et password Somfy)
Code : Tout sélectionner
#!flask/bin/python
from tahoma_api import TahomaApi
from tahoma_api import Action
from flask import Flask, jsonify
app = Flask(__name__)
api = TahomaApi('Login', 'Password')
api.get_setup()
devices = api.get_devices()
for deviceURL, value in devices.items():
print(deviceURL, value.label, value.command_definitions)
@app.route('/execute/<string:label>/<string:command>', methods=['GET'])
def execute(label, command):
if command not in ['up', 'my', 'down']:
return jsonify(success=False, message='Command not found')
data = {
"commands": [
{
"name": command,
}
]
}
for deviceURL, value in devices.items():
if label == value.label:
print(deviceURL, value.label, value.command_definitions)
data['deviceURL'] = deviceURL
api.apply_actions(label, [Action(data)])
return jsonify(success=True, message='Device '+label+' found', commad=command)
return jsonify(success=False, message='No device found')
@app.route('/')
def index():
return 'Hello world'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
6 - tester l'url : [url]http://MON_IP:5000[/url]
Le texte Hello World s'affiche alors dans votre navigateur
7 - on peut maintenant ouvrir et fermer ses volets :
http://192.168.x.xxxx:5000/execute/<nom de mon volet>/up
http://192.168.x.xxxx:5000/execute/<nom de mon volet>/down
Le nom des volets se trouve dans l'App Connexoon Window préalablement installé sur votre smartphone.
Il n'y a plus qu'a paramétrer domoticz :

Voilà. Pour améliorer encore, on peut récupérer le statut des volets pour mettre à jours les états dans domoticz. Ce sera l'objet d'un autre tuto.