Formation PUB420 : Système domotique DIY, 2020 Mozilla Webthings Gateway

8.1 Installation de WebThings et premier accès


WebThings est un logiciel de domotique à code source ouvert très populaire. C'est un excellent choix pour votre système domotique DIY.

Ce logiciel domotique est relativement récent. Sa première version, nommée Mozilla WebThings Gateway, a été lancée en 2019. Auparavant, une équipe a travaillé pendant 2 ans sur la version expérimentale qui portait alors le nom Project Things.

Depuis décembre 2020, WebThings n'est plus supporté par Mozilla et il vole de ses propres ailes.

Il ne faut pas confondre WebThings avec Samsung SmartThings, une boîte domotique commerciale.

L'installation de WebThings ne requiert aucune action directement sur le Pi, même pas lors de l'installation du système d'exploitation.

Vous n'aurez pas non plus à travailler directement sur le Pi pour configurer et contrôler votre système domotique. D'ailleurs, avec la procédure présentée ici, il n'y aura pas d'interface graphique sous Raspberry Pi OS (il s'agit en fait de Raspberry Pi OS Lite) puisque vous n'en aurez pas besoin. Tout se fera à partir d'un navigateur sur votre ordinateur ou encore sur l'application Web progressive (en anglais : progressive Web app ou pwa) sur votre appareil mobile, grâce à un tunel sécurisé.

En prime, la technique que je vous propose ici vous permet une installation complètement headless, c'est-à-dire que vous n'aurez pas besoin d'un écran ni d'un clavier.

Vous pourrez tout de même utiliser un écran et un clavier pour accéder au Raspberry Pi en cas de besoin, par exemple pour l'arrêter ou le redémarrer de façon sécuritaire.

▼Publicité Le texte se poursuit plus bas

Préparer le Raspberry Pi

Commencez par prendre connaissance de la fiche suivante afin d'acquérir les bonnes composantes de base : Un Raspberry Pi comme unité centrale.

Installer WebThings

WebThings s'installe à partir d'une image qui contient à la fois le système d'exploitation et le logiciel de domotique.

Schéma installation WebThings

  • Téléchargez le logiciel ici : https://webthings.io/gateway/.
  • Décompressez le contenu du fichier zip sur votre ordinateur. Vous obtiendrez un fichier .img, dont le nom devrait être 2020-12-02-Raspbian (la date pourrait être différente).
  • Insérez la carte micro SD dans votre ordinateur.
  • Il faut maintenant copier l'image sur la carte micro SD. On dira « flasher » l'image sur la carte.
    • Sous Mac ou Linux, l'image peut être flashée à l'aide de la commande dd sans avoir à faire d'installation supplémentaire. Les instructions détaillées sur cette commande sont données ici : Copie intégrale d'un disque avec la commande dd.

      Les commandes pour copier l'image sur la carte sont les suivantes (version Mac). Prenez soin de remplacer le N par le chiffre qui correspond au point de montage (pour connaître le point de montage sous Mac : diskutil list).

      Terminal

      diskutil unmountDisk /dev/diskN

      sudo dd bs=1m if=chemin/2020-12-02-Raspbian of=/dev/rdiskN conv=sync

      Note : sous Mac, pour copier facilement le chemin du fichier .img, vous pouvez utiliser cette technique : Copier le chemin d'un fichier.

      Patientez, cette opération peut prendre de longues minutes.

    • Il est également possible de flasher l'image sur la carte à l'aide d'un utilitaire graphique, par exemple Etcher. Cet utilitaire peut être utilisé sous Mac, Linux ou Windows.

Activer SSH

Vous voudrez certainement activer les communications SSH sur le Pi afin de pouvoir vous y connecter au besoin à partir d'un ordinateur. Ceci se fait en créant un petit fichier vide nommé ssh à la racine de la partition boot de la carte micro SD.

Sous Mac, Linux ou Window, vous pouvez créer ce fichier à l'aide des outils graphiques de votre choix.

Mac et Linux vous permettent également de le faire à l'aide des commandes suivantes :

Terminal

cd /Volumes/boot
touch ssh

Attention : une fois SSH activé, vous devrez changer le mot de passe du Raspberry Pi afin de ne pas ouvrir un trou de sécurité.

Remarquez qu'au prochain démarrage du Pi, ce fichier disparaîtra. Pour savoir si le SSH est activé, vérifiez si le service sshd est actif à l'aide de la commande ps -ef | grep sshd.

Note : ceci peut également être fait après coup, lorsque WebThings sera en marche. Dans l'interface de WebThings, vous pourrez cliquer sur les barres horizontales dans le coin supérieur gauche puis choisir Paramètres / Développeur. Vous pourrez alors cocher Activer SSH.

Activer SSH à partir de l'interface de WebThings

Permettre de brancher un écran

En cas de problème réseau, vous serez heureux de pouvoir vous brancher directement sur le Pi avec un écran et un clavier. Suivez les instructions ici pour y arriver.

Adresse IP statique

Il est préférable de donner une adresse IP statique à la boîte domotique, c'est-à-dire à votre Raspbery Pi. Les instructions pour y parvenir sont disponibles sur cette fiche : Donner une adresse IP statique au Raspberry Pi - En insérant la carte micro SD dans votre ordinateur.

Dans le cas où vous disposez d'un écran et d'un clavier branchés sur le Pi, il est plus simple de donner l'adresse IP statique plus tard, lorsque le Pi sera démarré : Donner une adresse IP statique au Raspberry Pi - Dans une fenêtre Terminal directement sur le Pi ou via SSH

Démarrer le Raspberry Pi

Le système d'exploitation et le logiciel de domotique sont maintenant intallés et les configurations de bases sont réalisées. Il est temps de mettre tout ça en marche!

  • Coupez l'alimentation du Raspberry Pi si ce n'est pas déjà fait.
  • Retirez la carte micro SD de l'ordinateur de façon sécuritaire puis insérez-la dans le Raspberry Pi.
  • Si vous souhaitez utiliser des clés USB Z-Wave ou Zigbee dans votre système domotique, branchez-les immédiatement au Pi.
  • Mettez le Pi sous tension.
  • Même si ce n'est pas nécessaire pour travailler avec WebThings, vous pouvez brancher un écran et un clavier au Raspberry Pi ou encore vous brancher via SSH puis vous authentifier avec le code d'usager pi et le mot de passe raspberry.
  • Puisque vous avez activé SSH, pensez à changer ce mot de passe pour refermer le trou de sécurité.

Configurer le réseau sans fil

Pour configurer l'accès au réseau sans fil sur le Pi, vous avez une contrainte à respecter : le Pi et l'ordinateur doivent être branchés sur le même réseau.

Si le Pi est branché au réseau à l'aide d'un câble RJ-45, vous pouvez passer immédiatement à la section Accéder à WebThings Gateway.

Dans le cas où le Pi est branché au réseau sans fil, que ce soit via Wi-Fi ou en partageant la connection cellulaire d'un téléphone (hot spot), vous devez réaliser la manipulation qui suit :

  • Ouvrez un navigateur sur votre ordinateur puis branchez-vous sur le réseau WebThings Gateway XXXX.

    Réseau de WebThings

  • Un écran vous demandera ensuite de vous connecter à un réseau. Choisissez votre réseau habituel puis connectez-vous. Votre ordinateur sera de nouveau connecté à votre réseau et vous aurez en plus configuré l'accès au réseau sans fil du Raspberry Pi.

    Note : si cet écran n'apparaît pas automatiquement, vous pouvez l'afficher à partir de l'URL http://192.168.2.1 lorsque vous êtes branché au réseau WebThings Gateway XXXX.

    Réseau de WebThings

Accéder à WebThings Gateway

Pour votre premier accès à WebThings Gateway, entrez l'URL http://gateway.local dans votre navigateur. Vous pouvez également entrer l'adresse IP du Raspberry Pi avec le port 8080 (ex : http://192.168.1.145:8080).

Rappel : pour que cela fonctionne, il faut que l'ordinateur soit branché sur le même réseau que le Raspberry Pi.

WebThings vous offira la possibilité de configurer gratuitement un sous-domaine. Ceci générera notamment un certificat SSL pour vous permettre d'accéder à votre système de façon sécuritaire à partir d'internet.

Cette étape est optionnelle mais si vous ne le faites pas immédiatement, il ne sera théoriquement pas possible de le faire plus tard à moins de tout réinstaller (ce lien vous donne cependant des pistes de solution : https://discourse.mozilla.org/t/solved-how-to-reclaim-a-domain-at-mozilla-iot-org-after-skiped-first-steps/49218/2).  

Création du sous-domaine

Vous pouvez désormais accéder à votre système domotique :

  • localement avec l'URL http://gateway.local
  • localement ou à partir d'internet avec le sous-domaine choisi, par exemple https://monsousdomaine.webthings.io.

Remarquez que l'interface Web de ce site est une application Web progressive. Vous pouvez l'ajouter sur l'écran d'accueil de votre appareil mobile et ce sera comme s'il s'agissait d'une application native.

Création du premier utilisateur

Lors de votre premier accès, vous serez invité à créer un premier utilisateur pour votre système domotique.

Premier utilisateur

Choisir un mot de passe est important, particulièrement si vous avez configuré un sous-domaine puisque si une personne réussissait à le découvrir, elle pourrait accéder à votre système domotique même si elle est à l'autre bout du monde.

Voilà, vous pouvez maintenant ajouter des appareils connectés à votre système domotique !

Écran d'accueil WebThings

Pour plus d'information

« Getting Started - WebThings Gateway for Raspberry Pi ». Mozilla. https://iot.mozilla.org/docs/gateway-getting-started-guide.html

« User Guide - WebThings Gateway for Raspberry Pi ». Mozilla. https://iot.mozilla.org/docs/gateway-user-guide.html

« How to build your own private smart home with a Raspberry Pi and Mozilla’s Things Gateway ». Mozilla Hacks. https://hacks.mozilla.org/2018/02/how-to-build-your-own-private-smart-home-with-a-raspberry-pi-and-mozillas-things-gateway/

« Things Gateway, Part 1 - History ». Two Braids. https://www.twobraids.com/2018/02/lars-and-real-internet-of-things-part-1.html

« An IoT Forecast That’s Sunny and Clear ». Fosdem. https://archive.fosdem.org/2020/schedule/event/a_mozilla_iot_forcast_thats_sunny_and_clear/attachments/slides/4200/export/events/attachments/a_mozilla_iot_forcast_thats_sunny_and_clear/slides/4200/webthings_fosdem_2020.pdf

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre