Pollens custom component sensor

Il ne faut pas juste copier coller, il faut essayer d’interpréter et adapter à sa propre config.

Cette partie n’est pas bonne car l’entité n’existe pas !

Effectivement il y confusion entre le nom du sensor sensor.pollens_du_dpt et le unique_id

    name: pollens du dpt
    unique_id: pollens_dpt_risks

Le bon étant sensor.pollens_du_dpt

Pour information la prochaine version de l’intégration
Tous les pollens seront dans l’entité mais seul ceux qui sont sélectionnés seront actifs


Il sera possible de les activer via le menu sans recharger le custom component

image

Mais ce sera sur la prochaine version

1 « J'aime »

Presque, c’est @cob94440 qui a donné la bonne syntaxe.
Donc si je comprends bien, le name prévaut sur le unique_id ?
Et @Neuvidor pour adapter, il faut comprendre.
J’avais bien identifié la zone à problème, et fait plusieurs essais, mais c’est du tâtonnement.
Il n’y a pas de vrai parcours d’apprentissage, avec des pas à pas ; une doc existe, mais il faut aller taper au bon endroit…

Pour ceux que cela intéresse, la version que j’ai retravaillée sur mon dashboard, basée sur le custom-card et l’auto-entities

image

      - type: custom:auto-entities
        card:
          type: grid
          columns: 4
          square: true
        card_param: cards
        filter:
          include:
            - entity_id: sensor.pollens_risks_* 
              options:
                type: custom:button-card
                show_state: false
                show_icon: true
                color_type: icon
                name: |
                  [[[ return entity.attributes.friendly_name ]]]
                template:
                  - carte_jauge
                styles:
                  img_cell:
                    - background: transparent
                  icon:
                    - padding: 0px 0px 0px 0px
                    - width: 30px
                  name:
                    - font-size: 11px
                    - position: absolute
                    - bottom: 15%
                    - z-index: 2
                  state:
                    - font-size: 11px
                  custom_fields:
                    gauge:
                      - width: calc(125% + 0px)
                custom_fields:
                  gauge:
                    card:
                      entity: this.entity_id
                      gauge:
                        max_value: 4
                        min_value: 0
                        severity:
                          - color: rgb(0, 204, 102)
                            from: 0
                            to: 1
                          - color: rgb(255, 153, 0)
                            from: 2
                            to: 3
                          - color: rgb(180, 70, 70)
                            from: 4
                            to: 10
          exclude:
            - entity_id: sensor.pollens_risks_*
              state: unknown
            - entity_id: sensor.pollens_risks_*
              state: '0'
            - entity_id: sensor.pollens_risks_risklevel
        sort:
          method: state
          reverse: true
          ignore_case: true
          numeric: true

Et la partie configuration

  carte_ronde:
    show_icon: true
    show_name: false
    show_state: false
    show_label: false
    aspect_ratio: 1/1
    template:
      - police
      - style
    styles:
      img_cell:
        - border-radius: 100%
        - width: 27px
        - height: 27px
        - background-color: var(--pastille_off)
        - color: var(--text_systeme_info)
      icon:
        - width: 62%
        - color: var(--icon_off)
      card:
        - border-radius: 50%
        - padding: 0px
    double_tap_action:
      action: more-info
  carte_jauge:
    template:
      - carte_ronde
    show_icon: false
    show_state: true
    show_name: true
    show_label: true
    styles:
      name:
        - font-size: 90%
      state:
        - font-size: 130%
        - font-weight: bold
      label:
        - font-size: 90%
      custom_fields:
        gauge:
          - position: absolute
          - top: 50.5%
          - left: 50%
          - opacity: 90%
          - width: calc(115% + 0px)
          - transform: translate(-50%, calc(-50% + 0px))
          - '--paper-card-background-color': rgba(0, 0, 0, 0.0)
          - '--ha-card-background': rgba(0, 0, 0, 0.0)
          - '--ha-card-box-shadow': none
          - '--ha-card-border-width': 0px
    custom_fields:
      gauge:
        card:
          type: custom:hatc-gauge-card
          title:
            name: false
            icon: false
          gauge:
            unit_of_measurement: false
            icon: false
            icon-size: 20px
            state: false
            text-color: lightgrey
            font-size: 20px
            friendly_name: true
4 « J'aime »

Bonjour @Veher

Tout d’abord très beau dashboard.
Par contre je ne comprend pas cette partie :

                      gauge:
                        max_value: 4
                        min_value: 0
                        severity:
                          - color: rgb(0, 204, 102)
                            from: 0
                            to: 1
                          - color: rgb(255, 153, 0)
                            from: 2
                            to: 3
                          - color: rgb(180, 70, 70)
                            from: 4
                            to: 10

Pourquoi de min 0 & max 4 avec une severity de 0 a 10 tout en sachant que le sensor va de 0 a 3 depuis la version 2022.02.01 ?

Et les sensors utilisés sont nommés sensor.pollens_risks_* (en include) et la même chose en exclude ? Ce sont des templates ?

Je comprends qu’il exclut les états « inconnu » et « 0 » pour faire ressortir uniquement les alertes de niveau 1 à 3. Ainsi que le risklevel.

Hola… Merci @domokalu_1. Autant pour moi si je ne lis pas tout le code non plus ! Mais on est d’accord qu’il y a un template derrière ou un sensor du type « rest » qui n’utilise pas l’integration pollens. Ceci dit pour l’échelle des cards Gauge j’ai loupé qq chose ?
En même temps la possibilité de customiser HA est sa force mais l’utilisation des customs rend la lisibilité du codage difficile si l’on a pas l’ensemble (template, custom-card, etc)

Je fais une réponse groupée

Effectivement, je n’avais pas ré-étudié dans le détail limite exact, il faut que je revois à la baisse la partie severity et la segmentation, c’était une ancienne version que j’ai remis à jour au niveau graphique. Merci pour la remarque
Pour les sensors, l’auto-entities récupère l’ensemble des mes sensors de pollens ce qui m’évite de réécrire le code pour chaque sensor (comme une boucle).
A partir de ceux là, j’exclus les sensors qui ne présentent pas d’intérêt (pour moi) à savoir ceux dont le taux est égal à 0 (donc pas à risque en ce moment) et les unknown (au cas ou). et Idem pour risklevel qui serait retourné par auto-entities.
Effectivement le composant s’appuie sur la mise en forme du template graphique (mis en 2é partie). Je confirme cela rend plus complexe la compréhension mais m’assure une homogénéité sur l’ensemble des mes composants.
J’espère que cela à pu répondre à vos questions.

2 « J'aime »

Sorry, j’ai beau essayer de charger Pollen, c’est toujours ceci que j’ai:
« Pollen information card for hungary », ce n’est pas dans le 59???

image

Hello
Peut être un peu hors sujet mais quoique
J’essaye de mettre en place une des cartes prises ici. Attention il ne s’agit pas de la version pollen de la version dont on parle ici…
CA marche à priori
Sur cette carte,

type: custom:auto-entities
card:
  square: true
  columns: 4
  type: grid
card_param: cards
filter:
  include:
    - entity_id: sensor.pollens_risks_*
      options:
        type: custom:button-card
        color_type: icon
        show_name: true
        show_state: false
        name: |
          [[[ return entity.attributes.friendly_name + " : " + entity.state ]]]
        style: |
          ha-card {
            background: none;
            box-shadow: #ccffcc;

          }
        styles:
          card:
            - height: 100px
            - width: 100px
          name:
            - font-size: 12px
        state:
          - value: unknown
            operator: '=='
            color: black
          - value: '0'
            operator: '=='
            color: '#4682B4'
          - value: '1'
            operator: '=='
            color: '#75f94c'
          - value: '5'
            operator: '=='
            color: '#377d22'
          - value: '2'
            operator: '=='
            color: '#fffd54'
          - value: '4'
            operator: '=='
            color: '#ef8641'
          - value: '3'
            operator: '=='
            color: '#ea3522'
        size: 30%
  exclude:
    - entity_id: sensor.pollens_*
      state: unknown
    - entity_id: sensor.pollens_*
      state: '0'
sort:
  numeric: true
  reverse: false
  ignore_case: true

J’ai bien l’affichage en couleurs des icones ainsi que le nom des pollens et leur etat. PAr contre je préfererai avoir un affichage par ordre alphabetique et non l’inverse . Mais je n’y arrive pas. je pense que ca doit se jouer par la mais je ne comprends pas comment l’adapter
Merci

template: |
    {%  set ALTNAME = 'd'-%} 
    {% for state in states.sensor -%}
      {%- if state.entity_id | regex_match('sensor.pollens',ignorecase=False) -%}
      {%- set NAME = state_attr(state.entity_id,"friendly_name") -%}
        {{
          { 'entity': state.entity_id,
            'friendly_name': NAME,
          } }},
      {%- endif -%}
    {%- endfor %}

Ce n’est pas une carte mais une intégration

As-tu ajouté le dépôt ?

Soit via HACS, soit en suivant le tuto d’installation manuelle (lien github du premier post).

Hello
Non je suis parti, comme dit dans mon precedent poste de la version de skipcool, que j’ai mis a jour et qui semble fonctionner, a voir dans la duree
L’affichage de l’integration se fait correctement et avec les couleurs (code pris dans un msg de ce post)
Capture d'écran 2023-03-20

Du coup pour chipoter je voulais juste trier les alertes par ordre alphabétique et non l’inverse

Et la je bloque…
Mon entite principale est sensor.pollens, qui contient touts les attributs sensor.pollens_risks_saule etc etc par exemple

En passant par custom:auto-entities, tu peut facilement trié les résultats.

Code
  - 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

Je le fait mais sur le niveau de pollution et non pas sur le nom des sensors mais c’est presque pareil.

Il devrait te suffire a remplacer la section sort par ceci :

    sort:
      method: name
      ignore_case: true

cf : GitHub - thomasloven/lovelace-auto-entities: 🔹Automatically populate the entities-list of lovelace cards

top merci
Incroyable comme 2 mots sont simples… lol
j’avais cherche sur alphabet et nom sur name… débutant

Encore merci

En passant par HACS,
je n’ai que les propositions suivantes:

si je passe par :
https://custom_components/pollens copier l’ensemble des fichiers, opération ardue si manuelle … directory, fichiers…
n’y a t’il pas plus simple en passant par git clone… qui fonctionne généralement bien ?
Ici ???

Merci pour votre aide.

Salut,
c’est dit dans la doc GitHub - chris60600/pollens-home-assistant: Retrieve French Pollens risks in HomeAssistant

HACS (recommended)

You can install this custom component using HACS by adding a custom repository.

Faut ajouter le dépot du github dans HACS, les trois petits points en haut a droite et Dépôt personnaliser. Tu colle l’adresse du GitHub https://github.com/chris60600/pollens-home-assistant et sélectionne Intégration et valide. La tu verra l’intégration dans la liste.

Merci WarCozes, cela avance…
J ai bien dans le directory custom_components le directory pollens et tous les fichiers… et aussi l’intégration.

image

En cliquant sur la fenêtre pollens
j’ouvre une page

Pas de demande de configuration et j’ai essayé ceci:

ajout dans le configuration.yaml sans trouver ensuite après reboot d’un sensor.pollens_59…

image

Faut lire la doc :wink:

Configuration

The pollens integration is now available in the Integration Menu

  1. Select your county
  2. Untick the option to have numeric states or submit to stay with literal states (for particular pollens sensors only)
  3. Select all the pollens you want to have in sensors

You can also configure option to change default scan interval (3 hours)

Old Pollens platform configuration must be removed from configuration.yaml file

Donc, maintenant que tu as installer dans HACS, faut aller dans Paramètre / Appareils et service.
Fais ajouter une intégration et cherche « pollens » et suis la procédure.

Dans ce post, ca déjà été expliquer 2 fois… Faut faire attention les prochaines fois :stuck_out_tongue:

Il fallait comprendre qu’il faut ajouter une intégration dans appareils…
C’est OKI

Grand merci…

1 « J'aime »