[ CARTE ] Cartes diverses ( Livebox, NAS, RPI, BLE Proxy...)

J’ai fais un tuto sur ce post Controle de la vitesse du ventilateur avec GPIO sur RPi4 - #3 par WarC0zes

Merci beaucoup. Bonne journée

@barto_95

peux tu nous donner le code de cette partie ? :
image

mettre plusieurs info sur une seule ligne m’intéresse.
merci par avance.

Avec cette carte GitHub - benct/lovelace-multiple-entity-row: Show multiple entity states and attributes on entity rows in Home Assistant's Lovelace UI

1 « J'aime »

Voici le code

      - type: custom:fold-entity-row
        head:
          entity: sensor.nas_1621_volume_1_status
          name: Volume 1
          type: custom:multiple-entity-row
          show_state: false
          entities:
            - entity: sensor.nas_1621_volume_1_volume_used
              name: Utilisé
              format: precision2
              styles:
                color: var(--my-font01-color)
            - entity: sensor.nas_1621_volume_1_average_disk_temp
              name: Température
              format: precision2
              styles:
                color: var(--my-font02-color)
            - entity: sensor.nas_1621_volume_1_status
              name: Etat
              format: precision2
              styles:
                color: var(--my-font03-color)
        group_config: null
        secondary_info: last-changed
        padding: 5
        entities:
          - entity: sensor.nas_1621_drive_1_status
            type: custom:multiple-entity-row
            entities:
              - entity: sensor.nas_1621_drive_1_temperature
                name: false
          - entity: sensor.nas_1621_drive_2_status
            type: custom:multiple-entity-row
            entities:
              - entity: sensor.nas_1621_drive_2_temperature
                name: false
          - entity: sensor.nas_1621_drive_3_status
            type: custom:multiple-entity-row
            entities:
              - entity: sensor.nas_1621_drive_3_temperature
                name: false
          - entity: sensor.nas_1621_drive_4_status
            type: custom:multiple-entity-row
            entities:
              - entity: sensor.nas_1621_drive_4_temperature
                name: false
          - entity: sensor.nas_1621_drive_5_status
            type: custom:multiple-entity-row
            entities:
              - entity: sensor.nas_1621_drive_5_temperature
                name: false
          - entity: sensor.nas_1621_drive_6_status
            type: custom:multiple-entity-row
            entities:
              - entity: sensor.nas_1621_drive_6_temperature
                name: false

Pas mal du tout ta carte HA @barto_95 :clap: :heart:

1 « J'aime »

merci @barto_95
voici la mienne avec l’ajout des volumes

2 « J'aime »

Je fournirais le code complet des deux card si vous le souhaitez

2 « J'aime »

effectivement, toujours intéressant d’avoir des bout des code, pour le certif par exemple.
merci :slight_smile:

Ca serait toujours intéressant de voir ce que tu as fait oui @barto_95 afin de nous donner tout pleins d’idée :wink:

Bonjour a tous,
petite modification sur la carte RPI. J’y est pas fait attention, mais le mot 2 days ago est manger sur la carte POWER. C’est juste dans la partie card_mod, qui il y a une modification. Le post principal est corriger aussi pour les nouveaux.

avant:

    card_mod:
      style: |
        :host {
          font-size: 15px;
          height: 114px;
        }
        ha-card {
          top: -17px;
          margin-left: -7px;
          background: none;
        }

après:

    card_mod:
      style: |
        :host {
          font-size: 15px;
        }
        ha-card {
          top: -17px;
          margin-left: -7px;
          margin-bottom: -25px;
          background: none;
        }

code de la carte RPi4 Power:

  - type: custom:uptime-card
    entity: binary_sensor.rpi_power_status
    title_template: RPi4 Power
    ok: 'off'
    ko: 'on'
    bar:
      amount: 48
      round: 1
      height: 29
    hours_to_show: 48
    init:
      animation: raise
    color:
      title: rgb(68, 115, 158)
      ko: rgb(250, 0, 1)
      ok: green
    title_adaptive_color: false
    icon_adaptive_color: true
    tooltip_adaptive_color: true
    status_adaptive_color: true
    show:
      header: true
      title: true
      timeline: true
      footer: true
      average: true
    tooltip:
      hour24: true
      animation: true
    alias:
      ok: OK
      ko: Danger
    tap_action:
      action: more-info
    alignment:
      icon_first: true
      status: left
      tooltip_first: true
      header: spaced
    card_mod:
      style: |
        :host {
          font-size: 15px;
        }
        ha-card {
          top: -17px;
          margin-left: -7px;
          margin-bottom: -25px;
          background: none;
        }

fix:

2 « J'aime »

Voici la card au complet


type: custom:vertical-stack-in-card
card_mod:
  style: |
    ha-card {
      margin-top: 0em;
        }         
mode: vertical
cards:
  - type: picture-entity
    entity: climate.thermostat_nest
    image: /local/img/home-assistant_image.png
    show_name: true
    show_state: false
    name: Serveur HASS
    state_image:
      Sécurisé: /local/img/radio/home-assistant_image.png
      'off': //local/img/radio/home-assistant_image.png
    tap_action:
      action: url
      confirmation:
        text: de vouloir accéder à Home Assistant
      url_path: https://ha.worldgeekwide.fr
    hold_action:
      action: none
  - type: entities
    entities:
      - entity: sensor.uptime
      - type: divider
        style:
          height: 1px
          width: 90%
          margin-left: auto
          margin-right: auto
          background: '#62717b'
  - type: entities
    card_mod:
      style:
        .: |
          #states {
            margin-top: -0.5em;
          }
          #states > div > button-card {
            margin: -0.5em 0 1.4em 1.05em;
          }
        '#states>div>hui-element>hui-markdown-card':
          $:
            ha-card>ha-markdown:
              $: |
                ha-markdown-element {
                  cursor: default;
                }
                ha-markdown-element>p>span {
                  font-family: Raleway;
                  font-size: 1.5em;
                  font-weight: 500;
                  vertical-align: 30%;
                }
                ha-markdown-element>p>span>ha-icon {
                  vertical-align: 10%;
                  opacity: 0.5;
                }
                ha-markdown-element>p>b {
                  font-family: Raleway;
                  font-size: 1.2em;
                  font-weight: 500;
                  line-height: 1.9em;
                  opacity: 0.5;
                }
                ha-markdown-element>ul {
                  font-family: SF Display;
                  font-size: 1.1em;
                  padding-left: 2.5em;
                }
                ha-markdown-element>ul>li {
                  margin-bottom: 0.4em;
                }
                ha-markdown-element>ul>li:last-child {
                  margin-bottom: 0px;
                }
    entities:
      - type: custom:hui-element
        card_type: markdown
        content: >
          {% if states('sensor.home_assistant_operating_system_version') |
          regex_search('b') %} <span><ha-icon
          icon="mdi:home-assistant"></ha-icon> Home Assistant {{
          states('sensor.home_assistant_operating_system_version') }}</span><br>
          {% if states('sensor.home_assistant_operating_system_version') ==
          states('sensor.sensor.home_assistant_operating_system_newest_version')
          %} <b>Aucune mise à jour</b> {% else %} <b>{{
          states('sensor.home_assistant_operating_system_newest_version') }}
          disponible</b> {{ '\U0001f389' }}

          {% if states('sensor.home_assistant_operating_system_newest_version')
          == states('sensor.sensor.home_assistant_operating_system_version') %}
          {{- state_attr('sensor.hass_release_notes_rc', 'body') }} {% endif %}
          {% endif %} {% else %} <span><ha-icon
          icon="mdi:home-assistant"></ha-icon> Home Assistant {{
          states('sensor.home_assistant_operating_system_version') }}</span><br>
          {% if states('sensor.home_assistant_operating_system_version') ==
          states('sensor.home_assistant_operating_system_newest_version') %}
          <b>Aucune mise à jour</b> {% else %} <b>{{
          states('sensor.home_assistant_operating_system_newest_version') }}
          disponible</b> {{ '\U0001f389' }}

          {% if states('sensor.home_assistant_operating_system_newest_version')
          == states('sensor.hass_release_notes') %} {{-
          state_attr('sensor.hass_release_notes', 'body') }} {% endif %} {%
          endif %} {% endif %}
      - type: custom:hui-element
        card_type: markdown
        content: >
          <span><ha-icon icon="hacs:hacs"></ha-icon> Community Store </span><br>
          {% if is_state('sensor.hacs', '0') or is_state('sensor.hacs',
          'unknown') %} <b>Aucune mise à jour</b> {% else %} <b>{{
          states('sensor.hacs') }} {{ 'mise à jour disponible' if
          is_state('sensor.hacs', '1') else 'mises à jour disponibles' }}</b> {{
          '\U0001f389' }}

          {% for repo in state_attr('sensor.hacs', 'repositories') %} * {{
          repo.display_name }} - Version {{ repo.available_version }} ([{{
          repo.installed_version }}](https://github.com/{{ repo.name
          }}/releases))

          {% endfor %} {% endif %}
      - type: divider
        style:
          height: 1px
          width: 90%
          margin-left: auto
          margin-right: auto
          background: '#62717b'
      - entity: sensor.disk_use_percent_config
      - entity: sensor.memory_free
      - type: divider
        style:
          height: 1px
          width: 90%
          margin-left: auto
          margin-right: auto
          background: '#62717b'
      - entity: sensor.cert_expiry_timestamp_ha_worldgeekwide_fr
        name: Certificat
        card_mod:
          style:
            hui-generic-entity-row:
              $: |
                /* Couleur de l'icône */ state-badge{
                  color: green;
                }
                /* Couleur de l'état */ .info {
                  color: green;
                  text-transform: uppercase;
                }
            .: |
              /* Couleur de l'état */ .text-content {
                color: green;
              }
  - type: divider
    style:
      height: 1px
      width: 90%
      margin-left: auto
      margin-right: auto
      background: '#62717b'
  - type: horizontal-stack
    cards:
      - type: horizontal-stack
        cards:
          - type: custom:mini-graph-card
            card_mod:
              style: |
                ha-card {
                  font-family: var(--primary-font-family);
                }
                .graph {
                  padding-top: 0px;
                  padding-bottom: 0px;
                }
                .info {
                  padding-bottom: 0px;
                }
                .flex {
                  padding-bottom: 10px;
                }
            entities:
              - sensor.glances_cpu_used
            name: CPU
            align_state: center
            align_icon: right
            font_size: 100
            font_size_header: 11
            hours_to_show: 24
            color_thresholds:
              - color: '#ef1d0f'
                value: 100
              - color: '#ef5a0f'
                value: 75
              - color: '#f0da11'
                value: 50
              - color: '#11f13a'
                value: 20
              - color: '#1da4f2'
                value: 0
            line_color: var(--accent-color)
            line_width: 4
            animate: true
            points_per_hour: 2
            show:
              fill: false
              graph: line
              extrema: true
              icon: true
              name: true
          - type: custom:mini-graph-card
            card_mod:
              style: |
                ha-card {
                  font-family: var(--primary-font-family);
                }
                .graph {
                  padding-top: 0px;
                  padding-bottom: 0px;
                }
                .info {
                  padding-bottom: 0px;
                }
                .flex {
                  padding-bottom: 10px;
                }
            entities:
              - sensor.glances_ram_used_percent
            name: RAM
            align_state: center
            align_icon: right
            font_size: 100
            font_size_header: 11
            hours_to_show: 24
            color_thresholds:
              - color: '#ef1d0f'
                value: 100
              - color: '#ef5a0f'
                value: 75
              - color: '#f0da11'
                value: 50
              - color: '#11f13a'
                value: 20
              - color: '#1da4f2'
                value: 0
            line_color: var(--accent-color)
            line_width: 4
            animate: true
            points_per_hour: 2
            show:
              fill: false
              graph: line
              extrema: true
              icon: true
              name: true

4 « J'aime »

Merci pour toutes ces ressources qui sont fortes utiles !

  • Sur la carte du Raspberry Pi, j’ai rajouter l’info de la fréquence du CPU
    il y a bien une intégration CPU Speed mais chez moi, il indique toujours 1700Ghz …
    Je récuperer l’info via ces 2 sensors :
    • command_line.yaml :
- sensor:
    name: "RPi CPU freq"
    unique_id: rpi_cpu_freq
    command: 'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq'
    unit_of_measurement: 'MHz'
    value_template: '{{ value | multiply(0.001) }}'
  • sensor.yaml : ( pour lisser le fréquence car il passe souvent de 800 a 1700 )
- platform: filter
  name: RPI average Freq
  entity_id: sensor.rpi_cpu_freq
  filters:
    - filter: time_simple_moving_average
      window_size: "00:10"
      precision: 0
  • Sur la livebox :
    • malheureusement, le nombre de clients connectées (Filaire & Wifi) sont faux, je pense qu’il s’agit du nombre totale d’équipement qui se sont déjà connecter à la livebox. Mais ça on peut rien faire je pense
    • je trouvé la carte trop grande, je l’ai compacter de 3 lignes via :
      • uptime dans la ligne du dessus (‹ connection ›) ( Ok c’est pas tout a fait une connection mais bon)
      • J’ai regrouper sur une seul ligne, Clients Filaire, Client Wifi et Wifi Switch

J’ai remarquer pareille pour le nombre d’appareil, c’est bien le nombre de tout les appareils qui ont été connecter a la Livebox mais pas ceux en cours.

Pour connection c’est Link type et Link state, après le titre n’est peu être pas approprier mais ca me convenais.

Pour nettoyer et oublié les appareils connectés a la livebox, on peut passer par Livebox monitor : Weiterleitungshinweis

Tester et ça baisse bien le nombre dans l’intégration HA

1 « J'aime »

J’ai un petit problème d’affichage depuis quelques temps.

image

Les boutons de sélection d’affichage des ATOM ressembment à cela maintenant. Pour retrouver un affichage normal et pouvoir sélectionner celui qui m’intéresse, je dois passer par Modifier le tableau de bord (juste le fait de sélectionner ce menu rétabli les boutons)

image

Quelqu’un rencontre il le même problème?

Ta la dernière version de tabbed-card Release v0.3.2 · kinghat/tabbed-card · GitHub ?
ca fix le soucis .

1 « J'aime »

Un grand merci à toi. Cela fonctionne. J’avais bien la bonne version mais je ne l’avais pas déclarée dans mon ui-lovelace.yaml.

1 « J'aime »

Pas vraiment lié a ta demande, mais voici un code esphome pour afficher l’uptime de manière plus lisible et jolie :

text_sensor:
  - platform: template
    id: ${name}_uptime
    name: Uptime
    lambda: |-
      int seconds = (id(uptime_sec).state);
      int days = seconds / (24 * 3600);
      seconds = seconds % (24 * 3600); 
      int hours = seconds / 3600;
      seconds = seconds % 3600;
      int minutes = seconds /  60;
      seconds = seconds % 60;
      if ( days ) {
        return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s ").c_str() };
      } else if ( hours ) {
        return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s ").c_str() };
      } else if ( minutes ) {
        return { (String(minutes) +"m "+ String(seconds) +"s ").c_str() };
      } else {
        return { (String(seconds) +"s ").c_str() };
      }
    icon: mdi:clock-start
    update_interval: 113s
    entity_category: config 
1 « J'aime »

merci pour le script mais je dois le coller à quel endroit? dans la configuration de mes cartes ESPHome ou ailleurs?