Home Assistant 2023.4 : Macro pour les modèles et nouvelles boîtes de dialogue entités !

Comme chaque premier mercredi du mois, une nouvelle version de Home Assistant Core est sortie. Voici la traduction par l'Équipe HACF de cette release notes publiée par Nabu Casa.
Home Assistant 2023.4 : Macro pour les modèles et nouvelles boîtes de dialogue entités !

Sommaire

Cet article est une traduction de 2023.4: Custom template macros, and many more new entity dialogs! publié sur le site de Home Assistant.

Home Assistant Core 2023.4 ! 🎉

“Le printemps est là ! Et nous avons quelques belles nouvelles fonctionnalités pour vous permettre de jouer avec ce prochain week-end de Pâques ! 🐰

Je suis ravi de voir ces nouveaux dialogues entité arriver dans cette version. Ils sont magnifiques et fonctionnent exceptionnellement bien depuis l’application mobile. Il y a même un bonus supplémentaire avec les nouvelles fonctionnalités des cartes tile (tuiles) !

J’adore la nouvelle possibilité de créer ses propres macros de modèles Jinja2 dans cette version. C’est époustouflant ! Et le plus beau, c’est qu’elles sont facilement partageables ! J’ai hâte de voir ce que vous allez inventer !

Joyeuses Pâques ! 🐣 et profitez de cette release !”

…/Frenck

Nouvelles boîtes de dialogue pour les entités alarme, volets et ventilateur

La version précédente introduit de nouvelles boîtes de dialogue entité pour les lumières, les interrupteurs et les sirènes. Il semble que beaucoup d’entre vous ont vraiment aimé !

Donc, cette version @piitaya a persévéré, mettant en œuvre les conceptions de @matthiasdebaat , apportant la même nouvelle interface utilisateur, propre et dépouillée, dans les dialogues entités pour les panneaux de contrôle d’alarme, les volets et les ventilateurs !

Volets

Pour les volets, il existe de nombreuses variantes, portes, fenêtres, rideaux, stores, volets roulants, etc. En plus, certains peuvent être contrôlés jusqu’où ils sont ouverts / fermés et d’autres ne peuvent être qu’ouverts et fermés.

Ce n’est pas un problème pour les nouvelles boîtes de dialogue : elles s’adapteront aux capacités de votre volet.

Présentation de la nouvelle carte tuile volet
Nouvelles cartes tuiles ventilateur

Celle de gauche est intéressante, le curseur contrôle à quel niveau les stores sont baissés. Remarquez comment il se glisse depuis le haut ! Le curseur à côté contrôle l’inclinaison. Sympa !

Ventilateurs

L’interface affiche une boîte de dialogue de contrôle permettant de s’adapter aux possibilités du ventilateur que vous contrôlez, exactement comme pour les volets.

Présentation de la nouvelle carte tuile volet
Nouvelles cartes tuiles ventilateur

En fonction du nombre de vitesses dont dispose votre ventilateur, la boîte de dialogue s’ajuste automatiquement sur l’interface utilisateur. S’il a quatre étapes de vitesse ou moins, il affiche les boutons de vitesse comme sur la capture d’écran de gauche. Sinon, il utilisera le curseur affiché sur la capture d’écran la plus à droite.

Panneau de contrôle d’alarme

Enfin, les cartes entités du panneau de contrôle d’alarme. Ils sont un peu différents par rapport aux autres, car plus souvent, ils nécessitent que l’on saisisse un code pour armer ou désarmer l’alarme.

Présentation de la nouvelle carte tuile Alarme

Voilà à quoi ressemble maintenant l’armement et le désarmement d’une alarme.

En cas de besoin, le clavier de code secret apparaîtra ! Une belle touche finale est l’animation très soignée qui est affichée pendant le processus d’armement et de désarmement de l’alarme.

Nouvelles fonctionnalités pour la carte Tuile (Tile)

La Carte Tuile a deux nouvelles fonctionnalités : la vitesse du ventilateur et le mode d’alarme.

Les deux se ressemblent et sont similaires aux nouvelles boîtes de dialogue d’entité d’en haut, ce qui donne une apparence agréable et cohérente. Regardez : ne sont-ils pas beaux ?

Nouvelles fonctionnalités de la carte tuile : Vitesse deu ventilateur
Nouvelles fonctionnalités de la carte tuile : Vitesse deu ventilateur

Comme la nouvelle boîte de dialogue entité de ventilateur, la fonction de vitesse du ventilateur affichera les boutons s’il y a quatre vitesses ou moins, et dans tous les autres cas, il utilisera le curseur. Si le ventilateur ne peut être que “allumé” / “éteint”, comme le ventilateur au milieu dans la capture d’écran ci-dessus, la tuile ordinaire sera utilisée.

La fonction de sélection du mode d’alarme permet de régler rapidement votre alarme dans les différents états. La fonctionnalité offre la possibilité de sélectionner les modes affichés sous forme de ligne de boutons.

Nouvelles fonctionnalités de la carte tuile : Modes alarme
Nouvelles fonctionnalités de la carte tuile : Modes alarme

Tout comme avec la nouvelle boîte de dialogue entité, le pavé de saisie de code apparaîtra quand la saisie de code est nécessaire et la même belle petite animation est présente. 🤩

Macros pour vos modèles (“templates”)

Si vous êtes un utilisateur avancé de Home Assistant, vous serez probablement familier avec le modéle de Home Assistant : Jinja2. Cela vous permet de faire des choses très puissantes dans vos modèles. Cependant, si vous en avez beaucoup, vous finissez souvent par répéter une logique similaire partout !

@depoll est venu à la rescousse ! Il a trouvé un moyen d’ajouter la capacité de définir de manière centralisée vos propres macros Jinja2, pour ensuite les importer et utiliser n’importe où dans Home Assistant ! 🤯

Pour soutenir cela, Home Assistant a maintenant un nouveau dossier custom_templates, où vous pouvez stocker vos macros. Par exemple, vous pouvez créer ce fichier /config/custom_templates/tools.jinja:

Copy

{% macro answer_question(entity_id) %}

Is the {{ state_attr(entity_id, 'friendly_name') }} on?
{{ (states(entity_id) == 'on') | iif('Yes', 'No') }}!

{% endmacro %}

Cette macro answer_question posera et répondra à une question basée sur l’ID d’une entité. Vous pouvez désormais importer et utiliser cette macro n’importe où dans Home Assistant. Par exemple :

Copy

{% from 'tools.jinja' import answer_question %}
{{ answer_question('light.kitchen') }}

Qui sortira :

Copy

Is the kitchen light on?
Yes!

Une contribution fantastique ! Merci, @depoll !

Lien vers la documentation des modèles

De nouvelles fonctionnalités de modèles (“templates”)

Comme si la réutilisation de vos macros n’était pas déjà suffisante, en voici plus pour la création de modèle dans cette version !

Merci, @depoll , @ehendrix23 , @petro31 , et @rokam , pour les incroyables ajouts ci-dessous ! ❤️

Comportement plus pertinent de “relative time” et “today_at”

@Petro31 a ajusté le comportement des entités modèle à l’aide des fonctions spécifiques relative_time et today_at pour mettre à jour leur état une fois par minute. Sympa !

Nouvelle fonction “is_hidden_entity”

La toute nouvelle fontion is_hidden_entity a été ajoutée par @depoll , qui peut indiquer si une entité a été marquée comme “cachée” ou non. Cette fonction marche également comme test. Cool!

Cet exemple renvoie une liste de toutes les entités de la cuisine qui ne sont pas cachées.

Copy

{{ area_entities('kitchen') | reject('is_hidden_entity') | list }}

Nouvelles fonctions de zone

En parlant de zones, @rokam a ajouté une fonction areas, qui renvoie une liste de toutes les zones que vous avez !

Un exemple simpliste :

Copy

{{ area_entities('kitchen') | reject('is_hidden_entity') | list }}

Ajout de “break” et “continue” pour être utilisé dans les boucles

@depoll a rajouté le support de break et continue pour les boucles, qui permet de court-circuiter ces boucles, vous permettant de les rendre plus efficaces.

Copy

{%- for value in range(10) %}
    {%- if value == 1 -%}
        {%- continue -%}
    {%- elif value == 3 -%}
        {%- break -%}
    {%- endif -%}
    {{ value }}
{%- endfor -%}

Nouvelle fonction “has_value”

Enfin, @ehendrix23 ajouté une fonction de modèle demandée pendant le “What the Heck?! ” : has_value. La fonction has_value peut aussi être utilisé pour tester et filtrer les entités actuellement dans un état unavailable ou unknown.

Vous pouvez utiliser cette condition, comme ceci :

Copy

{% if has_value('sensor.train_departure_time') %}
  The train leaves at {{ states('sensor.train_departure_time') }}
{% endif %}

Ou, peut-être répertorier toutes les entités du salon qui n’ont actuellement aucune valeur :

Copy

{{ area_entities('living_room') | reject('has_value') | list }}

Évolutivité de la base de données

Au fur et à mesure que Home Assistant se développe et que vous ajoutez des appareils, cela signifie qu’il y a plus de données à garder en mémoire. Cette version inclut des avancées significatives dans la conception de la base de données de l’enregistreur pour aider Home Assistant à évoluer.

Cette version a un nouveau format de base de données qui réduit l’espace nécessaire pour stocker l’historique de vos appareils. Ce changement présente plusieurs avantages :

  • Déduplication plus petite, moins d’utilisation du disque
  • IO disque réduit (Améliorations de la durée de vie de la carte SD)
  • Utilisation réduite du processeur 📉
  • Démarrage plus rapide 🏎️
  • Graphiques et journal de bord d’historique plus rapides
  • Latence réduite dans tout le système, ce qui signifie moins d’attente à partir du moment où vous appuyez sur un bouton jusqu’à ce qu’une action termine 🚀
  • Home Assistant conserve désormais l’historique lors du changement de nom des entités 🤘

Si vous accédez directement à la base de données, consultez Data science portal et Integration SQL pour les exemples de requêtes.

La migration des données en arrière-plan peut prendre un certain temps, en fonction de la taille des données stockées. Pour s’assurer que Home Assistant conserve l’historique lorsqu’il renomme une entité, attendez 24 heures après la mise à jour avant de renommer.

Évolutions des Sélecteurs (“selectors”)

Les Selectors sont des entrées pour l’interface utilisateur qui sont utiles dans les Blueprints , par exemple. Un nouveau type de sélecteur a été ajouté par @emontnemery et @piitaya : Le sélecteur constant.

Le sélecteur constant fournit une entrée facultative, qui renvoie une valeur fixe ( la constante ) lorsqu’elle est activée, sinon ne fournit aucune valeur.

Exemple d’utilisation dans un blueprint :

Copy

example:
  name: Constant selector example
  selector:
    constant:
      label: Enabled
      value: true

Ce qui se traduit par les éléments suivants :

Exemple du selecteur Constant
Exemple du selecteur Constant

Une fois coché, le sélecteur renvoie la valeur définie.

Les filtres de périphérique (devices) et d’entité sur les sélecteurs de zone, d’entité, de périphérique et de cible ont également été améliorés. Auparavant, vous pouviez filtrer avec un seul ensemble de conditions ; désormais, vous pouvez passer par une liste de filtres.

Si vous construisez des Blueprints, cela peut s’avérer très utile si un utilisateur doit pouvoir sélectionner un appareil parmi plusieurs.

Par exemple, ce sélecteur vous permet de sélectionner le capteur de batterie d’une télécommande Philips Hue RWL020 (US) ou RWL021 (EU) dans votre Blueprint.

Copy

device:
  filter:
    - integration: deconz
      manufacturer: Philips
      model: RWL020
    - integration: deconz
      manufacturer: Philips
      model: RWL021
  entity:
    - domain: sensor
      device_class: battery

Entités traductrices

Au cours des dernières versions, nous avons lentement étendu la prise en charge de la traduction à d’autres endroits dans Home Assistant. Cette version complète la prise en charge de la traduction des entités !

Cela inclut les noms des entités, leurs attributs et les traductions des valeurs des attributs. Ces traductions seront visibles sur vos tableaux de bord, dialogues, éditeurs d’automatisation, etc. Pratiquement tous les endroits qui les affichent.

Les intégrations doivent explicitement ajouter la prise en charge de ces traductions. Un certain nombre d’intégrations l’ont fait dans cette version, mais nous nous attendons à ce que de nombreuses autres suivent dans les prochaines versions.

Autres changements notables

Il y a bien plus de lapins de Pâques dans cette version ; voici quelques autres changements notables de cette version :

  • @ArturoGuerra a ajouté la prise en charge des verrous à Matter ! Sympa !
  • La nouvelle boîte de dialogue d’entité lampe (a introduit la dernière version) prend désormais mieux en charge mode blanc. Merci, @piitaya !
  • @emontnemery a ajouté des classes de stockage d’énergie et de stockage de volume ; celles-ci permettront de différencier, par exemple, l’énergie consommée de l’énergie stockée dans une batterie.
  • @starkillerOG est très satisfait de l’intégration de Reolink. Il fournit maintenant des entités bouton, interrupteur, sirène, sélection, numéro et lumière pour toutes sortes de choses que les caméras et les sonnettes Reolink peuvent faire. Génial !
  • Le Lecteur multimédia universel prend dorénavant en charge la navigation dans les médias ! Merci, @Drafteed !
  • L’intégration du Superviseur fournit désormais des capteurs contenant les statistiques du Home Assistant Core et du superviseur. Merci, @ludeeus !
  • L’intégration de Spotify prend à présent en charge les podcasts ! Sympa @BTMorton !
  • LIVISI Smart Home supporte à présent les climatiseurs, les interrupteurs (PSSO, ISS, et ISS2), et les capteurs de fenêtre (WDS). Merci @StefanIacobLivisi & @planbnet !
  • ESPHome prend à présent en charge l’appairement des appareils Bluetooth. Beau travail @bdraco & @jagheterfredrik !
  • @MarkGodwin a étendu l’intégration TP-Link Omada pour prendre en charge la mise à jour des entités. Formidable !
  • Tous les attributs des entités sun.sun sont dorénavant également disponibles sous forme de capteurs, beaucoup plus facile à utiliser, merci @gjohansson-ST !
  • Les volets avec la classe des dispositifs de porte apparaissent à présent comme des portes réelles HomeKit , bien @Dexwell !
  • @loongyh a fait quelque chose de similaire pour Assistant Google . Les volets avec la classe apparaissent maintenant comme des fenêtres réelles. Merci !
  • L’intégration SQL prend désormais en charge les paramètres de l’appareil et les classes d’état, merci @gjohansson-ST !
  • @teharris1 a rajouté un support supplémentaire pour le nouvel appareil Insteon i3, cool !

Nouvelles intégrations

Cette version ne contient pas de nouvelles intégrations, mais fournit quelques nouvelles intégrations virtuelles. Les intégrations virtuelles sont des éléments gérés par d’autres intégrations (existantes) afin de faciliter la recherche.

Ces intégrations sont nouvelles :

Intégrations désormais disponibles à configurer à partir de l’interface utilisateur

Les intégrations suivantes sont désormais disponibles via l’interface utilisateur de Home Assistant :