Carte automatique pour suivi des batteries

@herveaurel Je patine un peu pour le réaliser.
tu as gardé le template en button_card_templates:ou tu l’as rapatrié dans la carte custom:auto-entities ?

Je l’ai modifié pour que la jauge puisse apparaitre et que l’entité soit détectée, en ajoutant ceci au template :

    variables:
      entity: '[[[ return entity.entity_id ]]]'

Ce qui donne dans sa totalité, avec les petites modifs :

  battery_level_card:
    variables:
      entity: '[[[ return entity.entity_id ]]]'
    entity: '[[[ return variables.entity ]]]'
    name: |
      [[[
        var name = entity.attributes.friendly_name ;
        return name ;
      ]]]
    label: |
      [[[
        var unit = entity.attributes.unit_of_measurement || '';
        return (entity.state * 1).toFixed(0) + unit;
      ]]]
    show_icon: true
    show_state: false
    show_label: true
    template:
      - no_style
      - police
    tap_action:
      action: more-info
    double_tap_action:
      action: toggle
    custom_fields:
      barre:
        card:
          type: custom:bar-card
          entities:
            - entity: '[[[ return variables.entity ]]]'
              color: var(--card-red)
          direction: right
          unit_of_measurement: '%'
          max: 100
          positions:
            name: 'off'
            indicator: 'off'
            value: 'off'
          height: 20px
          width: 100%
          icon: 'off'
          entity_row: true
          severity:
            - color: var(--img-cell-red)
              from: 0
              to: 30
            - color: var(--img-cell-yellow)
              from: 30.1
              to: 50
            - color: var(--img-cell-blue)
              from: 50.1
              to: 99.9
            - color: var(--img-cell-green)
              from: 100
              to: 100
    styles:
      card:
        - height: 30px
        - padding: 5.5px
      icon:
        - position: absolute
        - width: 15px
        - color: var(--text-on)
        - left: calc((7%) - 5px)
        - margin-bottom: 2px
      name:
        - position: absolute
        - font-size: 13px
        - color: var(--text-on)
        - font-weight: 500
        - left: calc((20%) - 15px)
      label:
        - position: absolute
        - font-size: 13px
        - color: |
            [[[ 
              var state = entity.state ;
                if (state <= 30)   
                return "var(--red)"              
                if (state <= 50)   
                return "var(--orange)"
                return "var(--text-on)"
             ]]]
        - font-weight: 600
        - right: calc((10%) + 10px)
      custom_fields:
        barre:
          - top: '-19%'
          - left: '-50%'
          - width: 100%
          - position: absolute
          - z-index: 0
    state:
      - value: 30
        operator: <
        styles:
          icon:
            - color: var(--red)
          state:
            - color: var(--red)
      - value: 50
        operator: <
        styles:
          icon:
            - color: var(--yellow)
          state:
            - color: var(--yellow)
      - value: 99.9
        operator: <
        styles:
          icon:
            - color: var(--blue)
      - value: 100
        operator: '='
        styles:
          icon:
            - color: var(--green)
      - value: unknown
        styles:
          name:
            - color: var(--red)
          label:
            - color: var(--red)
          card:
            - animation: blink 0.8s ease infinite
      - value: unavailable
        styles:
          name:
            - color: var(--red)
          label:
            - color: var(--red)
          card:
            - animation: blink 0.8s ease infinite

Pour la carte auto-entites je l’intègre avec :

                  options:
                    type: custom:button-card
                    template: battery_level_card

Ce qui donne par exemple pour « Tel, tablettes, ordis » et les filtres :

          - type: custom:auto-entities
            card:
              type: entities
              show_header_toggle: true
            filter:
              include:
                - attributes:
                    device_class: battery
                  entity_id: sensor.*iphone_*
                  options:
                    type: custom:button-card
                    template: battery_level_card
                - attributes:
                    device_class: battery
                  entity_id: sensor.*ipad_*
                  options:
                    type: custom:button-card
                    template: battery_level_card
                - attributes:
                    device_class: battery
                  entity_id: sensor.*macbook_*
                  options:
                    type: custom:button-card
                    template: battery_level_card
            sort:
              method: state
              numeric: true
              ignore_case: false
              ip: false
            show_empty: true

image

Une colonne complète, avec mon header :

type: custom:layout-card
layout_type: masonry
layout:
  width: 280
cards:
  - type: vertical-stack
    cards:
      - type: entities
        card_mod:
          style: |
            ha-card { 
             background-color: var(--card-background-color);
             border-radius: var(--ha-card-border-radius) !important;
             } 
        entities:
          - type: custom:decluttering-card
            template: header
            variables:
              - name: Ouvertures
              - icon: mdi:home-battery
          - type: custom:auto-entities
            card:
              type: entities
              show_header_toggle: true
            filter:
              include:
                - attributes:
                    device_class: battery
                  entity_id: sensor.porte_*
                  options:
                    type: custom:button-card
                    template: battery_level_card
            sort:
              method: state
              numeric: true
              ignore_case: false
              ip: false
            show_empty: true
      - type: entities
        card_mod:
          style: |
            ha-card { 
             background-color: var(--card-background-color);
             border-radius: var(--ha-card-border-radius) !important;
             } 
        entities:
          - type: custom:decluttering-card
            template: header
            variables:
              - name: Thermomètres
              - icon: mdi:thermometer-lines
          - type: custom:auto-entities
            card:
              type: entities
              show_header_toggle: true
            filter:
              include:
                - attributes:
                    device_class: battery
                  entity_id: sensor.*thermo_*
                  options:
                    type: custom:button-card
                    template: battery_level_card
                - attributes:
                    device_class: battery
                  entity_id: sensor.*temp_*
                  options:
                    type: custom:button-card
                    template: battery_level_card
                - attributes:
                    device_class: battery
                  entity_id: sensor.*sonde_*
                  options:
                    type: custom:button-card
                    template: battery_level_card
            sort:
              method: state
              numeric: true
              ignore_case: false
              ip: false
            show_empty: true

Bon on s’est totlament éloigné du sujet principal ! :rofl:

3 « J'aime »

C’est top, on a une carte géniale avec un code archi simple :

      - type: custom:auto-entities
        card:
          type: entities
          show_header_toggle: true
        filter:
          include:
            - attributes:
                device_class: battery
              entity_id: sensor.temperature_*
              options:
                type: custom:button-card
                template: battery_level_card
        sort:
          method: state
          numeric: true

image

Juste une petite couleur de fond à caler

Bravo :+1:

2 « J'aime »

oui auto-entities est top, on gagne un temps fou.
Tu as pu trouver comment corriger la couleur du fond ?
c’est visiblement : background: var(–ha-card-background, #0aec8d);

Sur ma configuration y’a tout qui colle bien niveau couleurs.

image
contre (avant) :
image

Je ne sais pas si c’est propre mais cela fonctionne, j’ai remplacé :

  # Card
  card-background-color: "#15161F" #rgb(34,32,48)  
  ha-card-background: '#1c1b2a' #"#171A21" #rgb(38,36,51) 

par

  # Card
  card-background-color: "#1c1b2a" #rgb(34,32,48)  
  ha-card-background: '#1c1b2a' #"#171A21" #rgb(38,36,51)

Ces deux captures sont faites avec thème jour, puis thème nuit. C’est juste ca la différence.
Donc tout est normal, chez moi en tout cas :slight_smile:

hello,

une sympa aussi est de faire une carte avec les modéles de pile et le nombre , ca permet de prévoir pour avoir du sotck .

en cour d’amelioration mais voila un premier jet.

herveaurel merci pour le classement c’est top !

(Sigalou dans le meme style de carte a tout faire tu as custom:battery-state-card)

image

type: horizontal-stack
cards:
  - type: markdown
    title: Battery Summary
    card_mod:
      style:
        ha-markdown$: >
          table { width: 100%; border-collapse: separate; border-spacing: 0px; }
          tbody tr:nth-child(2n+1) { background-color:
          var(--table-row-background-color); } thead tr th, tbody tr td
          {padding: 4px 10px; }
    content: >
      {% set ns_batteries = namespace(batteries={}) %}

      {% for entity_id in integration_entities('battery_notes') if entity_id is
      search('_battery_type$', ignorecase=False) -%}
          {% set battery_type = states[entity_id].state %}
          {% set battery_split = battery_type.split('x') %}
          {% if battery_split | length > 1 %}
            {% set battery_type = battery_split[-1] | trim %}
            {% set battery_count = battery_split[0] | int(1) %}
          {% else %}
            {% set battery_count = 1 %}
          {% endif %}
          {% if battery_type not in ns_batteries.batteries %}
              {% set ns_batteries.batteries = dict(ns_batteries.batteries, **{battery_type: battery_count}) %}
            {% else %}
              {% set ns_batteries.batteries = dict(ns_batteries.batteries, **{battery_type: ns_batteries.batteries[battery_type] + battery_count}) %}
          {% endif %}
      {% endfor %}


      | Type | Count |

      | :-- | --: |

      {% for bt in ns_batteries.batteries -%}
        | {{ bt }} | {{ ns_batteries.batteries[bt] }} |
      {% endfor %}

Salut,
tu utilise ha-battery-notes pour le type de pile ?

oui effectivement J’utilise cette intégration qui marche bien

1 « J'aime »

Bonsoir à tous,
J’ai tenté d’intégrer cette carte mais j’ai un souci pour les couleurs.
Je parle de la carte donnée par @Sigalou

type: custom:auto-entities
card:
  type: entities
  show_header_toggle: true
filter:
  include:
    - attributes:
        device_class: battery
      entity_id: sensor.netatmo*
      options:
        type: custom:button-card
        template: battery_level_card
sort:
  method: state
  numeric: true

J’obtiens ça :
image

J’ai bien mis le template à jour comme donné par @herveaurel mais j’ai probablement raté une partie.
Une piste ?

Ma carte, comporte mes ref couleurs de mes themes. (cf template button card nommé battery_level_card)
Pour mes themes, ils sont là : mon github

Suis parti comme un ouf @Sigalou avec auto-entites ! :rofl:

Ces 2 colonnes viennent d’ y passer …

Merci pour ta réponse !
J’ai bien mis ton template :

  battery_level_card:
    variables:
      entity: '[[[ return entity.entity_id ]]]'
    entity: '[[[ return variables.entity ]]]'
    name: |
      [[[
        var name = entity.attributes.friendly_name ;
        return name ;
      ]]]
    label: |
      [[[
        var unit = entity.attributes.unit_of_measurement || '';
        return (entity.state * 1).toFixed(0) + unit;
      ]]]
    show_icon: true
    show_state: false
    show_label: true
    template:
      - no_style
      - police
    tap_action:
      action: more-info
    double_tap_action:
      action: toggle
    custom_fields:
      barre:
        card:
          type: custom:bar-card
          entities:
            - entity: '[[[ return variables.entity ]]]'
              color: var(--card-red)
          direction: right
          unit_of_measurement: '%'
          max: 100
          positions:
            name: 'off'
            indicator: 'off'
            value: 'off'
          height: 20px
          width: 100%
          icon: 'off'
          entity_row: true
          severity:
            - color: var(--img-cell-red)
              from: 0
              to: 30
            - color: var(--img-cell-yellow)
              from: 30.1
              to: 50
            - color: var(--img-cell-blue)
              from: 50.1
              to: 99.9
            - color: var(--img-cell-green)
              from: 100
              to: 100
    styles:
      card:
        - height: 30px
        - padding: 5.5px
      icon:
        - position: absolute
        - width: 15px
        - color: var(--text-on)
        - left: calc((7%) - 5px)
        - margin-bottom: 2px
      name:
        - position: absolute
        - font-size: 13px
        - color: var(--text-on)
        - font-weight: 500
        - left: calc((20%) - 15px)
      label:
        - position: absolute
        - font-size: 13px
        - color: |
            [[[ 
              var state = entity.state ;
                if (state <= 30)   
                return "var(--red)"              
                if (state <= 50)   
                return "var(--orange)"
                return "var(--text-on)"
             ]]]
        - font-weight: 600
        - right: calc((10%) + 10px)
      custom_fields:
        barre:
          - top: '-19%'
          - left: '-50%'
          - width: 100%
          - position: absolute
          - z-index: 0
    state:
      - value: 30
        operator: <
        styles:
          icon:
            - color: var(--red)
          state:
            - color: var(--red)
      - value: 50
        operator: <
        styles:
          icon:
            - color: var(--yellow)
          state:
            - color: var(--yellow)
      - value: 99.9
        operator: <
        styles:
          icon:
            - color: var(--blue)
      - value: 100
        operator: '='
        styles:
          icon:
            - color: var(--green)
      - value: unknown
        styles:
          name:
            - color: var(--red)
          label:
            - color: var(--red)
          card:
            - animation: blink 0.8s ease infinite
      - value: unavailable
        styles:
          name:
            - color: var(--red)
          label:
            - color: var(--red)
          card:
            - animation: blink 0.8s ease infinite

J’ai aussi card-mod d’installé et à jour.
Il me manque autre chose ?

Pour les variables couleurs, si tu n’utilises pas mes thèmes que j’ai développé, ca ne donnera rien.
Soit tu les utilises, soit tu changes les codes couleurs.

En effet , je viens de tester en mettant ton thème dark et c’est nettement mieux.
Maintenant, je vais tester en changeant les codes couleurs.
Merci pour ton aide !

Edit : J’ai intégré tes codes couleurs dans mon thème, c’est nickel ! Merci.
Tu as un post qui parle de ton dashboard ? je tente d’intégrer des parties qui rendent super bien (chapeau bas au passage, c’est vraiment super propre) et je vais avoir quelques questions :smiley:

1 « J'aime »

Un post sur le forum non, juste mon github et j’aide pas mal sur mon groupe Facebook.
Il faudrait que je fasse un post mais pas trop de temps pour ça.
Il y a deux thèmes, que je change automatiquement basé sur le soleil.
Mon github sera bientôt mis à jour avec beaucoup de changements / nouveautés.

Arrête facebook !! tu auras du temps pour le forum :sweat_smile: