GNU/Linux >> Tutoriels Linux >  >> Linux

Domotique :Exécuter Home Assistant avec Podman

Les appareils intelligents nous entourent et la longue liste d'appareils prêts à se connecter à l'Internet des objets (IoT) s'allonge chaque jour. Par exemple, la popularité des ampoules intelligentes a augmenté rapidement au cours des dernières années, et le marché continue de croître, à tel point qu'il devrait être "l'appareil domestique intelligent à la croissance la plus rapide au cours des cinq prochaines années". Alors que quelques grands noms du domaine dominent le marché, de nombreux concurrents plus petits se joignent à la mêlée et proposent des alternatives moins chères avec encore plus de fonctionnalités. C'est formidable pour la concurrence, mais cela soulève une grave préoccupation et une situation que de nombreux administrateurs système ne connaissent que trop bien :un cauchemar d'intégration.

[ Vous aimerez peut-être aussi : Aide à la recherche sur le COVID-19 à l'aide de Folding@home sous Linux ]

Le problème est que chaque fabricant a tendance à fournir sa propre solution intégrée et fermée pour contrôler ses appareils, généralement sous la forme d'une application mobile. Mais que se passe-t-il lorsque vous décidez d'acheter un nouvel appareil d'un fabricant différent de celui que vous avez déjà intégré à votre domotique ? Il y a de fortes chances que vous deviez utiliser plusieurs applications pour contrôler les appareils, et ne commençons pas à parler de la façon de les faire fonctionner ensemble de manière automatisée. Il existe des services cloud disponibles pour résoudre ce problème, en fournissant un moyen de créer des applications et d'automatiser le contrôle des appareils de différents fabricants. Ces services offrent une excellente plate-forme pour démarrer votre voyage vers l'automatisation des appareils intelligents, mais ces services ont tendance à fonctionner avec un abonnement payant ou sur des modèles "freemium" très limités, et vous vous retrouverez de plus en plus dépendant de ce service basé sur le cloud. .

En 2013, un projet open source a été lancé pour résoudre ce type de problèmes et ramener le contrôle local des appareils intelligents depuis le cloud et à la maison. Aujourd'hui, le projet va bon train, avec plus de 2 500 contributeurs et de nouvelles intégrations et fonctionnalités déployées fréquemment. Dans cet article, je vais vous présenter la plateforme domotique open source appelée Home Assistant.

Déployer le conteneur Home Assistant

Home Assistant peut être déployé à l'aide de différentes méthodes d'installation, dont la méthode recommandée consiste à déployer le système d'exploitation Home Assistant, qui est livré avec tout ce dont vous avez besoin. Cependant, nous utiliserons l'image du conteneur pour cet avant-goût, ce qui nous donnera un aperçu rapide du fonctionnement de Home Assistant. Les étapes suivantes supposent que vous disposez déjà d'un environnement d'exécution de conteneur déployé sur votre système, tel que Podman. Home Assistant fonctionne sur le port TCP 8123, vous devez donc vous assurer que ce port n'est pas déjà utilisé sur votre système.

1. Commencez par extraire l'image du conteneur :

$ podman pull docker.io/homeassistant/home-assistant:stable

2. Configurez un répertoire de configuration :

$ mkdir ~/hass_config

3. Déployez le conteneur à l'aide de Podman :

$ podman run --init -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v ~/hass_config:/config:Z \
--network=host \
homeassistant/home-assistant:stable

4. Une fois le conteneur opérationnel, ouvrez votre navigateur Web préféré et rendez-vous sur http://127.0.0.1:8123/ . Créez votre compte d'utilisateur administrateur en remplissant les champs obligatoires.

5. Si vous avez déjà des appareils intelligents connectés à votre réseau domestique, vous constaterez peut-être sur l'écran suivant que Home Assistant les a déjà découverts et les présente comme des intégrations à installer immédiatement. Nous allons ignorer cette étape et expliquer comment configurer les intégrations dans la section suivante. Appuyez sur Terminer pour passer à l'interface graphique Lovelace de Home Assistant et explorer un peu pour vous familiariser avec la configuration du terrain.

Remarque  :Si vous remarquez que certains éléments de menu sont manquants ou qu'un message d'erreur comme celui-ci s'affiche dans votre journal Home Assistant :

Impossible de configurer les dépendances de default_config. Échec de la configuration des dépendances :automatisation.

Redémarrez simplement Home Assistant via Configuration -> Contrôles du serveur -> Redémarrer .

Intégrations et automatisation

Avec votre conteneur Home Assistant déployé, passons à la configuration. Intégrations dans Home Assistant nous donnent la possibilité de nous interfacer avec des entrées externes, qu'il s'agisse d'une API en ligne telle qu'un horaire de transport public ou d'un appareil intelligent physique tel qu'une bande lumineuse LED ou un humidificateur intelligent. Au moment de la rédaction, Home Assistant propose une collection de 1 765 intégrations, et cette bibliothèque se développe rapidement. Vous constaterez que de nombreuses grandes marques sont déjà prises en charge, et si votre maison contient déjà une sorte d'ampoule intelligente, de téléviseur ou de machine à café, il y a de fortes chances que Home Assistant ait déjà une intégration pour cela. Sinon, et que vous voulez vous salir les mains, le projet est open source, hébergé sur GitHub, et est toujours à la recherche de contributions !

Pour cet exemple, je vais configurer le Met.no intégration pour récupérer les prévisions météorologiques dans les pays nordiques. N'hésitez pas à utiliser un autre fournisseur de services météo si vous le souhaitez.

  1. Dans l'interface graphique de Home Assistant, accédez à Configuration -> Intégrations -> Ajouter une intégration . Recherchez « Meteorologisk institutt (Met.no) » et saisissez le nom, la latitude et la longitude souhaités. Ceux-ci peuvent déjà être remplis pour vous par Home Assistant, mais si ce n'est pas le cas, vous pouvez les récupérer ailleurs sur Internet et les saisir vous-même.
  2. Appuyez sur Soumettre puis Terminer pour ajouter l'intégration à votre configuration Home Assistant. À l'aide du volet de navigation sur la gauche, cliquez sur Aperçu pour accéder à votre interface graphique Lovelace.
  3. Par défaut, Home Assistant est configuré pour remplir automatiquement l'interface graphique Lovelace pour vous, mais à un moment donné, vous voudrez prendre le contrôle et le configurer comme vous le souhaitez. Cliquez sur l'icône du menu kebab (trois points verticaux) en haut à droite et sélectionnez Modifier le tableau de bord -> Prenez le contrôle .
  4. Cliquez sur Ajouter une carte et pour le type de carte, sélectionnez Prévisions météo . Les options de configuration de cette carte vous seront ensuite présentées. Dans la plupart des cas, Home Assistant aura automatiquement sélectionné l'entité correcte pour vous, mais vous pouvez utiliser le menu déroulant pour modifier l'entité si nécessaire. Dans mon cas, j'ai donné à mon intégration Met.no le nom "Home", et donc l'entité est automatiquement nommée "weather.home". J'ai également défini l'attribut secondaire à "Vitesse du vent".
  5. Après avoir cliqué sur Enregistrer , la carte est ajoutée à l'interface graphique de Lovelace. Vous pouvez supprimer des cartes en cliquant sur l'icône du menu kebab en bas à droite de la carte respective et en sélectionnant Supprimer la carte . Lorsque vous avez terminé de modifier le tableau de bord, appuyez sur le X en haut à gauche pour revenir au mode d'affichage.

Maintenant que nous avons ajouté une intégration, nous pouvons envisager de mettre en place une automatisation. Nous allons créer une automatisation qui envoie chaque matin un bref bulletin météo sur votre téléphone via une notification push. Pour que cela fonctionne, vous devrez installer l'application Home Assistant sur votre appareil mobile et vous connecter. Une fois connecté, votre téléphone commencera à signaler à votre serveur Home Assistant. En regardant sous Configuration -> Entités , vous trouverez une liste des différents capteurs que votre téléphone signale à Home Assistant. La communication sur le port TCP 8123 doit être autorisée entre votre téléphone et votre conteneur Home Assistant sur le réseau local, vous devrez donc peut-être ajuster vos règles de pare-feu en conséquence.

1. Rendez-vous sur Configuration -> Automatisations -> Ajouter une automatisation -> Commencer avec une automatisation vide .

2. Nommez l'automatisation "Météo du matin".

3. Sous Déclencheurs , sélectionnez Dim pour le type et assurez-vous que Événement est réglé sur Sunrise . Vous pouvez ajouter un décalage tel que "01:00:00" pour une heure après le lever du soleil ou "-01:00:00" pour une heure avant le lever du soleil. Vous pouvez également simplement définir une heure fixe en utilisant le Heure saisir.

4. Sous Actions , définissez le type sur Appeler le service et définissez le Service à "notify.mobile_app_votre_modèle_de_téléphone" . Pour le service data, nous devons écrire notre configuration au format YAML, et nous utiliserons le modèle Jinja2 pour exécuter certaines instructions conditionnelles. Vous pouvez trouver plus d'informations sur les modèles dans Home Assistant.

title: Weather Report
message: >-
  The current temperature is {{state_attr("weather.home", "temperature") }} degrees
  with an expected maximum of {{ state_attr("weather.home","forecast")[0]["temperature"] }} degrees.
  {%if state_attr("weather.home", "forecast")[0]["precipitation"] | float == 0 %}
    There is no rain forecast today
  {% else %}
    You can expect {{ state_attr("weather.home","forecast")[0]["precipitation"] }}mm of rain today
  {% endif %}
  {% if state_attr("weather.home","wind_speed") | float > 20%}
    and it's a little windy outside, so hold on to your hat!
  {% else %}
    and it's not too windy.
  {% endif %}

5. Appuyez sur le bouton bleu Enregistrer bouton pour enregistrer l'automatisation. Sur les automatisations page, vous pouvez tester votre toute nouvelle automatisation en cliquant sur Exécuter . Vous devriez maintenant avoir une notification push sur votre téléphone avec un court bulletin météo de Home Assistant qui ressemble à ceci :

[ Besoin d'en savoir plus sur Ansible ? Suivez un cours de présentation technique gratuit de Red Hat. Ansible Essentials :Présentation technique de la simplicité dans l'automatisation. ] 

Récapitulez

Il s'agit d'une installation, d'une configuration et d'un déploiement de base de Home Assistant. J'ai mis en place une nouvelle intégration sur le tableau de bord Lovelace et vous ai donné un aperçu des automatisations. Bien que j'aie à peine effleuré la surface de l'abondance d'intégrations, d'automatisations et de configurabilité de Home Assistant, cela devrait au moins vous donner un avant-goût de ce qui est possible. En utilisant pleinement les offres de Home Assistant, vous découvrirez un nombre presque infini de possibilités ; vous n'êtes vraiment limité que par votre imagination. Si vous avez apprécié cette courte introduction, je vous recommande de continuer à jouer avec l'image du conteneur pour avoir une idée de ce que Home Assistant peut faire pour vous. Si vous souhaitez configurer un environnement de production, consultez le système d'exploitation Home Assistant.


Linux
  1. Comment supprimer des comptes d'utilisateurs avec le répertoire personnel sous Linux

  2. Exécuter Podman sans racine en tant qu'utilisateur non root

  3. Aperçu technologique :Exécution d'un conteneur à l'intérieur d'un conteneur

  4. Exécution du script avec ". » Et avec « source » ?

  5. Vous manquez d'espace disque sur le répertoire /home ?

Démarrer avec Sweet Home 3D sous Linux

Tutoriel Podman - Premiers pas avec Podman

Automatisation de ServiceNow avec Red Hat Ansible Automation Platform

Comment exécuter des pods en tant que services systemd avec Podman

Introduction à l'exécution d'un serveur OpenVPN

Bash Beginner Series #10 :Automatisation avec Bash