Un appartement connecté en 2022 – Les volets Somfy IO

Si vous avez suivi le précédent billet, vous saurez que j’ai des volets Somfy IO dans mon appartement. Ces moteurs sont plutôt robustes, ont des télécommandes pratiques qui répondent bien, mais utilisent un protocole propriétaire, contrairement aux volets Blyss qui sont plus basiques. L’avantage c’est aussi que les moteurs communiquent en retour : on peut obtenir leur position en les interrogeant.

Mais comment on peut faire pour l’ajouter à un système de domotique ?

Hé bien, à première vue il faut acheter la box domotique Tahoma de Somfy, qui coûte assez cher (Entre 250 et 350 balles c’est selon). Au début, la box Tahoma devait supporter Homekit d’Apple. Y’avait même le logo et tout. Et puis un jour le logo a disparu et on en a plus jamais entendu parler. Le pire étant que ces moteurs m’ont été vendus par l’installateur à l’époque comme fonctionnant avec mes appareil Apple. Hahahaha.

Protip : ne croyez JAMAIS les promesses d’un constructeur sur sa compatibilité Homekit (ou autre) tant que ce n’est pas fait.

Du coup j’ai rongé mon frein et je n’ai pas acheté cette box à cause de ça. Et j’ai bien fait…

Le Velux KLF 200

Avec ses 250 euros de prix d’achat, le Velux KLF 200 ne vend pas du rêve. Cependant il a deux avantages, enfin trois.

  • Malgré son prix, il reste moins cher qu’une box Tahoma
  • Il est compatible avec le protocole io-homecontrol utilisé par Somfy pour ses moteurs de volets
  • Il propose de piloter de façon locale ses volets, alors que la box Tahoma exige que vous soyez connecté à Internet pour ça.

Hé ouais, c’est là que le bat blesse! La box Tahoma n’offre pas d’interface sur votre réseau local pour piloter vos volets depuis Homekit. Les plugins existants demanderont votre login et mot de passe Somfy pour se connecter sur leurs serveurs qui vont ensuite envoyer à votre box Tahoma l’ordre. Et si les serveurs Somfy sont kaput (c’est déjà arrivé) ou que votre internet est en berne (ça arrive aussi) bah votre domotique est inutilisable (il reste les télécommandes bien sûr)

Note : mon setup implique que je n’aie pas déjà de box Tahoma configurée. En effet, si vous utilisez déjà une box Tahoma, elle aura remplacé dans les moteurs de volets la clé par défaut par une clé générée qui permet de sécuriser les moteurs. Cependant cela est un peu overkill compte tenu qu’il faut, pour mettre les moteurs « découvrables » d’utiliser les télécommandes. Si vous avez déjà une box Tahoma donc, il faut procéder à un export des clés de sécurité pour le simporter via le KLF.

Du coup après avoir lu différents articles ou posts perdus de forums domotique je me suis décidé à commander ce boitier uniquement trouvable sur domotique-store. Il est arrivé plutôt vite et j’ai pu faire joujou avec.

Je vais pas passer en détail la configuration : si vous suivez le manuel c’est sans grande surprise.

  • Il y a un wifi interne auquel il faut se connecter pour configurer l’appareil. Toutes les infos sont sur une étiquette sous le boitier.
  • Une fois connecté il faut ajouter les volets un par un en appuyant sur le bouton PROG à l’arrière des télécommandes. Ils « wink » alors (ils descendent et remontent rapidement). Cela les rend découvrables par l’interface web du KLF 200.
  • On oubliera pas de configurer le réseau du KLF 200 depuis son interface avant de brancher un câble RJ45 sur le port adéquat.

Le code pour faire bouger les volets

J’ai donc un boitier, des volets configurés, une adresse IP et un mot de passe. J’ai cherché alors un moyen de parler à cette API locale via un script. Quelqu’un a fait ça sous NodeJS et j’ai bâti dessus. Je vous passe tous les essais un peu infructueux que j’ai faits pour vous livrer le produit fini sur ce dépôt github

Avec ce serveur prêt, j’ai utilisé le plugin Homebridge homebridge-http-curtain, car celui que j’utilisais pour les volets Blyss marchait avec des commandes monter/descendre, sans qu’on puisse directement définir une position. Sous Homekit en effet, on passe son doigt sur une jauge pour déterminer la position du volet en pourcentage d’ouverture. Le plugin pour les volets Blyss simule cela en calculant combien de temps il doit laisser le volet descendre et l’arrêter. Mais avec ces volets Somfy, pas besoin de tout ça.

Voici une idée de ma configuration Homebridge :

{
			"accessory": "HttpCurtain",
			"name": "Volets cuisine",
			"getCurrentPosUrl": "http://localhost:5000/kitchen/pos",
			"setTargetPosUrl": {
				"url": "http://localhost:5000/kitchen/pos/%d",
				"method": "PUT"
			},
			"pullingInterval": 2000,
			"invertPosition": true
		},
		{
			"accessory": "HttpCurtain",
			"name": "Volets chambre d'amis",
			"getCurrentPosUrl": "http://localhost:5000/guestroom/pos",
			"setTargetPosUrl": {
     			"url": "http://localhost:5000/guestroom/pos/%d",
				"method": "PUT"
			},
			"pullingInterval": 2000,
			"invertPosition": true
		},
		{
			"accessory": "HttpCurtain",
			"name": "Volets chambre",
			"getCurrentPosUrl": "http://localhost:5000/bedroom/pos",
			"setTargetPosUrl": {
				"url": "http://localhost:5000/bedroom/pos/%d",
				"method": "PUT"
			},
			"pullingInterval": 2000,
			"invertPosition": true
		},

Après avoir fait de nombreux essais il est apparu quelques petits bugs

  • Il y en a un qui fait que le volet est parfois marqué comme en « Fermeture » ou « Ouverture » par homekit et non « Ouvert » ou « Fermé ». C’est parce que la position « cible » diffère de la position « réelle » du volet. Il faut que je debug ça pour renvoyer à Homekit la bonne position mais j’ai juste un peu la flemme présentement.
  • Le KLF 200 devient inacessible au bout d’un moment. Problème déjà remonté par des gens sur Internet, la seule vraie solution consiste donc à le brancher sur une prise connectée afin d’automatiser son allumage/éteignage tous les jours. J’ai donc programmé une de mes prises pour arrêter/allumer l’appareil à 1h du matin. J’ai aussi prévu le coup dans le script afin qu’il ne panique pas si l’appareil n’est plus joignable et qu’il réessaye de s’y connecter en cas de panne.

Voilà, j’ai mes volets qui fonctionnent via Homekit et via Siri (« Dis Siri baisse les volets de la chambre à 30% », etc.) et ça m’a coûté un peu moins cher qu’une box Tahoma officielle et j’ai dû bidouiller quelques aprés-midi, mais au final je suis plutôt content du résultat.

Mes plans de domotique sont donc pratiquement finalisés. J’ai fait pratiquement tout ce que je voulais faire dans mon appartement et il reste plus ou moins que des babioles à faire. Ca fait du bien de terminer ce projet vieux déjà de quelques années 🙂

Si vous avez des questions n’hésitez pas 🙂