Présentation + [Mon Dashboard] BBE

Petite mise à jour de la carte Jardin suite à ce tuto - suivi des cours d’eau. Et ajout d’une automatisation qui réalise la notification en cas de dépassement des cotes d’alertes. (Automatisation simple, je vous épargne le code…).
J’en profite pour refaire aussi les images du pop-up pollens, avec des pollens, contrairement à cet hiver…

Carte Jardin
image

pop up météo

Le clic sur l’icône météo affiche la météo:

pop up crues

Le clic sur l’icône vague (couleur fonction du niveau de menace) affiche les infos de la station du cour d’eau proche grace à ce tuto - suivi des cours d’eau:
image

pop up pollens

Le clic sur l’icône fleur (couleur fonction du niveau de menace) affiche les pollens (avec une carte automatique) et les info générales et des allergènes intéressant la famille tirés de l’intégration pollens:
image

Bonjour BBE,
Si tu es intéressé, il est aussi possible de récupérer le niveau Alerte Crue officiel. Je ne l’ai pas intégré au Tuto mais en m’inspirant du travail d’un autre membre du forum, j’ai ajouté cette information à mon dashboard. Celà pourrait être un bon ajout à ta superbe carte « Vigilence crues » (rajouter par exemple un badge Alerte Crue (couleur vert, jaune, etc.) tel que défini par VigiCru.
Si tu es intéressé, je te résume tout ça.

Bien sûr, et avec plaisir! Il sera surement profitable au plus grand nombre dans le tuto sur le suivi des cours d’eau, mais n’hesites pas à en mettre un bout ici…
Je regarde assez peu Vigicrue car même si très proche du cours d’eau, chez nous le risque est faible (ça déborde sur l’autre rive), mais c’est toujours intéressant. Sur le forum j’ai trouvé ça, je pense que c’est de celà que tu parles: Récupérer le niveau d’alerte VigiCrue

Dans la même optique j’ai dans l’idée de reprendre le travail qui est fait là pour intégrer VigieEau objectif, le faire avant l’été et les probables restrictions…

bon @Gilles2 j’ai essayé de coller ça dans mon config.YAML:

#recuperation du niveau d'alerte VigieCrue sur le Touch
rest:
  - resource: "https://www.vigicrues.gouv.fr/rss/?CdEntVigiCru=MP17" # VigiCrues Touch
    headers:
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
      Content-Type: application/json
      User-Agent: Wget/1.20.3 (linux-gnu)
    scan_interval: 7200
    sensor:
      - name: VigiCrue
        unique_id: vigicrue
        json_attributes_path: "$.rss.channel.item"
        json_attributes:
          - pubDate
          - link
        value_template: "{{ ( (value_json.rss.channel.item.title).split(':') )[1] | trim | upper }}"
      - name: VigiCrue description
        unique_id: vigicrue_description
        value_template: >
          {% set t = value_json.rss.channel.item.description %}
          {% set t = t.split('HL')[1].split('</p>')[1].split('Abonnez vous')[0] %}
          {{ t | striptags }}

et je prend l’erreur suivante :

J’ai un truc qui ne doit pas marcher comme là: ton post sur VigieEau

Bonjour @BBE,
Là je ne suis pas devant mon HA, mais dès ce soir je partage mon code, car je récupère bien l’info de mon côté.

1 « J'aime »

@BBE,
Ci-dessous le code de mes capteurs pour la Seine proche de chez moi:

rest:
  - resource: "https://www.vigicrues.gouv.fr/rss/?CdEntVigiCru=IF5" # VigiCrues Seine à Paris
    headers:
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
      Content-Type: application/json
      User-Agent: Wget/1.20.3 (linux-gnu)
    scan_interval: 7200
    sensor:
      - name: VigiCrue Seine Paris
        unique_id: vigicrue_Seine_Paris
        json_attributes_path: "$.rss.channel.item"
        json_attributes:
          - pubDate
          - link
        value_template: "{{ ( (value_json.rss.channel.item.title).split(':') )[1] | trim | upper }}"
      - name: VigiCrue Seine Paris description
        unique_id: vigicrue_Seine_Paris_description
        value_template: >
          {% set t = value_json.rss.channel.item.description %}
          {% set t = t.split('HL')[1].split('</p>')[1].split('Abonnez vous')[0] %}
          {{ t | striptags }}

Je n’ai pas comparé à ce que tu as mis. Je récupère bien l’info:
image

Je teste ça ce soir.

Il me manque peut être une dépendance pour la partie REST?

BBE

Je ne sais pas. Je n’ai pas vu de vrai différence entre ton code et le mien (copié de la même source « befour »).
Le code que j’ai copié est dans mon configuration.yaml. Je n’ai pas séparé mon sensors.yaml chez moi (il faudra que je le fasse un jour).
Tu sembles l’avoir mis dans sensors.yaml.

1 « J'aime »

Non non. Je l’ai bien mis dans configuration.yaml contrairement à ce que laisse penser le message d’erreur.

J’ai encore un ou deux sensors dans configuration.yaml d’ailleurs, y compris la hauteur et le debit du cours d’eau en question…

Les autres sont dans sensors.yaml…

Bon ben je suis une buse !!

J’étais 100% sur de l’avoir mis dans config.yaml, mais non… j’étais dans sensor.yaml, donc ça ne marchait pas… :man_facepalming:
Une fois copié au bon endroit ça marche impec…

Merci @Gilles2

1 « J'aime »

Merci de l’update. Bonne nouvelle.
Je suis impatient de voir la superbe carte que tu vas nous créer encore une fois !!

j’ai tout mis dans une petite carte mushroom template toute simple:

type: custom:mushroom-template-card
primary: 'VigiCrue Touch: {{ states (entity)}}'
secondary: '{{states(''sensor.vigicrue_touch_description'')}}'
icon: |-
  {% if states(entity) == 'VERT' %}
  mdi:thumb-up
  {% elif states(entity)== 'JAUNE' %}
  mdi:alert-box
  {% elif states(entity)== 'ROUGE' %}
  mdi:alert
  {% else %}
  mdi:comment-question
  {% endif %}
icon_color: |-
  {% if states(entity) == 'VERT' %}
  green
  {% elif states(entity)== 'JAUNE' %}
  yellow
  {% elif states(entity)== 'ROUGE' %}
  red
  {% else %}
  orange
  {% endif %}
entity: sensor.vigicrue_touch
tap_action:
  action: more-info
hold_action:
  action: more-info
double_tap_action:
  action: more-info

image

Il me reste plus qu’à la mettre dans la carte météo et dans le pop-up crue… ça va aller vite maintenant…

Encore merci @Gilles2 pour la persévérance!

2 « J'aime »

Petite mise à jour de la carte Jardin suite au dernier sensor vigicrue…
Carte Jardin
image

pop up crues

Le clic sur l’icône vague (couleur fonction du niveau de menace) affiche les infos de la station du cour d’eau proche grace à ce tuto - suivi des cours d’eau:
image

Bonjour @BBE ,

Super Dashboard,

Serait-ce possible d’avoir, dans la limite du possible, le code de vos différents dashboards ?
J’essaie d’en faire un en me basant sur le votre, mais j’ai quelques zones d’ombres.

1 « J'aime »

J’ai partagé pas mal de cartes déjà et le dashboard complet dans les premiers messages (messages 7 et 8)…

Dis nous plutôt quelles sont les zones d’ombres pour qu’on te les éclaire, ce sera plus intéressant pour tout le monde et tu apprendras plus de choses qu’en essayant de copier.

Par exemple, j’ai donné pas mal de conseil sur la mushroom template là qui peuvent sans doute te servir aussi:

1 « J'aime »

Merci beaucoup pour ton dashbord j’essaye de reprendre pas mal d’éléments mais je bloque sur la partie pollens
Je partage la partie template qui me pose problème si tu as une idée :slight_smile:
J’ai les alertes en nul de partout aucun filtre on dirait.

type: custom:mushroom-chips-card
chips:
  - type: template
    entity: sensor.pollens_69_risklevel
    icon: mdi:flower-pollen
    hold_action:
      action: toggle
    icon_color: |-
      {% if is_state(entity, '2') %} 
       orange
      {% elif is_state(entity, '3') %} 
       red
      {% elif is_state('sensor.pollens_69_ambroisies',['00','2','3']) %} 
      red
      {% elif is_state('sensor.pollens_69_armoise',['1','2','3']) %} 
      red
      {% else %}
       grey
      {% endif %}
    tap_action:
      action: fire-dom-event
      browser_mod:
        service: browser_mod.popup
        data:
          title: Pollens
          content:
            type: vertical-stack
            cards:
              - type: horizontal-stack
                cards:
                  - type: custom:mushroom-template-card
                    primary: Rhône
                    secondary: 'Risque: {{ states(entity)}}'
                    icon: |-
                      {% if is_state(entity, '3') %} 
                        mdi:flower-pollen
                      {% else %}
                        mdi:flower-pollen-outline
                      {% endif %}
                    entity: sensor.pollens_69_risklevel
                    icon_color: |
                      {% if is_state(entity, '0') %} 
                        green
                      {% elif is_state(entity, '1') %} 
                        yellow
                      {% elif is_state(entity, '2') %} 
                        orange
                      {% elif is_state(entity, '3') %} 
                        red
                      {% else %}
                        grey
                      {% endif %}
                  - type: custom:mushroom-template-card
                    primary: Ambroisie
                    secondary: 'Risque: {{ states(entity)}}'
                    icon: |-
                      {% if is_state(entity, '3') %} 
                        mdi:grass
                      {% else %}
                        mdi:grass
                      {% endif %}
                    entity: sensor.pollens_69_ambroisies
                    icon_color: |
                      {% if is_state(entity, '0') %} 
                        green
                      {% elif is_state(entity, '1') %} 
                        yellow
                      {% elif is_state(entity, '2') %} 
                        orange
                      {% elif is_state(entity, '3') %} 
                        red
                      {% else %}
                        grey
                      {% endif %}
                  - type: custom:mushroom-template-card
                    primary: Armoise
                    secondary: 'Risque: {{ states(entity)}}'
                    icon: |-
                      {% if is_state(entity, '3') %} 
                        mdi:grass
                      {% else %}
                        mdi:grass
                      {% endif %}
                    entity: sensor.pollens_69_armoise
                    icon_color: |
                      {% if is_state(entity, '0') %} 
                        green
                      {% elif is_state(entity, '1') %} 
                        yellow
                      {% elif is_state(entity, '2') %} 
                        orange
                      {% elif is_state(entity, '3') %} 
                        red
                      {% else %}
                        grey
                      {% endif %}
              - type: custom:auto-entities
                filter:
                  include: null
                  template: |
                    {%  set ALTNAME = 'd'-%} 
                    {% for state in states.sensor -%}
                      {%- if state.entity_id | regex_match('sensor.pollens_69_',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_69_risklevel
                sort:
                  numeric: true
                  reverse: true
                  method: state
                card:
                  type: custom:bar-card
                  title: Pollens en alerte dans le 69
                  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: grey
                      from: 0
                      to: 0
                    - color: yellow
                      from: 1
                      to: 1
                    - color: orange
                      from: 2
                      to: 2
                    - color: red
                      from: 3
                      to: 3
  - type: template
    entity: light.exterieur
    tap_action:
      action: fire-dom-event
      browser_mod:
        service: browser_mod.popup
        data:
          title: Lumière Extérieur
          content:
            type: vertical-stack
            cards:
              - type: custom:mushroom-light-card
                entity: light.terrain_de_petanque_3
                use_light_color: false
                show_brightness_control: true
                show_color_temp_control: true
                show_color_control: true
                collapsible_controls: true
              - type: custom:mushroom-light-card
                entity: light.terrasse_3
                name: Terrasse
                use_light_color: false
                show_brightness_control: true
                show_color_temp_control: true
                show_color_control: true
                collapsible_controls: true
              - type: custom:mushroom-light-card
                entity: switch.spot_piscine
                use_light_color: false
                show_brightness_control: false
                show_color_temp_control: false
                show_color_control: false
                collapsible_controls: true
    icon: mdi:lightbulb
    hold_action:
      action: toggle
    icon_color: |-
      {% if is_state(entity, 'on') %} 
       orange
      {% elif is_state(entity, 'off') %} 
       grey
      {% else %}
       grey
      {% endif %}
alignment: end

A regarder ta carte, on dirait que ce qui remonte c’est une chaine de caractère et pas une valeur numérique (les cypres sont à ‹ faible › les aulnes à ‹ moyen › alors que moi j’ai des valeurs numériques entre 0 et 3).

Du coup c’est la partie filtrage et classement qu’il faut changer pour l’adapter.

Et coté affichage, pas sur que la bar-card soit bien adaptée non plus du coup…

Merci pour la réponse, c’est très étrange j’utilise la même intégration pourtant …
Ah il faut décocher la case lors de l’intégration pour convertir en chiffre …

1 « J'aime »

Tu peux déjà essayer quelque chose comme ça

              - type: custom:auto-entities
                filter:
                  include: null
                  template: |
                    {%  set ALTNAME = 'd'-%} 
                    {% for state in states.sensor -%}
                      {%- if state.entity_id | regex_match('sensor.pollens_69_',ignorecase=False) -%}
                      {%- set NAME = state_attr(state.entity_id,"pollen_name") -%}
                        {{
                          { 'entity': state.entity_id,
                            'name': NAME,
                          } }},
                      {%- endif -%}
                    {%- endfor %}
                  exclude:
# exclure le state "null"
                    - state: 'null'
                    - entity_id: sensor.pollens_69_risklevel
                sort:
# enleve le tri par valeur et laiss par état
                  method: state

Ah si tu fais ça tout devrait devenir comme chez moi…