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.