J’ai fait le test avec le même département je n’ai pas eu d’erreur. Essaye de te connecter sur :
Pollens Eure-Et-Loir
J’ai l’impression que le problème viens de l’accès au site
Par contre dans la carte custom-entities utilisée, il y a 6 niveaux (0-5) or maintenant le site n’en retourne que 4 (« nul », « faible », « moyen », « élevé ») ou 0-3
Je viens de ré-essayer et cette fois-ci aucun problème.
Bonjous à tous, perso je viens d’installer ce composant par HACS, je vois bien le dépôt apparaître dans les intégrations de HACS mais je ne vois pas comment le configurer :
1. Select your county 2. Untick the option to have numeric states or submit to stay with literal states 3. Select all the pollens you want to have in sensors
Comment accéder à cela, svp ?
Ok merci ! J’avais aussi testé ça hier mais rien ne sortait avec pollens comme recherche, cette-fois c’est bon
Merci pour tout! J’ai pu créer en qques clics grâce à cette intégration et vos exemples ce petit visuel:
Maintenant je vais me pencher sur les alertes associées à ces infos via telegram ^^
ç’est cool
Mais tu devrais revoir ton max.
Sur le site, ça va de 0 à 3. Mais toi, tu vas jusqu’à 4.
Ah! Oki - merci! je me suis appuyé sur les exemples des cartes et conditions au dessus… C’est corrigé! et en prime voici mon automatisation - encore un peu à paufiner mais je suis assez content de moi pour un newbee ^^:
alias: Alerte Pollens
description: ""
trigger:
- platform: state
entity_id:
- sensor.pollens_91_risklevel
condition: []
action:
- service: telegram_bot.send_message
data:
title: ⚠️ Alerte Pollens
disable_notification: false
message_tag: pollens
message: |-
{% set result = namespace(sensors=[]) %}
{% for state in states.sensor -%}
{%- if state.entity_id | regex_match('sensor.pollens_91_',ignorecase=False) -%}
{% if state.entity_id != 'sensor.pollens_91_risklevel' %}
{%- set valeur = states(state.entity_id)|float|round -%}
{%- if valeur > 0 %}
{% set ic = "🌿 " %}
{% if state_attr(state.entity_id,"icon") == "mdi:tree" %}
{% set ic = "🌳 " %}
{% endif %}
{% set result.sensors = result.sensors + [ ic ~ state_attr(state.entity_id,"pollen_name") ~ ' (' ~ state.state ~ ')'] %}
{% endif %}
{% endif %}
{%- endif -%}
{%- endfor %}
Niveau Alerte = {{ states('sensor.pollens_91_risklevel') }}
{{result.sensors|join(',\n')}}
mode: single
Salut,
J’ai le même soucis que toi visiblement, j’ai installé l’intégration dans HACS, elle est bien visible à ce niveau, j’ai redémarrer plusieurs fois HA mais tjrs aucun résultats dans le menu intégration via la recherche pollens.
As-tu fais une manip spéciale ?
Hello
Prends:
et la tu auras tout ce que tu cherches… J’ai passé qque heures avant de comprendre
J’ai passé plusieurs dizaine de minutes, je venais justement pour poster la même chose que toi.
Je pense qu’il serait bien de réduire le nom ou le faire commencer par « Pollens - Réseau National de Surveillance… »
Bon en tous cas chez moi ça fonctionne nikel !
Merci pour la carte, le copier/coller à été efficace, juste à changer le département et exclure le risk global.
en prime
Voici mon blueprint (mode newbee = on) :
blueprint:
name: Liste tous les pollens en mode alerte
description: Check des differents sensors dédiés au monitoring des pollens
domain: automation
input:
time:
name: Lancer la vérification à
description: La vérification est lancée à un moment spécifié
default: '10:00:00'
selector:
time: {}
threshold:
name: Niveau d'alerte
description: Selection du niveau min d'alerte pollen
default: 2
selector:
number:
min: 0
max: 3
unit_of_measurement: ""
mode: slider
step: 1
dpt:
name: Département monitoré
description: 'Entrer le dpt concerné'
default: 59
selector:
number:
min: 01
max: 99
mode: box
step: 1
actions:
name: Actions
description: Que faut il faire ? mettre {{pollens}} et il sera remplacé par les agents allergènes
selector:
action: {}
# source_url: pas de depo .....
variables:
dpt: !input dpt
threshold: !input threshold
pollens: |-
{% set result = namespace(sensors=[]) %}
{% for state in states.sensor -%}
{%- if state.entity_id | regex_match('sensor.pollens_'+ dpt|string + '_',ignorecase=False) -%}
{% if state.entity_id != 'sensor.pollens_'+ dpt|string + '_risklevel' %}
{%- set valeur = states(state.entity_id)|float|round -%}
{%- if valeur > 0 %}
{%- set ic = ' 🌿' %}
{%- if state_attr(state.entity_id,'icon') == 'mdi:tree' %}
{%- set ic = ' 🌳 ' %}
{%- endif %}
{%- set result.sensors = result.sensors + [ ic ~ state_attr(state.entity_id,'pollen_name') ~ ' (*' ~ state.state ~ '*)'] %}
{%- endif %}
{%- endif %}
{%- endif -%}
{%- endfor %}
Le niveau d'alerte est de {{ states('sensor.pollens_'+ dpt|string + '_risklevel') }} et voici les valeur actives :
{{result.sensors|join(',\n')}}
trigger:
- platform: time
at: !input time
condition:
- "{{ pollens != '' and (day | int == 0 or day | int == now().isoweekday()) }}"
action:
- choose: []
default: !input actions
mode: single
et un automatisme qd une valeur change…
- id: '1677261915844'
alias: Alerte Cgt alerte Pollen 59
description: ''
trigger:
- platform: state
entity_id:
- automation.alerte_pollens_pour_le_59
- sensor.pollens_59
- sensor.pollens_59_ambroisies
- sensor.pollens_59_armoise
- sensor.pollens_59_aulne
- sensor.pollens_59_bouleau
- sensor.pollens_59_charme
- sensor.pollens_59_chataignier
- sensor.pollens_59_chene
- sensor.pollens_59_cupressacees
- sensor.pollens_59_frene
- sensor.pollens_59_graminees
- sensor.pollens_59_noisetier
- sensor.pollens_59_olivier
- sensor.pollens_59_oseille
- sensor.pollens_59_peuplier
- sensor.pollens_59_plantain
- sensor.pollens_59_platane
- sensor.pollens_59_risklevel
- sensor.pollens_59_saule
- sensor.pollens_59_tilleul
- sensor.pollens_59_urticacees
condition: []
action:
- service: telegram_bot.send_message
data:
title: ⚠️ Attention une valeur d'alerte des pollens à changé !
message: "{%- set mess = \"Le niveau d'alerte dans le nord \" %} {%- set result
= namespace(sensors=[]) %} {%- set result.sensors = ['Voici les valeurs actives:']
%}\n {%- for state in states.sensor %}\n {%- if state.entity_id |regex_match('sensor.pollens_59_',ignorecase=False)
%}\n {%- if state.entity_id != 'sensor.pollens_59_risklevel' %}\n {%-
set valeur = states(state.entity_id)|float|round %}\n {%- if valeur
> 0 %}\n {%- set ic = \" \U0001F33F \" %}\n {%- if state_attr(state.entity_id,\"icon\")
== \"mdi:tree\" %}\n {%- set ic = \" \U0001F333 \" %}\n {%-
endif %}\n {%- set info_pollen = \"\" %}\n {%- if trigger.entity_id
== state.entity_id %}\n {%- set info_pollen = ' est passé de
(' ~ trigger.from_state.state ~ ') à' %}\n {%- endif %}\n\n {%-
set result.sensors = result.sensors + [ ic ~ state_attr(state.entity_id,\"pollen_name\")
~ info_pollen ~ ' (' ~ state.state ~ ')'] %}\n {%- endif %}\n {%-
else %}\n {%- if trigger.entity_id == state.entity_id %}\n {%-
set mess = mess + \"est passé de \" + states('sensor.pollens_91_risklevel')
+ \" à \" + trigger.from_state.state + ' ,' %}\n\n {{mess|regex_replace(find='
,', replace='\\n',ignorecase=False)}}\n {%- else %}\n {%- set
mess = mess + \"est de \" + states('sensor.pollens_91_risklevel') + ' ,'
%}\n {{mess|regex_replace(find=' ,', replace='\\n',ignorecase=False)}}\n
\ {%- endif %}\n {%- endif %}\n {%- endif %}\n {%- endfor %}\n{{result.sensors|join('\\n')}}"
mode: single
Voila ce que vous recevrez dans Telegram:
Je suis certain qu’il est possible d’optimiser mais bon les nuits sont courtes en ce moment donc si vous avez des recos je prends à 200% ^^
Enjoy !
Du coup j’ai un peu modifié le rendu de la carte même si elle reste proche de @roumano :
Le code de la carte
type: custom:auto-entities
filter:
include: null
template: |
{% set ALTNAME = 'd'-%}
{% for state in states.sensor -%}
{%- if state.entity_id | regex_match('sensor.pollens_25_',ignorecase=False) -%}
{%- set NAME = state_attr(state.entity_id,"pollen_name") -%}
{{
{ 'entity': state.entity_id,
'name': NAME,
} }},
{%- endif -%}
{%- endfor %}
exclude:
- state: <1
- entity_id: sensor.pollens_25_risklevel
sort:
numeric: true
reverse: true
method: state
card:
type: custom:bar-card
title: Allergies aux pollens
min: 0
max: 3
positions:
name: outside
width: 70%
style: |-
bar-card-value {
margin-right: 5px;
font-size: 15px;
font-weight: bold;
text-shadow: 1px 1px #000000;
}
severity:
- color: '#0000ff'
from: 0
to: 0
- color: '#00FF00'
from: 1
to: 1
- color: '#0000FF'
from: 2
to: 2
- color: '#FF0000'
from: 3
to: 3
J’avoue que depuis que j’ai poster ça, j’ai changer, pour ça :
Le design est différent (mais n’est pas forcement mieux) , par contre, il est beaucoup plus compacte et s’ insert mieux dans mon dashboard
code
- type: custom:mod-card
style:
.: |
:host {
--text-divider-color: rgb(68, 115, 158);
--text-divider-line-size: 1px;
--border-width: 0px !important;
}
card:
type: custom:text-divider-row
text: Risque pollen
align: left
- type: custom:auto-entities
card:
type: grid
columns: 4
square: true
card_param: cards
filter:
include:
- entity_id: sensor.pollens_38_*
options:
type: custom:button-card
color_type: icon
show_name: true
show_state: false
style: |
ha-card {
background: none;
box-shadow: #ccffcc;
border-width: 0px;
}
styles:
card:
- height: 100px
- width: 100px
name:
- font-size: 14px
state:
- value: unknown
operator: '=='
color: silver
- value: '0'
operator: '=='
color: silver
- value: '1'
operator: '=='
color: '#377d22'
- value: '2'
operator: '=='
color: '#fffd54'
- value: '3'
operator: '=='
color: '#ea3522'
size: 60%
name: |
[[[
return entity.attributes.pollen_name + " : " + entity.state
]]]
exclude:
- entity_id: sensor.pollens_38_*
state: unknown
- entity_id: sensor.pollens_38_*
state: '0'
- entity_id: sensor.pollens_38_risklevel
sort:
method: state
reverse: true
ignore_case: true
numeric: true
Hello,
En même temps si tu tape « pollen » et qu’il ne te sort que « Réseau national de Surveillance… » c’est qu’il doit trouver le mot clé dans le titre
J’essaierai de mettre un petit quelque chose en plus pour éviter de galèrer mais je veux garder le RNSA dans le titre car c’est quand même eux qui nous fournissent l’information et de plus gratuite. N’hésitez pas a les soutenir en utilisant [Merci pour votre soutien !]
Sinon j’ai vu vos splendides cartes Lovelace, j’essaierai de m’en inspirer si j’arrive a trouver le temps de faire une « Custom Card » (c’est dans mes projets)
Pour la demande d’amélioration https://github.com/chris60600/pollens-home-assistant/issues/14 je vais voir s’il est possible d’ajouter toutes les entités mais de n’activer que celles qui sont cochées cela permettrai de pouvoir les activer en cas de besoin sans tout supprimer. Je ne sais pas ce que cela va occasionner comme modification au niveau des scripts par exemple quand on fait cela :
Il faudra tester
Mais soyez indulgent car cela prend un peu de temps, et si voulez contribuer au projet, je suis ouvert.
Hello
Pas de soucis
C’est déjà top ce que tu proposes. Je partagerais plus tard comment j’ai ajusté mon blueprint pour integrer une variable qui permet de gérer le département. En attendant voici un petit Snap
Testé et approuvé pour 4 dpts
Merci @chris60600 pour cette chouette intégration.
Par contre, il semble que les valeurs numériques sont retournées sous forme de texte:
Serait-il possible de les définir en format numérique pour avoir un historique sous formes de courbes ?
Ce que j’ai adapté de la façon suivante:
Pour la jauge, je préfère une présentation des valeurs avec l’aiguille au milieu de la zone comme ça:
type: gauge
entity: sensor.aqi_pollens_statut
needle: true
min: -0.5
max: 3.5
segments:
- from: -0.5
color: '#43a047'
- from: 0.5
color: '#63d087'
- from: 1.5
color: '#ff781f'
- from: 2.5
color: '#ff2200'
unit: Sévérité
name: Pollens
J’adore @FillR2 !!! Adopté !!!
Voici comme promis également une version qui prends en compte le département pour le blueprint alerte
Blueprint
blueprint:
name: Liste tous les pollens en mode alerte
description: Check des differents sensors dédiés au monitoring des pollens
domain: automation
input:
time:
name: Lancer la vérification à
description: La vérification est lancée à un moment spécifié
default: '10:00:00'
selector:
time: {}
threshold:
name: Niveau d'alerte
description: Selection du niveau min d'alerte pollen
default: 2
selector:
number:
min: 0
max: 3
unit_of_measurement: ""
mode: slider
step: 1
dpt:
name: Département monitoré
description: 'Entrer le dpt concerné'
default: 0
selector:
number:
min: 01
max: 99
mode: box
step: 1
actions:
name: Actions
description: Que faut il faire ? mettre {{pollens}} et il sera remplacé par les agents allergènes
selector:
action: {}
# source_url: pas de depo .....
variables:
dpt: !input dpt
threshold: !input threshold
pollens: |-
{% set result = namespace(sensors=[]) %}
{% for state in states.sensor -%}
{%- if state.entity_id | regex_match('sensor.pollens_'+ dpt|string + '_',ignorecase=False) -%}
{% if state.entity_id != 'sensor.pollens_'+ dpt|string + '_risklevel' %}
{%- set valeur = states(state.entity_id)|float|round -%}
{%- if valeur > 0 %}
{%- set ic = ' 🌿' %}
{%- if state_attr(state.entity_id,'icon') == 'mdi:tree' %}
{%- set ic = ' 🌳 ' %}
{%- endif %}
{%- set result.sensors = result.sensors + [ ic ~ state_attr(state.entity_id,'pollen_name') ~ ' (*' ~ state.state ~ '*)'] %}
{%- endif %}
{%- endif %}
{%- endif -%}
{%- endfor %}
Le niveau d'alerte est de {{ states('sensor.pollens_'+ dpt|string + '_risklevel') }} et voici les valeurs actives :
{{result.sensors|join(',\n')}}
trigger:
- platform: time
at: !input time
condition:
- "{{ pollens != '' and (dpt | int > 0) }}"
action:
- choose: []
default: !input actions
mode: single