[Mon Dashboard] - @Quintus

Je reviens vers toi pour ton aide, si tu veux bien… Merci d’avance

Oui oui pardon Schumi.

Je rentre de vacances mercredi soir.

Je comptais m’occuper de toi jeudi, si cela ne te dérange pas

pas de soucis. et excuse moi, je ne savais pas que tu etais en vacances. alors profite encore des ces derniers jours. :+1:
J’attendrais bien jusque la, je ne suis pas dans l’urgence.
Encore merci a toi !

  • Pour la météo, je suis actuellement sur le sensor de l’intégration officielle « Météo-France », disponible directement en intégration par l’UI. Pour la carte, elle vient de cette communauté! Regarde ici.

  • Je n’utilise pas de sensors pour les jours fériés (pour le moment)

  • Pour le jour de fête je scrape comme beaucoup (ou pas?) sur le site Ephemeride.com. Voici le code :

Code du sensor
   #### FETES ####
  - platform: scrape
    name: Fete du Jour - Homme
    resource: https://www.ephemeride.com/free/fete.jsp
    select: ".FeteHomme"
    scan_interval: 28800
    
  - platform: scrape
    name: Fete du Jour - Femme
    resource: https://www.ephemeride.com/free/fete.jsp
    select: ".FeteFemme"
    scan_interval: 28800

Pour l’afficher dans le markdown, ma méthode est la suivante :

Code du Markdown
{% if is_state('input_text.fete_femme', 'unknown') %} {% if is_state('input_text.fete_homme', 'unknown') %}  {% else %}  Aujourd'hui nous fêtons les <font color= CornflowerBlue>{{ states.input_text.fete_homme.state }}</font>. {% endif%} {% else %}
  Aujourd'hui nous fêtons les <font color= MediumOrchid>{{ states.input_text.fete_femme.state }}</font>{% if is_state('input_text.fete_homme', 'unknown') %}.  {% else %} ainsi que les <font color= CornflowerBlue>{{ states.input_text.fete_homme.state }}</font>.
  {% endif%} {% endif%}

Avec cette petite méthode, si il y a un problème avec le scrape, ou bien seulement pas de données qui remontent un jour, l’info n’est pas affichée.

Il y a sans doute de bien meilleures techniques que la mienne. J’ai vu que tu as regardé le dashboard de @Felix62 et même si je ne l’ai regardé pour le moment qu’en diagonale pendant mes vacances, j’ai cru voir bon nombre de choses intéressantes. Je vais prendre le temps de regarder son œuvre et de lui faire honneur dans le mien :slightly_smiling_face:

  • Je n’utilise pour le moment pas de calendrier dans HA. Mais cela viendra peut-être!

Voilà, je ne pense pas avoir complètement répondu alors n’hésite pas

ok, impec. cela va bien m’aider. Un grand merci…
Puis-je encore profiter de toi et de ton dashboard ?
Pour les carte et code de :

  • Liste des course. (deja installer, mais j’aimerais aussi l’avoir sur ma montre…(apple watch)
  • Ta carte "stack-in-card avec media player et fold-entity-row histoire d’avoir les pochettes et surtout les playlist.
  • Tes lumieres (facon homekit) avec l’intensité de l’eclairage.

J’en demande beaucoup, mais j’apprecie vraiment bc^p de chose de ton dashboard…
Et un grand merci pour ton temps que j’occupe a me repondre.

De rien :blush:

Liste de courses :

Intégration en natif via l’UI (Intitulé liste d’achats), mais tu sembles l’avoir déjà fait. Je précise pour d’éventuels futurs intéressés.

Il faut ensuite créer un fichier que tu nommeras « shopping_list.py » et que tu placeras au même endroit que tes fichiers de config (configuration.yaml, etc…)

Et place ce code dans le fichier :
#!/usr/local/bin/python
# coding: utf8
import json

with open('/config/.shopping_list.json') as data_file:
    shoppingListData = json.load(data_file)

content = u"<b>Liste de Courses:</b><br>"
for entry in shoppingListData:
    if not entry['complete']:
        content += u"- %s<br>" % entry['name']

content += u"<br>"

print(content)
Puis dans ton sensors.yaml (ou équivalent), place ce code :
  - platform: command_line
    name: Liste de Courses
    command: python3 /config/shopping_list.py
    json_attributes:
        - name
Ensuite, pour avoir ma mise en page sur la carte :
card:
  cards:
    - type: shopping-list
    - entity: null
      name: COCHER TOUS LES ARTICLES
      show_icon: false
      style: |
        ha-card {

          background: none;
          font-size: 6px;
          font-weight: bold;
          color: rgba(3, 169, 244, 0.5);

          }
      tap_action:
        action: call-service
        service: shopping_list.complete_all
      type: button
    - cards:
        - entity: script.liste_courses_envoyer_quintus
          name: ENVOYER À QUINTUS
          show_icon: false
          style: |
            ha-card {
              width: 150px;
              margin-left: -10px;
              margin-right: auto;
              background: none;
              font-size: 6px;
              font-weight: bold;
              color: rgba(3, 169, 244, 0.5);
              border-radius: 20px;

              }
          tap_action:
            action: toggle
          type: button
        - entity: script.liste_courses_envoyer_stickysnoops
          name: ENVOYER À STICKYSNOOPS
          show_header_toggle: false
          show_icon: false
          style: |
            ha-card {
              width: 150px;
              margin-left: auto;
              margin-right: 0px;
              background: none;
              font-size: 6px;
              font-weight: bold;
              color: rgba(3, 169, 244, 0.5);
              border-radius: 20px;

              }
          tap_action:
            action: toggle
          type: button
      type: horizontal-stack
  mode: vertical
  style: |
    ha-card {
      border-radius: 20px;

      }
  type: custom:stack-in-card
conditions:
  - entity: input_boolean.liste_courses
    state: 'on'
type: conditional


Et le script qui va avec :
alias: '[Liste de Courses] Envoyer Liste à Quintus'
sequence:
  - data: {}
    entity_id: sensor.liste_de_courses
    service: homeassistant.update_entity
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: notify.mobile_app_quintus_s21
    data_template:
      data:
        sticky: 'true'
        subject: <b>Liste de Courses</b>
      message: '{{ states(''sensor.liste_de_courses'') }}'
      title: Home Assistant
mode: single

Il suffit ensuite de faire un bouton qui « toggle » un boolean (ici nommé « liste_courses ») pour dévoiler la carte (si vraiment tu veux faire comme moi. Pas obligé)

Media Player :

Voici le code pompeux de ma carte :
cards:
  - artwork: full-cover
    entity: media_player.multiroom
    hide:
      icon_state: false
      power_state: false
      progress: false
      repeat: false
      runtime: false
      shuffle: false
      source: true
      volume: false
    icon: mdi:cast-audio
    idle_view:
      when_idle: true
      when_paused: true
      when_standby: true
    name: Serveur Multiroom
    shortcuts:
      buttons:
        - data:
            card:
              aspect_ratio: 160%
              style: |
                ha-card {
                  border-radius: 20px;
                  margin-left: auto;
                  margin-right: auto;
                  } 
              type: iframe
              url: http://192.168.1.90:3689/#/
            deviceID:
              - this
            large: true
            style:
              $: |
                .mdc-dialog .mdc-dialog__container .mdc-dialog__surface {
                  border-radius: 22px;
                }
              .: |
                :host {
                  --mdc-theme-surface: rgba(0,0,0,0);
                  --secondary-background-color: rgba(0,0,0,0.5);
                  --ha-card-background: rgba(40,40,40,0.8);
                }
                :host .content {
                  width: 60%;
                  top: 10px;
                 }
            title: Liste de Lecture
          icon: mdi:playlist-music
          id: browser_mod.popup
          type: service
        - data:
            card:
              cards:
                - cards:
                    - aspect_ratio: 100%
                      entity: input_text.fete_homme
                      image: /local/Images/Best.jpg
                      name: Best de Quintus
                      show_state: false
                      style: |
                        ha-card {
                           border-radius: 10px;
                           text-align: center

                                }
                      tap_action:
                        action: call-service
                        service: rest_command.multiroom_playlist_quintus
                      type: picture-entity
                    - aspect_ratio: 100%
                      entity: input_text.fete_homme
                      image: /local/Images/Trop Mimi.jpg
                      name: Un peu de douceur...bordel
                      show_state: false
                      style: |
                        ha-card {
                           border-radius: 10px;
                           text-align: center

                                }
                      tap_action:
                        action: call-service
                        service: rest_command.multiroom_playlist_stickysnoops
                      type: picture-entity
                    - aspect_ratio: 100%
                      entity: input_text.fete_homme
                      image: /local/Images/OST.jpg
                      name: OST
                      show_state: false
                      style: |
                        ha-card {
                           border-radius: 10px;
                           text-align: center

                                }
                      tap_action:
                        action: call-service
                        service: rest_command.multiroom_playlist_ost
                      type: picture-entity
                  type: horizontal-stack
                - cards:
                    - aspect_ratio: 100%
                      entity: input_text.fete_homme
                      image: /local/Images/OUI_FM.jpg
                      show_name: false
                      show_state: false
                      style: |
                        ha-card {
                           border-radius: 10px;
                           text-align: center

                                }
                      tap_action:
                        action: call-service
                        service: rest_command.multiroom_ouifm
                      type: picture-entity
                    - aspect_ratio: 100%
                      entity: input_text.fete_homme
                      image: /local/Images/OUI FM - Rock Indé.png
                      show_name: false
                      show_state: false
                      style: |
                        ha-card {
                           border-radius: 10px;
                           text-align: center

                                }
                      tap_action:
                        action: call-service
                        service: rest_command.multiroom_ouifm_rockinde
                      type: picture-entity
                    - aspect_ratio: 100%
                      entity: input_text.fete_homme
                      image: /local/Images/OUI FM - Alternatif.png
                      show_name: false
                      show_state: false
                      style: |
                        ha-card {
                           border-radius: 10px;
                           text-align: center

                                }
                      tap_action:
                        action: call-service
                        service: rest_command.multiroom_ouifm_alternatif
                      type: picture-entity
                    - aspect_ratio: 100%
                      entity: input_text.fete_homme
                      image: /local/Images/OUI FM - Classic Rock.png
                      show_name: false
                      show_state: false
                      style: |
                        ha-card {
                           border-radius: 10px;
                           text-align: center

                                }
                      tap_action:
                        action: call-service
                        service: rest_command.multiroom_ouifm_classicrock
                      type: picture-entity
                  type: horizontal-stack
                - cards:
                    - color_type: blank-card
                      type: custom:button-card
                    - aspect_ratio: 100%
                      entity: input_text.fete_homme
                      image: /local/Images/RTL2.png
                      show_name: false
                      show_state: false
                      style: |
                        ha-card {
                           border-radius: 10px;
                           text-align: center

                                }
                      tap_action:
                        action: call-service
                        service: rest_command.multiroom_rtl2
                      type: picture-entity
                    - color_type: blank-card
                      type: custom:button-card
                  type: horizontal-stack
              type: vertical-stack
            large: true
            style:
              $: |
                .mdc-dialog .mdc-dialog__container .mdc-dialog__surface {
                  border-radius: 12px;
                }
              .: |
                :host {
                  --mdc-theme-surface: rgba(0,0,0,0);
                  --secondary-background-color: rgba(0,0,0,0.5);
                  --ha-card-background: rgba(40,40,40,0.8);
                  width: 80%;
                  
                }
                :host .content {
                  top: 10px;
                 }
            title: Source de Musique
            deviceID:
              - this
          icon: hass:folder-music
          id: browser_mod.popup
          type: service
      column_height: 40
      columns: 4
    style: |
      :host {
        --mini-media-player-name-font-weight: bold;

        --mini-media-player-overlay-color-stop: 25%;
        --mini-media-player-overlay-color: rgba(40,40,40, .8);
        --mini-media-player-accent-color: rgba(37,129,172, .6);
        --mini-media-player-button-color: rgba(240,240,240, .1);
        --mini-media-player-progress-height: 12px;
        --mini-media-player-icon-color: rgb(37,129,172);
        --mini-media-player-media-cover-info-color: rgba(137,229,272, 1);


        background: 
          {% if is_state_attr('media_player.multiroom', 'media_album_name', 'OUI FM La Radio du Rock') %} url(/local/Images/OUI_FM.jpg) 
          {% elif is_state_attr('media_player.multiroom', 'media_album_name', 'OUI FM Rock Indé') %} url(/local/Images/OUI_FM_Rock.jpg) 
          {% elif is_state_attr('media_player.multiroom', 'media_album_name', 'OUI FM Alternatif') %} url(/local/Images/OUI_FM_Alternatif.jpg) 
          {% elif is_state_attr('media_player.multiroom', 'media_album_name', 'OUI FM Classic Rock') %} url(/local/Images/OUI_FM_Classic.jpg) 
          {% elif is_state_attr('media_player.multiroom', 'media_album_name', 'RTL2 [MP3 192]') %} url(/local/Images/RTL2.png) 
          {% else %} none
          {% endif %} center / cover ;      
      }
    toggle_power: false
    type: custom:mini-media-player
  - entities:
      - entities:
          - entity: media_player.multiroom_yamaha_5_1
            name: Salon - Ampli 5.1
          - entity: media_player.multiroom_varys
            name: Salon - Varys
          - entity: media_player.multiroom_marc_pc
            name: Bureau
          - entity: media_player.multiroom_salle_de_bain
            name: Salle de Bain
        head: group.pieces
        padding: 2
        show_state: false
        type: custom:fold-entity-row
    type: entities
mode: vertical
style:
  .: |
    ha-card {
      border-radius: 20px;
    }
type: custom:stack-in-card

Et c’est vrai qu’il est pompeux. Et bourré d’aberrations que je n’ai jamais pris le temps de corriger.

En exemple, je ne savais pas à l’époque faire de bouton sans avoir à mettre une entité. Du coup, tu verras dans mon code des « entity: input_text.fete_homme » complètement inutiles. Ils sont juste là car ils me permettaient de feinter et réussir à créer un bouton clickable. Alors que c’est tout à fait possible de faire sans (on a bien tous commencé un jour, hein :sweat_smile:)

Tout comme faire des rest_command pour appeler les playlist. Obsolète. Depuis, HA permet de les appeler directement depuis l’entité media_player avec un media_player.select_source.

Tout ça pour dire que cette carte est vieille. La vérité c’est que je ne l’utilise que rarement maintenant. Voilà pourquoi je ne lui ai pas donné un coup de neuf.

Pour les pochettes, soit le media_player les fournit directement, soit je passe par un background qui se met en fonction du « media_album_name » de ma source, exemple : OUI FM.

Lumières :

Pour ma view Lumières, ce n’est qu’une seule carte en mode panel. Je vais bientot la changer car je ne suis pas satisfait. Je pense passer sur le très joli style Minimalist relayé par @Clemalex.

Mais si tu souhaites prendre ce que j’ai fait jusque là (et que j’ai en fait copié sur d’autres), voici le code d’un bouton :

Code :
enableColumns: true
masonry: false
home: false
rows:
  - columns:
      - column: 1
        entities:
          - entities:
              - card: custom:button-card
                cardOptions:
                  entity: light.ambiance_salon
                  show_last_changed: true
                  state_display: |
                    [[[
                        if (entity.state === 'on')
                          return 'Allumée';
                        else
                          return 'Eteinte';
                      ]]]
                  custom_fields:
                    icon_hue: >
                      <svg viewBox="0 0 32 32"><path d="M8.4395,16.668
                      C8.9795,16.552
                       9.5115,16.895 9.6285,17.435 C9.7455,17.974 9.4025,18.506 8.8625,18.623
                       C8.3225,18.74 7.7905,18.397 7.6735,17.857 C7.5565,17.317 7.9005,16.785
                       8.4395,16.668 M13.3275,15.611 C13.8665,15.495 14.3985,15.838
                       14.5155,16.377 C14.6325,16.917 14.2895,17.449 13.7505,17.566
                       C13.2105,17.683 12.6775,17.34 12.5605,16.8 C12.4445,16.261
                       12.7875,15.729 13.3275,15.611 M18.2135,14.555 C18.7535,14.438
                       19.2865,14.781 19.4025,15.32 C19.5195,15.86 19.1765,16.393 18.6365,16.51
                       C18.0965,16.626 17.5645,16.283 17.4485,15.743 C17.3315,15.203
                       17.6735,14.671 18.2135,14.555 M23.1005,13.498 C23.6405,13.381
                       24.1725,13.724 24.2905,14.264 C24.4065,14.804 24.0635,15.336
                       23.5235,15.453 C22.9835,15.569 22.4515,15.227 22.3355,14.687
                       C22.2175,14.147 22.5615,13.614 23.1005,13.498 M10.6695,20.639
                       L25.4735,17.444 C26.5535,17.211 27.2405,16.147 27.0065,15.067
                       C26.4495,12.484 23.9035,10.842 21.3205,11.399 L6.5165,14.594
                       C5.4365,14.827 4.7505,15.891 4.9835,16.971 C5.5415,19.554 8.0865,21.196
                       10.6695,20.639 M25,26 C24.447,26 24,25.553 24,25 C24,24.447 24.447,24
                       25,24 C25.553,24 26,24.447 26,25 C26,25.553 25.553,26 25,26 M20,26
                       C19.447,26 19,25.553 19,25 C19,24.447 19.447,24 20,24 C20.553,24
                       21,24.447 21,25 C21,25.553 20.553,26 20,26 M15,26 C14.447,26 14,25.553
                       14,25 C14,24.447 14.447,24 15,24 C15.553,24 16,24.447 16,25 C16,25.553
                       15.553,26 15,26 M10,26 C9.447,26 9,25.553 9,25 C9,24.447 9.447,24 10,24
                       C10.553,24 11,24.447 11,25 C11,25.553 10.553,26 10,26 M27,22 L9,22 C5,22
                       4,19 4,18 L4,23 C4,25.762 6.238,28 9,28 L27,28 C27.553,28 28,27.553
                       28,27 L28,23 C28,22.447 27.553,22 27,22 M22,8 C21.447,8 21,7.553 21,7
                       C21,6.447 21.447,6 22,6 C22.553,6 23,6.447 23,7 C23,7.553 22.553,8 22,8
                       M17,8 C16.447,8 16,7.553 16,7 C16,6.447 16.447,6 17,6 C17.553,6 18,6.447
                       18,7 C18,7.553 17.553,8 17,8 M12,8 C11.447,8 11,7.553 11,7 C11,6.447
                       11.447,6 12,6 C12.553,6 13,6.447 13,7 C13,7.553 12.553,8 12,8 M7,8
                       C6.447,8 6,7.553 6,7 C6,6.447 6.447,6 7,6 C7.553,6 8,6.447 8,7 C8,7.553
                       7.553,8 7,8 M23,4 L5,4 C4.447,4 4,4.447 4,5 L4,9 C4,9.553 4.447,10 5,10
                       L23,10 C27,10 28,13 28,14 L28,9 C28,6.238 25.762,4 23,4"
                       style="fill:#C0C0C0;"></path> <g><circle cx="7" cy="7" r="0.878"
                       style="fill:var(--button-card-light-color)"/> <circle cx="17" cy="7"
                       r="0.878" style="fill:var(--button-card-light-color)"/> <circle cx="22"
                       cy="7" r="0.878" style="fill:var(--button-card-light-color)"/> <circle
                       cx="8.651" cy="17.646" r="0.878"
                       style="fill:var(--button-card-light-color)"/> <circle cx="13.538"
                       cy="16.589" r="0.878" style="fill:var(--button-card-light-color)"/>
                       <circle cx="18.425" cy="15.532" r="0.878"
                       style="fill:var(--button-card-light-color)"/> <circle cx="23.313"
                       cy="14.475" r="0.878" style="fill:var(--button-card-light-color)"/>
                       <circle cx="10" cy="25" r="0.878"
                       style="fill:var(--button-card-light-color)"/> <circle cx="15" cy="25"
                       r="0.878" style="fill:var(--button-card-light-color)"/> <circle cx="20"
                       cy="25" r="0.878" style="fill:var(--button-card-light-color)"/> <circle
                       cx="25" cy="25" r="0.878" style="fill:var(--button-card-light-color)"/>
                       <circle cx="12" cy="7" r="0.878"
                       style="fill:var(--button-card-light-color)"/></g> </svg>
                  styles:
                    card:
                      - font-family: Sf Display
                      - letter-spacing: 0.05vw
                      - font-weight: bold
                      - font-size: 100%
                    name:
                      - top: 30%
                      - left: 54%
                      - position: absolute
                    label:
                      - top: 42%
                      - left: 54%
                      - position: absolute
                    state:
                      - top: 36%
                      - left: 54%
                      - position: absolute
                    custom_fields:
                      icon_hue:
                        - top: 2%
                        - left: 2%
                        - width: 40%
                        - position: absolute
                      circle:
                        - top: 2%
                        - left: 74%
                        - width: 24%
                        - position: absolute
                        - letter-spacing: 0.03vw
                  template: light
                higherSize: 1
                wider: true
                widerSize: 2
                noPadding: true
            title: Ambiance
        tileOnRow: 2

title: Lumières
titleColor: '#FFF'
style: |
  :host {
    --tile-background: rgba(255, 255, 255, 0.1);
    --tile-border-radius: 10px;
    --tile-width: 100px;
    --tile-height: 100px;
    --tile-on-background: none;
    --tile-name-text-color: rgba(255, 255, 255, 1);
    --tile-on-name-text-color: rgba(0, 0, 0, 1);
    --tile-state-text-color: rgba(0, 0, 0, 0.7);
    --tile-on-state-text-color: rgba(255,255,255, 1);
    --tile-state-changed-text-color: rgb(255, 255, 255);
    --tile-unavailable-state-text-color: rgba(255, 0, 0, 1);
    --tile-value-text-color: rgba(255, 0, 0, 1);
    --tile-icon-color: rgba(0, 0, 0, 0.6);
    --tile-on-icon-color: #F7D959;
    --tile-width-mobile: 140px;
    --tile-height-mobile: 140px;
    background: none;
  } 
type: custom:homekit-card

Quand tu vois la gueule du code pour 1 seul bouton, tu comprendras que je ne te mets pas toute la page :sweat_smile:

Je pense qu’avec ça, tu devrais t’en sortir. Mais si tu coinces, tu sais quoi faire :slight_smile:

Merci pour le coup de main, c’est super…
Je jette un coup d’oeil aux lumiere, et je vois qu’en mettant la carte, il me dit:

Button-card template ‹ light › is missing!

Tu as un ou plusieurs template qui fonctionne avec la carte ? si oui, tu sais me les donner et me dire ou les mettre stp.
C’est gentil a toi… je suis assez novice dans la mise en page des dashboard, avec template, sensors et tout les trucs du genre !

encore merci.

les templates faut les ajouter en haut du dashboard en mode RAW

Ah bien vu! Euh…c’était un test :roll_eyes:

Voici en effet tous mes templates :
button_card_templates:
  base:
    aspect_ratio: 1/1
    show_state: true
    show_icon: false
    state_display: |
      [[[
          if (entity.state === 'on')
            return 'Allumé';
          else
            return 'Eteint';
        ]]]
    state:
      - value: 'on'
        styles:
          card:
            - background-color: rgba(255, 255, 255, 0.8)
            - font-weight: bold
          name:
            - color: rgba(0, 0, 0, 1)
            - font-weight: bold
          state:
            - color: rgba(0, 0, 0, 0.6)
          label:
            - color: rgba(0, 0, 0, 0.6)
      - value: 'off'
        styles:
          name:
            - color: rgba(0, 0, 0, 1)
            - font-weight: bold
    tap_action:
      action: toggle
      haptic: light
    styles:
      name:
        - top: 74%
        - left: 6%
        - position: absolute
      label:
        - top: 84%
        - left: 40%
        - position: absolute
      state:
        - top: 84%
        - left: 6%
        - position: absolute
      icon:
        - top: 44%
        - left: 11%
        - position: absolute
      card:
        - font-family: Sf Display
        - letter-spacing: 0.05vw
        - font-weight: bold
        - color: rgba(0, 0, 0, 0.4)
        - font-size: 80%
        - background-color: rgba(140, 140, 140, 0.8)
        - border-radius: 0.8vw
        - box-shadow: none
        - transition: none
      custom_fields:
        circle:
          - top: 4%
          - left: 66%
          - width: 30%
          - position: absolute
          - letter-spacing: 0.03vw
  loader:
    custom_fields:
      loader: >
        [[[ if (entity.state === 'on') {  return '<img
        src="/local/Icones/loader.svg" width="100%">'; } ]]]
    styles:
      custom_fields:
        loader:
          - filter: '[[[ return entity.state === ''off'' ? ''invert(1)'' : ''none''; ]]]'
          - top: '-4%'
          - left: 70%
          - width: 36%
          - position: absolute
          - opacity: 0.6
  light:
    styles:
      card:
        - box-shadow: 0px 0px 20px 3px var(--button-card-light-color-no-temperature)
    template:
      - base
    custom_fields:
      circle: >
        [[[ if (entity.state === 'on' && entity.attributes.brightness) { const
        brightness = Math.round(entity.attributes.brightness / 2.54); const
        radius = 20.5; const circumference = radius * 2 * Math.PI;  return `<svg
        viewBox="0 0 50 50"><circle cx="25" cy="25" r="${radius}"
        stroke="#b2b2b2" stroke-width="1.5" fill="none" style=" transform:
        rotate(-90deg); transform-origin: 50% 50%; stroke-dasharray:
        ${circumference}; stroke-dashoffset: ${circumference - brightness / 100
        * circumference};" /> <text x="50%" y="54%" fill="#8d8e90"
        font-size="14" text-anchor="middle"
        alignment-baseline="middle">${brightness}<tspan
        font-size="10">%</tspan></text></svg>`; } ]]]
    hold_action:
      action: fire-dom-event
      browser_mod:
        command: popup
        card:
          actionSize: 60px
          actions:
            - color: rgb(180, 200, 250)
              name: Froid
              service: light.turn_on
              service_data:
                entity_id: '[[[ return entity.entity_id ]]]'
                rgb_color:
                  - 126
                  - 150
                  - 255
            - color: rgb(80, 100, 250)
              name: Myrtille
              service: light.turn_on
              service_data:
                entity_id: '[[[ return entity.entity_id ]]]'
                rgb_color:
                  - 43
                  - 3
                  - 255
            - color: rgb(0, 250, 200)
              name: Turquoise
              service: light.turn_on
              service_data:
                entity_id: '[[[ return entity.entity_id ]]]'
                rgb_color:
                  - 0
                  - 255
                  - 200
            - color: rgb(255, 220, 150)
              name: Chaud
              service: light.turn_on
              service_data:
                entity_id: '[[[ return entity.entity_id ]]]'
                rgb_color:
                  - 255
                  - 255
                  - 126
          actionsInARow: 4
          brightnessHeight: 300px
          brightnessWidth: 120px
          entity: '[[[ return entity.entity_id ]]]'
          icon: mdi:led-strip
          settings:
            closeButton: Retour
            openButton: Roue Chromatique
          settingsCard:
            cardOptions:
              cards:
                - entities:
                    - brightness: false
                      brightness_icon: weather-sunny
                      child_card: true
                      color_picker: true
                      color_temp: true
                      color_wheel: true
                      consolidate_entities: false
                      effects_list: false
                      entity: '[[[ return entity.entity_id ]]]'
                      full_width_sliders: false
                      hide_header: true
                      persist_features: false
                      shorten_cards: false
                      show_slider_percent: false
                      smooth_color_wheel: true
                      temperature_icon: thermometer
                      type: custom:light-entity-card
                      white_icon: file-word-box
                      white_value: false
                  style: |
                    ha-card {
                      border-radius: 40px;
                      background: none;
                      box-shadow: none;
                      }
                  type: entities
                - entities:
                    - colors:
                        - icon_color: rgb(180, 200, 250)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 126
                              - 150
                              - 255
                          type: call-service
                        - icon_color: rgb(80, 100, 250)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 43
                              - 3
                              - 255
                          type: call-service
                        - icon_color: rgb(0, 0, 250)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 0
                              - 2
                              - 255
                          type: call-service
                        - icon_color: rgb(220, 0, 250)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 146
                              - 2
                              - 255
                          type: call-service
                        - icon_color: rgb(240, 100, 250)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 255
                              - 0
                              - 250
                          type: call-service
                        - icon_color: rgb(255, 0, 0)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 255
                              - 0
                              - 0
                          type: call-service
                        - icon_color: rgb(255, 100, 0)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 255
                              - 40
                              - 0
                          type: call-service
                        - icon_color: rgb(255, 200, 0)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 255
                              - 200
                              - 0
                          type: call-service
                        - icon_color: rgb(255, 220, 150)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 255
                              - 255
                              - 126
                          type: call-service
                        - icon_color: rgb(0, 250, 200)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 0
                              - 255
                              - 200
                          type: call-service
                        - icon_color: rgb(40, 200, 40)
                          service: light.turn_on
                          service_data:
                            entity_id: '[[[ return entity.entity_id ]]]'
                            rgb_color:
                              - 0
                              - 255
                              - 2
                          type: call-service
                      entity: light.lumieres_cuisine
                      justify: center
                      size: 42
                      type: custom:rgb-light-card
                  entity: '[[[ return entity.entity_id ]]]'
                  style: |
                    ha-card {
                      border-radius: 40px;
                      background: none;
                      box-shadow: none;
                      }
                  type: entities
              type: vertical-stack
            cardStyle: |
              background-color:#FFF;
            type: entities
          sliderColoredByLight: true
          switchHeight: 400px
          switchWidth: 150px
          type: custom:light-popup-card
          deviceID:
            - this
        large: true
        style:
          $: |
            .mdc-dialog .mdc-dialog__container {
              width: 100%;
            }
            .mdc-dialog .mdc-dialog__container .mdc-dialog__surface {
              width:100%;
              box-shadow:none;
            }
          .: |
            :host {
              --mdc-theme-surface: rgba(0,0,0,0);
              --secondary-background-color: rgba(0,0,0,0);
              --ha-card-background: rgba(0,0,0,0);
              --mdc-dialog-scrim-color: rgba(0,0,0,0.8);
              --mdc-dialog-min-height: 100%;
              --mdc-dialog-min-width: 100%;
              --mdc-dialog-max-width: 100%;
            }
            mwc-icon-button {
              color: #FFF;
            }
        title: Fermer
  icon_button:
    aspect_ratio: 4/3
    color_type: icon
    hold_action:
      action: none
    layout: vertical
    show_label: false
    show_name: false
    show_state: false
    styles:
      card:
        - border-radius: 10px
        - border: solid 1px var(--primary-color)
        - box-shadow: none
        - padding: 6px 6px
        - margin: 0px 0px
        - '--paper-card-background-color': rgba(0, 0, 0, 0)
      icon:
        - width: 28px
      name:
        - justify-self: middle
        - align-self: end
        - font-size: 14px
        - padding: 0px 0px
        - color: var(--secondary-text-color)
    tap_action:
      action: call-service
  menu_button:
    aspect_ratio: 4/3
    color_type: icon
    hold_action:
      action: none
    layout: vertical
    show_label: false
    show_name: true
    show_state: false
    styles:
      card:
        - border-radius: 10px
        - border: solid 1px var(--primary-color)
        - box-shadow: none
        - padding: 6px 6px
        - margin: 0px 0px
        - '--paper-card-background-color': rgba(0, 0, 0, 0)
      icon:
        - width: 28px
      name:
        - justify-self: middle
        - align-self: end
        - font-size: 14px
        - padding: 0px 0px
        - color: var(--secondary-text-color)
    tap_action:
      action: call-service
  name_action:
    styles:
      name:
        - display: flex
        - align-items: center
        - justify-content: center
        - margin-top: 0.5px
      card:
        - background: '#FFFFFF10'
        - color: '#9da0a2'
        - border-radius: 0.6em
        - box-shadow: none
        - transition: none
        - width: 100%
        - padding: 1em 1.4em 1em 1.2em
        - font-size: 1.06em
        - font-weight: 500
        - letter-spacing: 0.015em
    style: '#name > ha-icon {width: 1.4em; margin-right: 0.3em; }'

A placer en effet, comme le dit @barto_95 , dans la partie « Editeur de configuration » (RAW), dans les 3 petits points en haut à droite de la page Lovelace.

On a tous été novices. Je le suis encore dans bien des domaines :slight_smile:

Je teste media player.
et voici a quoi j’arrive… pas plus loin !!!

fermer:
Capture d’écran 2021-08-07 à 13.16.29

et ouvert:
Capture d’écran 2021-08-07 à 13.16.40

pas de pochette, et rien pour changer ma playlist.

j’ai oublier de faire quelque chose ??

De ce que je vois, tu as inclus le Media Player dans le groupe Pièces. Je me trompe?

Pourrais-je voir le code de ta carte (bancaire :grin:) ?

L’arborescence doit être une Stack-in-card qui englobe un custom:mini-media-player et des entitites

je n’arrive pas a coller le code.

    toggle_power: false
    type: custom:mini-media-player
  - entities:
      - entities:
          - entity: media_player.sonos
            name: Sonos
          - entity: media_player.alexa_salon
            name: Salon - Alexa
          - entity: media_player.google
            name: Google
          - entity: media_player.firetvstick_van
            name: FireTV
        head: group.group_pieces
        padding: 2
        show_state: false
        type: custom:fold-entity-row
    type: entities
mode: vertical
style:
  .: |
    ha-card {
      border-radius: 20px;
    }
type: custom:stack-in-card

voila la fin
en meme temps, ceci corespond a quoi ?

type: iframe
url: http://192.168.1.90:3689/#/

Concernant la liste des courses, tout est mis en place, mais une fois que je recois le message sur mon smartphone il me met:

Home assistant:
unknown

qu’ai-je oublier en chemin ???

Soucis avec mon sensors ?? car quand je prend l’entity du sensors: inconnu !!!

Sérieusement ? Pour toi il n’y a pas de soucis ?

:sweat_smile:

Si ton entité est inconnu, tu reçois unknown… Donc tout va bien de ce côté :upside_down_face:

Recommence l’intégration du script python pour obtenir la liste de course…

Mon Media Player est un Forked Daapd, hébergé sur mon NAS. Ce iFrame renvoie à la page web de ce Forked. Quel est le tien? (ta source audio)

Essaie peut-être de copier pleinement mon code, puis de modifier avec tes entités? (mais je suppose que tu as fait comme ça)

Soucis avec mon sensors ?? car quand je prend l’entity du sensors: inconnu !!!

Je pense que @Clemalex a raison, il doit te manquer quelque chose au niveau du script, ou du sensor. Je ne pense pas avoir oublié quelque chose à te renseigner…? :thinking:

j’ai trouver mon probleme qui etait un mauvais chemin.
Mais alors maintenant que ca fonctionne, voila ce que me donne le capteur:

Capture d’écran 2021-08-09 à 10.35.15

ca donne pas ce qu’il faut !!

Ce formatage dans l’état du sensor est tout à fait normal (pour ma part, en tout cas)

les « b » sont des balises pour mettre en gras le titre. les « br » sont des retours à la ligne.

Tu as essayé de te l’envoyer sur ton phone (et donc ta montre)?

@Schumi pas de sur-ponctuation :wink:

Elles peuvent être mal interprétées…

Utilise les emojis.

oups, désolé.
pour la liste des courses, oui, j’ai envoyer sur mon gsm et ca donne le meme message, avec les « b » identique au sensor
et de ce que je vois, ce n’est pas un soucis du script, mais plus un soucis du python.

#!/usr/local/bin/python
# coding: utf8
import json

with open('/config/python_scripts/.shopping_list.json') as data_file:
    shoppingListData = json.load(data_file)

content = u"<b>Liste de Courses:</b><br>"
for entry in shoppingListData:
    if not entry['complete']:
        content += u"- %s<br>" % entry['name']

content += u"<br>"

print(content)

resultat sur mon gsm:

Capture d’écran 2021-08-09 à 13.42.23

et voici mon script:

alias: '[Liste de Courses] Envoyer Liste à Schumi'
sequence:
  - data: {}
    service: homeassistant.update_entity
    target:
      entity_id: sensor.liste_de_courses
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: notify.mobile_app_iphone
    data_template:
      data:
        sticky: 'true'
        subject: <b>Liste de Courses</b>
      message: '{{ states(''sensor.liste_de_courses'') }}'
      title: Home Assistant
mode: single