Page 1 sur 5

[Tuto] Piloter des volets solaires velux IO

Publié : 04 juil. 2018, 22:06
par jupiter
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)

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')
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 :
Image

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.

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 09 sept. 2018, 06:32
par comas
Bonjour,

Quelqu’un a-t-il déjà essayé cela avec des volets IO Somfy ?
Ça devrait fonctionner mais j’aimerai m’en assurer avant d’acheter la Connexoon.

Merci

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 20 sept. 2018, 15:07
par mim67
Bonjour,

superbe tuto, Jupiter !
Merci beaucoup. Mais comme je suis toujours très débutant ... j'ai encore des petites interrogations:

Après quelques déboires, recherches et tatonnements divers, j'arrive à piloter les 4 stores verticaux de ma pergola, ainsi que le store d'ombrage de toiture. Ce sont tous des IO et j'avais acquis une Tahoma d'occasion pour pouvoir les piloter.

Ce qui ne fonctionne pas tout à fait comme prévu:

Le serveur python3 a l'air de se "fermer ?" tout seul ...

Je m'explique:
lorsque je lance le start.py, j'obtiens quelques centaines de messages (liés au fait que c'est lancé en débug, comme c'est précisé à la fin, avant que la liste des messa ges s'arrête ?)

Ensuite je vois bien les messages lorsque sont lancées les commandes au travers de dz, de type:
192.168.1.38 - - [20/Sep/2018 14:32:21] "GET /execute/Store%20Sud%20(2)/up HTTP/1.1" 200 -

Mais si je ferme cette page de messages et de débug, les commandes d'ouverture / fermeture ne sont plus exécutées.

Que faudrait-il faire pour que je retrouve le contrôle de mon RPI3 au travers du ssh sans perturber l'exécution de 'start.py' ?

En outre, je suppose qu'il faut faire en sorte de relancer le 'start.py' à chaque re-démarrage du pi ? Comment faire celà ? Peut-on le paramétrer dans le start.py ?

Le fonctionnement en pourcentage, en utilisant le curseur dans dz (l'interrupteur est défini en "blind percentage") ne se fait pas, car seules deux possibilités existent dans la config de l'inter: On et Off. Comment faire pour utiliser le curseur de pourcentage ?

Enfin, comme tu le mentionnais, il faudrait reporter les états des stores dans dz, car si je fais une commande au travers de l'appli Tahoma, les changements d'états ne sont pas vus.

Merci,
M.

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 22 sept. 2018, 17:06
par jupiter
Bonjour min67,

Effectivement, il faut relancer start.py à chaque redémarrage du Pi. En ce qui me concerne, j'ai ajouté la ligne

Code : Tout sélectionner

python3 /home/pi/tahoma-api/start.py& > start.log
au fichier /etc/rc.local

De cette manière, le programme est lancé à chaque redémarrage. Pour retrouver le contrôle de ton Pi après avoir lancé la commande 'start.py', il suffit de rajouter un '&' :: start.py&

Pour gérer le % des volets, c'est possible mais cela demande un peu de programmation. Je ne me suis pas encore penché dessus.

Sinon saches que les Box Tahoma et Connexoon sont compatibles IFTTT. De cette manière c'est encore plus facile de les piloter.

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 23 sept. 2018, 22:25
par mim67
bonjour Jupiter,

merci pour ces informations essentielles.
J'ai donc appliqué tes conseils.
Au lancement de;
python3 start.py&

je retrouve l'ensemble des messages, puis il me faut faire un CR pour retrouver l'invite de mon RPI. Ca n'est pas gênant en soi, je suppose que c'est normal ?

Merci encore,

Michel

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 18 nov. 2018, 09:48
par litfiba
Bonjour Jupiter,

Merci pour ce tuto. Je mes suis procuré la passerelle connexoon qui fait bien l'affaire. J'ai des stores roulant SSL de velux et les motorisations KSX pour ouverture/fermeture des fenêtres Velux également.

Lorsque je démarre de script, je vois bien tous mes devices listés dans ma console terminal: les stores & les moteurs. Cependant j'arrivent à piloter que les stores.. avec /<nom du store>/down ou up.

Je n'ai pas trouvé la commande pour piloter les moteurs, j'ai essayer 'open', 'close', 'down', 'up'.. mais rien! Snif!

Merci d'avance si vous avez une idée ou me diriger dans la bonne direction?

Ivan

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 24 nov. 2018, 11:53
par litfiba
Alors j'ai réussi à piloter aussi les KSX en modifiant le start.py, j'ai ajouté les commandes 'open' 'close' 'stop'... et ça marche!
Par contre, j'essaie de faire un set direct de la position, du genre 50%, mais pas encore réussi.

@app.route('/execute/<string:label>/<string:command>/<int:val>', methods=['GET'])
def execute(label, command, val):
if command not in ['up', 'my', 'down', 'open', 'close', 'setPosition', 'stop', 'setSecuredPosition']:
return jsonify(success=False, message='Command not found')

data = {
"commands": [
{
"name": command,
#"parameters": [
#{
# "name": command,
# "value": val
#}
#]


}
]
}

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 03 déc. 2018, 14:56
par vr6man
Bonjour,

Je possède une box connexoon et 3 stores extérieurs roulants motorisés VELUX

Savez vous si je peux utiliser ce script pour piloter directement mes stores velux ?

Merci

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 28 déc. 2018, 19:13
par litfiba
Hello, Oui cela fonctionne dès que votre box connexoon fonctionne.
Cela dit, pour plus de facilité, j'ai installé une machine sous OpenHab, sur laquelle vous trouvez un binding SOmfy pour piloter comme vous le voulez. Après depuis Domoticz vous pouvez avoir le contrôle.. avec des requêtes url.

Re: [Tuto] : piloter des volets solaires velux IO depuis domoticz

Publié : 12 janv. 2019, 07:54
par Pyrrhus
Bonjour,
je vais bientôt installer un store banne et pas le choix, le moteur est un somfy io.
D'après ce que j'ai compris je vais devoir acheter une connexoon pour le domotiser, car je ne crois pas qu'il existe un moyen gratuit (dites moi si je me trompe ;) ).
J'ai un raspberry pi 2 avec domoticz + mdah, ainsi qu'un NAS QNAP.
Je pense installé openhab sur QNAP pour pouvoir contrôler Somfy
Pouvez-vous donner les requêtes curl que domoticz doit envoyer a openhab pour que je me fasse une idée (dépliage du store, repli du store) ? Est-il possible de choisir le pourcentage d'ouverture avec un switch selector domoticz (récupérer la valeur du selector et l'envoyer à openhab via script bash ou lua) ?
Dernière question: en cas d'utilisation de la télécommande, est-ce que que openhab reçoit un retour d'état et est-il possible de le transmettre automatiquement à domoticz ?
Merci pour votre aide :)