Intégration de l’éclairage IKEA TRADFRI au système Fibaro en quelques étapes simples

Dans cet article, je vais vous montrer comment connecter le système de maison intelligente Fibaro (version Z-Wave) avec l’éclairage IKEA et une porte TRADFRI. Il existe de plus en plus de tels appareils «intelligents» sur le marché, mais malheureusement, avec le nombre croissant d’entre eux, le nombre de problèmes lorsqu’ils doivent fonctionner ensemble augmente. Quel est l’intérêt d’avoir plusieurs systèmes à la maison, contrôlés à partir de plusieurs applications différentes et d’utiliser des applications IFTTT supplémentaires pour coopérer avec eux? Aucun – il vaut mieux avoir tout au même endroit. Porte IKEA TRADFRI (photo: documents de presse IKEA) J’ai été invité à écrire cet article par le fait qu’il n’y a pratiquement pas de documents complets sur ce sujet sur Internet – vous pouvez trouver quelque chose là-bas, malheureusement très obsolète et uniquement en anglais, je me suis donc un peu fatigué avant de traduire cela en une configuration de travail. J’espère que quelqu’un d’autre profitera de ces expériences 🙂 Pour connecter le système d’éclairage IKEA au système Fibaro basé sur le standard Z-Wave, vous aurez besoin de gadgets supplémentaires: tout serveur Linux, par exemple Raspberry Pi, pour environ 150 PLN- 400 (selon l’équipement et les accessoires – il n’est pas nécessaire qu’il s’agisse du dernier modèle) Mon kit d’éclairage est très modeste, car il ne s’agit que d’un contrôleur avec des bandes LED au-dessus du comptoir de la cuisine. Quel que soit le nombre de luminaires, cependant, la procédure est la même et vous permet d’ajouter de nombreuses lumières différentes. Pour contrôler par programme le système IKEA, il est nécessaire d’acheter une passerelle TRADFRI et de la connecter au réseau LAN avec un câble (elle ne dispose pas de module WiFi). Il est également préférable de donner à la passerelle une adresse IP permanente sur le routeur. Pour moi, ce sera 192.168.1.250. Lors de l’installation, il vaut également la peine de prendre une photo du bas de l’appareil, où se trouvent les codes d’authentification – cela sera utile plus tard.Le pire moment de toute la procédure est de connecter la porte au système IKEA. À ce stade, tout le monde a généralement une télécommande couplée au système … Eh bien, alors vous ne pouvez plus ajouter de portail, vous devez réinitialiser le système et tout ajouter à nouveau. Si c’est un conducteur, comme dans mon cas, ce n’est pas un problème, et si plus … il faut serrer les dents, parfois grimper à une échelle ou plonger sous les meubles et, selon les instructions d’IKEA, tout connecter Encore ensemble. La passerelle TRADFRI agit alors comme un « hôte » et non comme une télécommande. D’accord, je suppose que le portail est déjà connecté et que l’éclairage peut être contrôlé à partir de l’application IKEA ou de la télécommande. Il est temps de le connecter à Fibaro. Directement, bien sûr, ce n’est pas possible, car IKEA a choisi la norme sans fil Zigbee, et Fibaro utilise traditionnellement la norme Z-Wave. Cela changera peut-être avec les mises à jour ultérieures du Fibaro Home Center 3, qui prendra également en charge les appareils Zigbee, mais cela ne se produira probablement pas encore. Un intermédiaire est donc nécessaire. Il se trouve que Zigbee est une norme également utilisée par les ampoules Philips Hue, ce qui facilite les choses, car la prise en charge de ces appareils est assez bonne parmi la communauté des passionnés de maison intelligente. Nous utilisons donc l’application diyHue, qui émule le pilote système Hue et fournit une API REST simple pour contrôler les périphériques, et nous passons au Raspberry Pi, sur lequel Raspbian est installé. Je recommande vivement d’installer Docker, car l’application diyHue mentionnée a également une image docker officiellement préparée et prise en charge par les créateurs. L’installation même de Docker sur raspberry est très simple et à peine plus compliquée que sur les principales distributions Linux les plus populaires. Nous créons un répertoire pour notre application: mkdir / var / docker / diyHuecd / var / docker / diyHue Dans ce répertoire, nous créons le sous-répertoire export, où la configuration sera stockée.: mkdir export Nous pouvons maintenant utiliser docker-compose pour préparer la configuration. Cependant, l’installation de docker-compose est assez complexe sur Raspbian, ou du moins tout n’a pas fonctionné pour moi. Je suggère de le sauter et d’écrire vous-même un script shell simple pour exécuter le conteneur à partir de diyHue: #! / Bin / bashdocker run -d –name diyHue –network = « bridge » -e ‘MAC = b8: 27 : eb: ec: 17: d0 ‘ -e’ IP = 192.168.1.251 ‘ -v / var / docker / diyHue / export /: / opt / hue-emulator / export /: rw -p 9980: 80 / tcp –restart always diyhue / core: dernier Nous exécutons le conteneur en arrière-plan (-d), l’appelons diyHue et utilisons le mode réseau pont – l’application diyHue a été préparée de telle manière que nous n’avons pas à utiliser le mode hôte et à partager la couche réseau avec l’hôte système. Néanmoins, si vous rencontrez des problèmes avec, par exemple, UPnP, vous pouvez essayer de changer ce paramètre. En mode pont, nous devons entrer l’adresse MAC et l’adresse IP sous lesquelles la framboise est vue dans notre réseau comme des variables d’environnement. Enfin, nous montons le répertoire d’exportation vide préalablement préparé dans le chemin approprié et publions le port 80 à partir du conteneur – en gros n’importe lequel. Idéalement, cela ne devrait pas être le port 80 par défaut, car nous courons le risque de conflits à l’avenir. J’ai choisi 9980. Pour l’utilisation de l’API REST, cela n’a pas d’importance, mais je ne sais pas comment, par exemple, avec les applications Philips Hue pour téléphones, si quelqu’un voulait les utiliser – je ne les utilise pas. La configuration du conteneur est fermée par la politique de redémarrage (toujours, grâce à laquelle le conteneur sera exécuté à chaque redémarrage du système) Nous donnons le droit d’exécuter le script et de l’exécuter. Docker téléchargera l’image et exécutera le conteneur: chmod + x launcher.sh ./launcher.sh Après le démarrage, nous pouvons suivre les journaux de l’application (le paramètre -f imprimera régulièrement le nouveau contenu du logo à l’écran jusqu’à ce qu’il soit interrompu par CTRL-C): docker enregistre diyHue -f dans le navigateur et appelle le panneau Web de l’application à l’adresse http://192.168.1.251:9980 (il s’agit simplement de l’adresse et du port Raspbery Pi publiés par Docker). L’interface de l’application est assez approximative, mais il ne s’agit pas de l’expérience esthétique. Il n’y a que deux choses que nous devons faire et nous l’avons pour toujours: Interface de l’application DiyHue Accueil La première chose à faire est d’ajouter la passerelle IKEA TRADFRI et tous les contrôleurs d’éclairage associés. Nous allons dans l’option Importer depuis Tradfri et saisissons l’adresse IP de notre passerelle (pas les framboises!), Ainsi que le code de sécurité à 16 caractères du bas du boîtier. Après avoir cliqué sur Enregistrer, vous devriez voir un message concernant le nombre d’appareils détectés et ajoutés à l’application diyHue Ajout d’une porte IKEA Tradfri à l’application diyHue La deuxième chose est d’ajouter un utilisateur que nous utiliserons pour déclencher l’API REST et gérer le état de l’éclairage. Nous utiliserons cette API à cette fin. Nous pouvons utiliser Postman, Curl ou l’interface web de l’application diyHue disponible sur http://192.168.1.251:9980/debug/clip.html. Cependant, avant de pouvoir faire quoi que ce soit, nous devons simuler une «pression sur un bouton» sur la passerelle Philips Hue et autoriser le nouvel appareil. Nous faisons cela en entrant l’option Link device dans le menu principal, en entrant le nom d’utilisateur et le mot de passe Hue par défaut. Nous saisissons à nouveau ces données dans le formulaire, cliquez sur Activer et à partir de maintenant, nous avons 30 secondes pour effectuer l’étape suivante. Nous envoyons une requête POST au point de terminaison / api avec le contenu suivant: POST / api {« devicetype »: « fibaro » } / code Le « type d’appareil » ci-dessus n’a pas d’importance, c’est en fait un nom d’utilisateur approprié. En réponse, nous recevrons des informations sur le succès et un identifiant d’utilisateur. Nous devons l’écrire, nous l’utiliserons à l’avenir.Avant de commencer l’intégration avec Fibaro, il vaut la peine de tester si tout fonctionne. Essayons d’obtenir des informations sur notre éclairage: GET / api / (identifiant ici) / lights En réponse, nous obtenons des détails sur l’état des pilotes individuels. Pour le moment, celui avec l’identifiant 1 est désactivé. Résultat de l’appel des voyants d’extrémité avec la liste de tous les périphériques ajoutés Essayons d’allumer la lumière, cette fois par requête PUT: PUT / api / (identifiant ici) / lights / 1 / state {« on »: true, « bri »: 254} / code Comme vous pouvez le voir, la luminosité est donnée sur une échelle de 0 à 254. Lorsque vous éteignez la lumière, vous pouvez, mais ce n’est pas obligatoire, entrer 0 dans ce paramètre. Le plus important est l’état. Si nous avions des ampoules RGBW, nous pourrions également spécifier des couleurs individuelles ici lorsqu’elles sont activées.Enfin, sauvegardons la configuration de façon permanente: GET / save Notez que le point de terminaison ci-dessus n’est plus dans l’espace API. Bien sûr, il peut également être appelé en entrant simplement l’adresse dans le navigateur. Connaissant les points de terminaison pour le contrôle de l’éclairage et avoir un utilisateur, nous sommes déjà « dans une maison (intelligente) » et nous pouvons pratiquement tout faire avec de la lumière de n’importe où. En ce qui concerne l’intégration avec Fibaro, ma proposition est de configurer un périphérique virtuel pour chaque pilote (ampoules), afin que vous puissiez les contrôler séparément et de manière pratique. Connectez-vous à Fibaro Home Center 2 (j’ai une telle unité de contrôle) et ajoutez un nouveau périphérique virtuel. Comme adresse IP et port, bien sûr, nous donnons les informations sur l’application diyHue, tout comme dans le navigateur.Configuration de base – l’adresse IP et le port de l’application diyHue En fonction de l’appareil que nous configurons, nous ajoutons les boutons appropriés ou curseurs. Comme je l’ai mentionné, j’ai un éclairage à intensité variable au-dessus du comptoir de la cuisine, je configure donc le curseur avec l’intensité lumineuse. Le code LUA suivant fait l’affaire pour un appareil avec l’ID 1: hueLightID = 1; hueUserHash = ‘(identifiant ici)’; vDeviceID = fibaro: getSelfId (); hueIP = fibaro: get (vDeviceID, « IPAddress »); huePort = fibaro: get (vDeviceID, « TCPPort »); if (sliderValue == 0) alors hueBrightness = sliderValue; hueOn = faux; else hueBrightness = math.floor (sliderValue 2,54); hueOn = vrai; endHue = Net.FHttp (hueIP, huePort); response, status, errorCode = Hue: PUT (‘/ api /’ .. hueUserHash .. ‘/ lights /’ .. hueLightID .. ‘/ state’, ‘{« on »:’ .. tostring (hueOn) .. ‘, « bri »:’ .. hueBrightness .. ‘}’); if (tonumber (status) == 200) then if (hueOn) then fibaro: call (vDeviceID, « setProperty », « currentIcon », 1008); else fibaro: call (vDeviceID, « setProperty », « currentIcon », 1007); end end / code Le dernier bloc d’instructions est facultatif – il active l’icône appropriée pour le voyant. Bien sûr, nous devons télécharger ces icônes au préalable sur Fibaro, puis définir leurs identifiants. Un exemple de configuration de curseur dans un appareil virtuel Fibaro. Testez-le! La solution décrite présente un inconvénient: si entre-temps quelqu’un joue avec la télécommande, l’état de l’appareil virtuel dans Fibaro ne sera pas mis à jour. Cela n’affecte pas la gérabilité de cet appareil, mais peut être important dans certains scénarios. Rien ne vous empêche d’interroger l’API diyHue sur l’état actuel de l’appareil, si nécessaire. Cependant, le poser dans la boucle principale de l’appareil virtuel chaque seconde me semble être un excès de forme sur le contenu et personnellement je n’ai pas décidé de le faire. Le vrai plaisir, bien sûr, est encore à venir, car contrôler manuellement le la lumière de l’application Fibaro est le scénario le moins intéressant. Vous pouvez maintenant créer avec succès des scènes qui allumeront et éteindront automatiquement la lumière à certains moments. Dans mon cas, le déclencheur est un capteur de mouvement dans la cuisine. De plus, la nuit, après 23 et avant 6, la lumière s’allume au niveau de luminosité le plus bas. Je vous laisse cette partie de la configuration, et peut-être pour un autre article;)

Laisser un commentaire