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.
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.
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.
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 ?
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.
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 :
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 :
- ESERA 1 fil fourni par 1 fil , ajouté par @jrieger
- HomeSeer travaille avec Z-Wave , ajouté par @b-uwe
- Quadra-Fire fourni par IntelliFire , ajouté par @jeeftor
- Castings du Vermont fourni par IntelliFire , ajouté par @jeeftor
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 :