<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Archives des automation - La programmation sur le web</title>
	<atom:link href="https://programmation.surleweb-france.fr/tag/automation/feed/" rel="self" type="application/rss+xml" />
	<link>https://programmation.surleweb-france.fr/tag/automation/</link>
	<description>La programmation gratuite pour tous</description>
	<lastBuildDate>Sun, 03 Apr 2022 08:34:47 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2023/08/cropped-19518430-icone-de-programmation-pour-votre-site-web-mobile-presentation-et-conception-de-logo-gratuit-vectoriel.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Archives des automation - La programmation sur le web</title>
	<link>https://programmation.surleweb-france.fr/tag/automation/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">176210735</site>	<item>
		<title>Home assistant, automatiser une action des jours précis</title>
		<link>https://programmation.surleweb-france.fr/home-assistant-automatiser-une-action-des-jours-precis/</link>
					<comments>https://programmation.surleweb-france.fr/home-assistant-automatiser-une-action-des-jours-precis/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Mon, 29 Nov 2021 16:18:33 +0000</pubDate>
				<category><![CDATA[Domotique]]></category>
		<category><![CDATA[alexa]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[condition]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[sensor_binary]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[workday]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=1277</guid>

					<description><![CDATA[<p>Mise en place d'une automatisation des notifications en fonction de l'heure et du jour de la semaine dans Home Assistant</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/home-assistant-automatiser-une-action-des-jours-precis/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/home-assistant-automatiser-une-action-des-jours-precis/">Home assistant, automatiser une action des jours précis</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Le rôle de la domotique est de simplifier le quotidien bien que la mise en place peut être fastidieuse. Sans chercher à faire des actions compliquées, gérer une alarme, une notification avec Home Assistant, si celle-ci est récurrente, est très simple.</p>



<p>Dans ma commune, les déchets sont ramassés deux jours par semaine :</p>



<ul class="wp-block-list"><li>le mercredi matin, ce sont les déchets non recyclables (poubelle bleue)</li><li>le jeudi matin, il s&rsquo;agit des déchets recyclacles (poubelle jaune)</li></ul>



<p>Voilà, le petit script afin d&rsquo;automatiser une notification sur mes enceintes Alexa la veille au soir.</p>



<h2 class="wp-block-heading">Prérequis</h2>



<p>Pour cet article simple, il faudra tout de même avoir les notifications sur les enceintes Alexa d&rsquo;activer, si ce n&rsquo;est pas le cas, tu peux te rendre sur <a href="https://programmation.surleweb-france.fr/home-assistant-ajouter-les-enceintes-alexa/" target="_blank" rel="noreferrer noopener">Donner de la voix à Home Assistant avec Alexa</a>.</p>



<h2 class="wp-block-heading">Création des sensors</h2>



<p>Une fois que tu arrives à faire parler tes enceintes, nous allons créer 2 sensors, nous pourrions faire autrement mais je trouve cette manière plus esthétique et cela permet d&rsquo;appréhender les capteurs binaires avec la plateforme <strong>workday</strong>. La documentation sur <strong>Workday </strong>est disponible sur le <a href="https://www.home-assistant.io/integrations/workday/" target="_blank" rel="noreferrer noopener">wiki de HA</a>.</p>



<p>Tout d&rsquo;abord, dans le fichier <em>configuration.yaml</em>, j&rsquo;ai ajouté cette ligne :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">binary_sensor: !include binary_sensors.yaml</pre>



<p>Le fichier<em> binary_sensors.yaml</em> contient l&rsquo;ensemble de mes capteurs de ce type.</p>



<p>Nous allons créer nos deux capteurs :</p>



<ul class="wp-block-list"><li>le premier pour la veille du ramassage des poubelles bleues</li><li>le second pour la veille du ramassage des poubelles jaunes</li></ul>



<p>Mon fichier contient donc cela :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># sensor pour le jour de ramassage de poubelle bleu
- platform: workday
  country: FR
  name: jour_poubelle_bleu
  workdays: [tue]

# sensor pour le jour de ramassage de poubelle jaune
- platform: workday
  country: FR
  name: jour_poubelle_jaune
  workdays: [wed]</pre>



<p>Rien de très compliqué, il est à noter que <strong>country </strong>est obligatoire. La liste <strong>workdays </strong>contient les jours pour lesquels nous voulons que notre sensor soit à <strong>on</strong>.</p>



<p>Avec ce type de sensor, nous pourrions exclure des jours, des périodes (par exemple de vacances) ou des évenements déjà définis (Noël &#8230;) dans mon cas, je ne les utilise pas.</p>



<p>S&rsquo;en est fini pour les sensors, prochaine étape, l&rsquo;automatisation.</p>



<h2 class="wp-block-heading">Automatisation des notifications</h2>



<p>Maintenant, nous allons simplement créer 2 automations, une pour le mardi soir et une autre pour le mercredi soir.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Ramassage des poubelles
- alias: rammassage_poubelle
  trigger:
    - platform: time
      at: '20:00:00'
  condition: 
    - condition: or
      conditions:
      - condition: and
        conditions:
          - condition: state
            entity_id: binary_sensor.jour_poubelle_bleu
            state: "on"
          - condition: state
            entity_id: input_boolean.vacances
            state: "off"
      - condition: and
        conditions:
          - condition: state
            entity_id: binary_sensor.jour_poubelle_jaune
            state: "on"
          - condition: state
            entity_id: input_boolean.vacances
            state: "off"
  action:
    - service: notify.alexa_media_dot_parent
      data_template:
        data:
          type: tts
        message: >-
          {% if states.binary_sensor.jour_poubelle_bleu.state == "on" %}
            "Pense à sortir la poubelle bleu"
          {% elif states.binary_sensor.jour_poubelle_jaune.state == "on" %}
            "Pense à sortir la poubelle jaune"
          {% endif %}</pre>



<p>Il n&rsquo;y a rien de compliqué, le déclencheur est l&rsquo;heure (à 20h00) et il y a une des conditions imbriquées, en effet pas besoin que la notification soit émise, si personne est présent. Il y a bien moins lourd à faire sur les conditions, je reviendrai dessus plus tard.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Dorénavant, je n&rsquo;aurai plus d&rsquo;excuses pour avoir oublié de sortir les poubelles.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/home-assistant-automatiser-une-action-des-jours-precis/">Home assistant, automatiser une action des jours précis</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/home-assistant-automatiser-une-action-des-jours-precis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1277</post-id>	</item>
		<item>
		<title>Home Assistant, création d&#8217;un Blueprint</title>
		<link>https://programmation.surleweb-france.fr/home-assistant-creation-dun-blueprint/</link>
					<comments>https://programmation.surleweb-france.fr/home-assistant-creation-dun-blueprint/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Tue, 04 May 2021 14:00:26 +0000</pubDate>
				<category><![CDATA[Domotique]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[automatisation]]></category>
		<category><![CDATA[blueprint]]></category>
		<category><![CDATA[condition]]></category>
		<category><![CDATA[création]]></category>
		<category><![CDATA[entité]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[trigger]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=938</guid>

					<description><![CDATA[<p>La création d'un blueprint pour Home Assistant est aussi simple que de créer son automation et permet de gagner du temps dans le développement de sa solution domotique</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/home-assistant-creation-dun-blueprint/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/home-assistant-creation-dun-blueprint/">Home Assistant, création d&rsquo;un Blueprint</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Dans un de mes premier article sur Home Assistant, j&rsquo;avais vu comment <a href="https://programmation.surleweb-france.fr/home-assistant-creer-sa-premiere-automatisation/" target="_blank" rel="noreferrer noopener">créer une automatisation en utilisant un blueprint</a>, ensuite, j&rsquo;ai montré, en utilisant en exemple l&rsquo;allumage d&rsquo;une lampe, <a href="https://programmation.surleweb-france.fr/home-assistant-comprendre-les-automatisations-manuelles/" target="_blank" rel="noreferrer noopener">comment créer une automatisation manuellement</a>. Il est temps de montrer comment créer son propre blueprint. Le blueprint, via une interface graphique, va te permettre de sélectionner tes différents éléments pour la mise en place de l&rsquo;automatisation sans avoir à aller coder dans les fichiers YAML.</p>



<p>La première question à laquelle je vais répondre est : « Pourquoi créer son Blueprint ? »</p>



<p>La réponse est des plus simple, j&rsquo;ai fait un exemple pour allumer une lampe après la détection d&rsquo;un mouvement entre deux heures, j&rsquo;imagine qu&rsquo;il n&rsquo;y a pas qu&rsquo;une lampe chez toi, le blueprint va te permettre de mettre tes automatisation en place plus rapidement, que ce soit pour des lampes, des capteurs, des interrupteurs &#8230;</p>



<p>Pour cet article, je vais reprendre l&rsquo;exemple de l&rsquo;automatisation créée précédemment :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">- id: Light-with-mvt 
  alias: Lumière avec mouvement 
  trigger:
  - platform: state
    entity_id: binary_sensor.lumi_lumi_sensor_motion_81807f04_ias_zone
    from: 'off'
    to: 'on'
  condition:
  - condition: time
    after: "19:00:00"
    before: "07:00:00"
  action:
  - service: light.turn_on
    target:
      entity_id: light.lumi_lumi_light_aqcn02_c4865d04_level_light_color_on_off
    data:
      color_temp: 200
      brightness_pct: 25
  - wait_for_trigger:
      platform: state
      entity_id: binary_sensor.lumi_lumi_sensor_motion_81807f04_ias_zone
      from: "on"
      to: "off"
  - delay:
      seconds: 60
  - service: light.turn_off
    target:
      entity_id: light.lumi_lumi_light_aqcn02_c4865d04_level_light_color_on_off
  mode: restart
  max_exceeded: silent</pre>



<p>Je ne vais pas revenir dessus, tu peux retrouver les informations sur <a href="https://programmation.surleweb-france.fr/home-assistant-comprendre-les-automatisations-manuelles/" target="_blank" rel="noreferrer noopener">cette page</a>. D&rsquo;ailleurs, je te conseille d&rsquo;aller jeter un petit coup d&rsquo;oeil, je me concentrerai seulement sur la partie de blueprint.</p>



<h2 class="wp-block-heading">Explication</h2>



<p>Je commence par fournir le blueprint, que je viendrai expliquer :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">blueprint:
  name: Lumière activée par le mouvement entre 2 heures
  description: Allume la lumière quand un mouvement est détecté entre deux heures.
  domain: automation
  input:
    motion_entity:
      name: Capteur de mouvement
      selector:
        entity:
          domain: binary_sensor
          device_class: motion
    light_target:
      name: Light
      selector:
        target:
          entity:
            domain: light
    no_motion_wait:
      name: "Temps d'attente"
      description: Temps après le dernier mouvement pour éteindre la lumière.
      default: 120
      selector:
        number:
          min: 0
          max: 3600
          unit_of_measurement: seconds
	time_after:
	  name: "Heure du début"
	  description: "Heure à laquelle commence l'allumage de la lumière"
	  selector:
	    time:
	time_before:
	  name: "Heure de fin"
	  description: "Heure à laquelle se termine le déclenchement l'allumage de la lumière"
	  selector:
	    time:

mode: restart
max_exceeded: silent

trigger:
  platform: state
  entity_id: !input motion_entity
  from: "off"
  to: "on"

condition:
  - condition: time
  after: !input time_after
  before: !input time_before

action:
  - service: light.turn_on
    target: !input light_target
  - wait_for_trigger:
      platform: state
      entity_id: !input motion_entity
      from: "on"
      to: "off"
  - delay: !input no_motion_wait
  - service: light.turn_off
    target: !input light_target
</pre>



<p>Le fichier doit commencer par <strong><em>blueprint</em></strong>, afin de clairement faire comprendre à Home Assistant ce qu&rsquo;il est. Ensuite, on lui donne un nom (<strong><em>name</em></strong>), une description (<strong><em>description</em></strong>) et un domaine (<strong><em>domain</em></strong>) :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">blueprint:
  name: Lumière activée par le mouvement entre 2 heures
  description: Allume la lumière quand un mouvement est détecté entre deux heures.
  domain: automation</pre>



<p>Dans la seconde partie, tu devras indiquer les entrées. Les entrées sont ce que tu devras saisir pour la mise en place de ton automatisation (capteur, zone, équipement, heure&#8230;). Pour chaque entrée, il faudra lui donner un nom (qui sera utilisé pour récupérer l&rsquo;entrée), un sélecteur (<strong><em>selector</em></strong>) qui permet de définir ce qui sera affiché sur la création de l&rsquo;automatisation pour cette entrée et les options de ce <strong><em>selector</em>. </strong>Dans cette partie, nous ne renseignons pas les entités ou groupes :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">input:
    motion_entity:
      name: Capteur de mouvement
      selector:
        entity:
          domain: binary_sensor
          device_class: motion
    light_target:
      name: Light
      selector:
        target:
          entity:
            domain: light
    no_motion_wait:
      name: "Temps d'attente"
      description: Temps après le dernier mouvement pour éteindre la lumière.
      default: 120
      selector:
        number:
          min: 0
          max: 3600
          unit_of_measurement: seconds
	time_after:
	  name: "Heure du début"
	  description: "Heure à laquelle commence l'allumage de la lumière"
	  selector:
	    time:</pre>



<p>Dans la seconde partie du code, nous retrouvons nos déclencheurs, nos actions et nos conditions, les informations qui sont habituellement saisie sont remplacées par une phrase de ce type : <strong><em>!input no_wait_motion</em></strong>. Cela permet de signifier que cette entité sera l&rsquo;entrée avec se nom (dans notre cas <strong><em>no_wait_motion</em></strong>).</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>La création d&rsquo;un blueprint n&rsquo;est pas plus compliqué que la création d&rsquo;une automatisation, elle est à privilégier surtout si l&rsquo;on sait que plusieurs automatisations y feront référence.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/home-assistant-creation-dun-blueprint/">Home Assistant, création d&rsquo;un Blueprint</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/home-assistant-creation-dun-blueprint/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">938</post-id>	</item>
		<item>
		<title>Home Assistant, comprendre les automatisations manuelles</title>
		<link>https://programmation.surleweb-france.fr/home-assistant-comprendre-les-automatisations-manuelles/</link>
					<comments>https://programmation.surleweb-france.fr/home-assistant-comprendre-les-automatisations-manuelles/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Mon, 03 May 2021 07:46:23 +0000</pubDate>
				<category><![CDATA[Domotique]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[automatisation]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=917</guid>

					<description><![CDATA[<p>Mise en place d'une automatisation manuellement avec l'add-on File Editor. Explication sur une lumière avec une détection de mouvement.</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/home-assistant-comprendre-les-automatisations-manuelles/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/home-assistant-comprendre-les-automatisations-manuelles/">Home Assistant, comprendre les automatisations manuelles</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Dans un précédent article qui date mais que tu peux retrouver sur ce <a href="https://programmation.surleweb-france.fr/home-assistant-creer-sa-premiere-automatisation/" target="_blank" rel="noreferrer noopener">lien</a>, on avait vu comment mettre en place une automatisation facilement en utilisant les <a href="https://www.home-assistant.io/docs/automation/using_blueprints/" target="_blank" rel="noreferrer noopener">Blueprints</a>. Maintenant, nous allons voir comment créer soit-même sont automatisation en allant écrire directement dans les fichiers <strong><a href="https://fr.wikipedia.org/wiki/YAML" target="_blank" rel="noreferrer noopener">YAML</a></strong>.</p>



<p>Les <a href="https://community.home-assistant.io/c/blueprints-exchange/53" target="_blank" rel="noreferrer noopener">Blueprints </a>ne nécessitent pas d&rsquo;avoir un grand niveau de maîtrise mais sont limitées à ce qui a été prévu dans le modèle, pour un ajout ou une modification, il faut aller modifier le modèle quitte à bousculer toutes les automatisations qui les utilisent.</p>



<h2 class="wp-block-heading">Organisation des automatisations</h2>



<p>Les automatisations se situe dans le dossier config de votre système, il écrit dans des fichiers YAML. </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="419" height="378" src="//i2.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/04/image-8.png" alt="" class="wp-image-918" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/04/image-8.png?w=419&amp;ssl=1 419w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/04/image-8.png?resize=300%2C271&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/04/image-8.png?resize=150%2C135&amp;ssl=1 150w" sizes="(max-width: 419px) 100vw, 419px" /><figcaption>vue du dossier config</figcaption></figure></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Pour avoir accès à tes dossiers HA sous Windows, je t&rsquo;invite à suivre les étapes de <a href="https://programmation.surleweb-france.fr/les-add-on-indispensables-pour-home-assistant/" target="_blank" rel="noreferrer noopener">cette page</a> (si ce n&rsquo;est pas déjà fait)</p></blockquote>



<p>Je ne vais pas détailler tous les dossiers et fichiers présents, ceux qui nous intéressent sont : </p>



<ul class="wp-block-list"><li><em>configuration.yaml</em></li><li><em>automations.yaml</em></li></ul>



<p>Le premier contient la configuration de ton HA :</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="498" height="354" src="//i3.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/04/image-9.png" alt="" class="wp-image-919" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/04/image-9.png?w=498&amp;ssl=1 498w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/04/image-9.png?resize=300%2C213&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/04/image-9.png?resize=150%2C107&amp;ssl=1 150w" sizes="(max-width: 498px) 100vw, 498px" /></figure></div>



<p>Dans ce fichier, vous allez pouvoir y mettre vos automatisations, cependant, cela peut rapidement devenir incompréhensible. Pour cette raison, tu peux inclure des fichiers (ligne 15 à 18). Ces inclusions vont te permettre de mettre un peut d&rsquo;ordre à tes dossiers et t&rsquo;y retrouver rapidement.</p>



<p>De base, un fichier <em>automations.yaml</em> vide est créé et inclus dans le système.</p>



<p>C&rsquo;est dans ce fichier que nous allons venir intégrer nos automatisations.</p>



<h2 class="wp-block-heading">Ma première automatisation par l&rsquo;exemple</h2>



<p>Pour montrer comment doit être construit une automatisation, on va prendre un exemple : allumer une lumière à la présence d&rsquo;un mouvement entre 19 heures et 7 heures. La lumière s&rsquo;éteint dès qu&rsquo;il n&rsquo;y a plus de mouvement.</p>



<h3 class="wp-block-heading">Les prérequis</h3>



<p>Pour suivre cet article, vous allez avoir besoin :</p>



<ul class="wp-block-list"><li><a href="https://programmation.surleweb-france.fr/installer-home-assistant-sur-raspberry/" target="_blank" rel="noreferrer noopener">Home Assistant installé sur une machine</a> (type Raspberry)</li><li>Une ampoule, la mienne est de la gamme Aqara et permet de régler la chaleur et l&rsquo;intensité lumineuse, <a href="https://amzn.to/3u1Gh5T" target="_blank" rel="noreferrer noopener">ici</a>.</li><li>Un détecteur de mouvement Xiaomi, <a href="https://amzn.to/3u1Gh5T" target="_blank" rel="noreferrer noopener">ici</a>.</li></ul>



<p>Que ce soit pour le capteur ou la lampe, j&rsquo;utilise le protocole de communication Zigbee, pour le Raspberry, j&rsquo;utilise la passerelle Zigate, disposnible sur ce <a href="https://amzn.to/3xD3xsX" target="_blank" rel="noreferrer noopener">lien</a>.</p>



<h3 class="wp-block-heading">Le code et les explications</h3>



<p>J&rsquo;ai pris un exemple facilement utilisable et transposable, nombreux sont les kits disposant d&rsquo;un capteur et d&rsquo;une lampe, de plus ce genre d&rsquo;automatisation est l&rsquo;une des plus fréquentes (éclairage porte d&rsquo;entrée, toilettes &#8230;)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">- id: Light-with-mvt 
  alias: Lumière avec mouvement 
  trigger:
  - platform: state
    entity_id: binary_sensor.lumi_lumi_sensor_motion_81807f04_ias_zone
    from: 'off'
    to: 'on'
  condition:
  - condition: time
    after: "19:00:00"
    before: "07:00:00"
  action:
  - service: light.turn_on
    target:
      entity_id: light.lumi_lumi_light_aqcn02_c4865d04_level_light_color_on_off
    data:
      color_temp: 200
      brightness_pct: 25
  - wait_for_trigger:
      platform: state
      entity_id: binary_sensor.lumi_lumi_sensor_motion_81807f04_ias_zone
      from: "on"
      to: "off"
  - delay:
      seconds: 60
  - service: light.turn_off
    target:
      entity_id: light.lumi_lumi_light_aqcn02_c4865d04_level_light_color_on_off
  mode: restart
  max_exceeded: silent</pre>



<p>Tout d&rsquo;abord, vous devez choisir un id <em><strong>unique </strong></em>pour chacune de vos automatisations du fichier <strong>automations.yaml</strong>. Cet <em>ID</em> est automatiquement générer lorsque tu passes par le générateur de code automatique.</p>



<p>L&rsquo;<em><strong>alias</strong></em> sera utilisé dans l&rsquo;affichage de toutes tes automatisations dans la liste disponible <strong>Configurations/Automations</strong>.</p>



<p>Le <strong><em>trigger</em></strong> (ou les triggers) permet le déclenchement de l&rsquo;automatisation. Dans notre cas, le capteur de mouvement détecte une occupation dans la zone (changement d&rsquo;état):</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">  trigger:
  - platform: state
    entity_id: binary_sensor.lumi_lumi_sensor_motion_81807f04_ias_zone
    from: 'off'
    to: 'on'</pre>



<p>La condition (ou les conditions) identifie les circonstances pour lesquelles le trigger est pris en compte. J&rsquo;ai mis une condition de temps (après 19h00 et avant 07h00), en dehors de cette plage horaire, le mouvement est bien détecté mais ne lance pas l&rsquo;automatisation :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">  condition:
  - condition: time
    after: "19:00:00"
    before: "07:00:00"</pre>



<p>Dernier point, les actions, quant à elles, décrivent ce qui va se passer. Pour notre exemple, au déclenchement, la lumière s&rsquo;allume, on attend un trigger pendant 60 secondes (en l&rsquo;occurance, un changement d&rsquo;état sur le capteur de mouvement) et on éteint la lumière si il n&rsquo;y a pas de mouvement.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">  action:
  - service: light.turn_on
    target:
      entity_id: light.lumi_lumi_light_aqcn02_c4865d04_level_light_color_on_off
    data:
      color_temp: 200
      brightness_pct: 25
  - wait_for_trigger:
      platform: state
      entity_id: binary_sensor.lumi_lumi_sensor_motion_81807f04_ias_zone
      from: "on"
      to: "off"
  - delay:
      seconds: 60
  - service: light.turn_off
    target:
      entity_id: light.lumi_lumi_light_aqcn02_c4865d04_level_light_color_on_off</pre>



<p>On finit par les deux dernières lignes qui permettent de gérer le mode de re-déclenchement, à partir d&rsquo;un nouveau trigger et si les conditions sont respectées, les actions redébutent, sans nombre de fois limites :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">  mode: restart
  max_exceeded: silent</pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Fait attention à l&rsquo;indentation, elle est la principale cause d&rsquo;erreur dans la non-exécution de ton automatisation</strong> </p></blockquote>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Voilà une petite automatisation qui fait partie (à mon avis) de la base de ce que tout débutant souhaite faire. Je m&rsquo;en servirai pour d&rsquo;autres exemples, améliorations.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/home-assistant-comprendre-les-automatisations-manuelles/">Home Assistant, comprendre les automatisations manuelles</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/home-assistant-comprendre-les-automatisations-manuelles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">917</post-id>	</item>
	</channel>
</rss>
