apiMaree sensor

Bonjour,
Quand je fais « + », je n’ai rien qui fait référence à iframe dans les résultats.
Et je n’ai rien trouvé sous HACS non plus.
Tu avais fait quelque chose de particulier avant ?

Bjour! C’est la carte « page web » en fait …

Ça donne ça

1 « J'aime »

Bon, je me suis re-penché dessus, et le résultat ne me satisfait pas (je parle de l’ajout de la caméra).
En fait, chaque code iframe donné correspond à la capture de la minute de vidéo de la plage (de temps) de 10 mn, et elle ne s’actualise pas, car le code du nouvel iframe est différent…

Bonjour,
J’en suis là…
J’ai installé apiMaree via HACS, ajouté dans configuration.yaml :

#integration mareeinfo
sensor:
  - platform: apiMareeInfo
    code: 124
    latitude: 46.7711
    longitude: -2.05306
    scan_interval: 120

Ajouté une entité sur mon tableau de bord ce qui donne en Yaml :

type: entities
entities:
  - sensor.myport_124_mareedujour

Et là je bloque… Ou est ce que je modifie le sensor.myport ?
J’avoue être un peu perdu entre l’intégration via HACS, la notion de Card, le Sensor, l’ajout de code dans configuration.yaml…
Je comprends pas notamment pourquoi j’ai dans :
/custom_components/apiMareeInfo
des fichiers Python et non Yaml
Merci.

Voici ma proposition avec une présentation via Mushroom Template et la mise en place d’un écart pour ajuster l’horaire de la marée par rapport au port le plus proche. 5 minutes pour le mont saint michel par rapport au port de Saint Malo https://www.ot-montsaintmichel.com/marees/ .

2024-01-03 08_59_03-Aperçu – Home Assistant — Mozilla Firefox

type: vertical-stack
title: Marées Mont Saint Michel
cards:
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_52_mareedujour.attributes.next_maree_1 + ':00' %}  {%
      set ecart = 5 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_52_mareedujour.attributes.next_etat_1 %} Prochaine
      marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_52_mareedujour.attributes.next_coeff_1 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_52_mareedujour.attributes.next_etat_1
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_52_mareedujour.attributes.next_etat_1
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_52_mareedujour.attributes.next_coeff_2|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_52_mareedujour.attributes.next_coeff_2|int > 80
      %} red {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_52_mareedujour.attributes.next_maree_2 + ':00' %}  {%
      set ecart = 5 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_52_mareedujour.attributes.next_etat_2 %} Prochaine
      marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_52_mareedujour.attributes.next_coeff_2 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_52_mareedujour.attributes.next_etat_2
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_52_mareedujour.attributes.next_etat_2
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_52_mareedujour.attributes.next_coeff_2|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_52_mareedujour.attributes.next_coeff_2|int > 80
      %} red {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }

Saurais-tu afficher la table des marées sur la durée proposée par l’api (à savoir 4 ou 5 jours?)

type: vertical-stack
cards:
  - type: custom:mushroom-title-card
    title: Marées Saint Pair sur Mer
    card_mod:
      style: |
        ha-card { margin-bottom: -25px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.next_maree_1 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.next_etat_1 %} Prochaine
      marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.next_coeff_1 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.next_etat_1
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.next_etat_1
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.next_coeff_2|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.next_coeff_2|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.next_coeff_2|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.next_coeff_2|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.next_maree_2 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.next_etat_2 %} Prochaine
      marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.next_coeff_2 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.next_etat_2
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.next_etat_2
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.next_coeff_2|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.next_coeff_2|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.next_coeff_2|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.next_coeff_2|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }
  - type: custom:mushroom-title-card
    title: J+1
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_1_0 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.etat_1_0 %} Marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_1_0
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_1_0
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_1_1 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.etat_1_1 %} Marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_1_1
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_1_1
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }    
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_1_2 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.etat_1_2 %} Marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_1_2
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_1_2
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }    
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_1_3 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.etat_1_3 %} Marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_1_3
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_1_3
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }    
  - type: custom:mushroom-title-card
    title: J+2
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_2_0 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.etat_2_0 %} Marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_2_0 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_2_0
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_2_0
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_2_1 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.etat_2_1 %} Marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_2_1 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_2_1
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_2_1
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }    
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_2_2 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.etat_2_2 %} Marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_2_2
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_2_2
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }    
  - type: custom:mushroom-template-card
    primary: >
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_2_3 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %}  {% set Test =
      states.sensor.myport_45_mareedujour.attributes.etat_2_3 %} Marée {% if Test == 'PM' %}
        haute
      {% else%}
        basse 
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M',
      true))}}        
    secondary: >
      Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3 }}
    icon_color: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_2_3
      %}  {% if Test1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: >-
      {% set Test1 = states.sensor.myport_45_mareedujour.attributes.etat_2_3
      %} {% if Test1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 80
      %} mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int >
      100 %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 60 %}
      green {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }    

Voici un exemple. A vérifier si tous est syncho au niveau de chaque template card.

1 « J'aime »

Une horloge marée sur le lien suivant :
Horloge marée

type: vertical-stack
cards:
  - type: custom:mushroom-title-card
    title: Marées du jour à Saint Pair sur mer
    card_mod:
      style: |
        ha-card { margin-bottom: -25px; 
                  border: none;
                }
type: vertical-stack
cards:
  - type: custom:mushroom-title-card
    title: Marées du jour à Saint Pair sur mer
    card_mod:
      style: |
        ha-card { margin-bottom: -25px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_0_0 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_0_0 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_0_0
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_0_0 == 'PM'
      %}  , Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_0_0 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_0_0 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_0_0 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_0_0|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_0_0|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_0_0|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_0_0|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_0_1 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_0_1 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_0_1
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_0_1 == 'PM'
      %}  Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_0_1 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_0_1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_0_1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_0_1|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_0_1|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_0_1|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_0_1|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type: ''
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_0_2 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_0_2 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_0_2
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_0_2 == 'PM'
      %}  , Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_0_2 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_0_2 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_0_2 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_0_2|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_0_2|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_0_2|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_0_2|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_0_3 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_0_3 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_0_3
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_0_3 == 'PM'
      %}  Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_0_3 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_0_3 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_0_3 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_0_3|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_0_3|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_0_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_0_3|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type: ''
    cards: null
  - type: custom:mushroom-title-card
    title: Marées demain à Saint Pair sur mer
    card_mod:
      style: |
        ha-card { margin-bottom: -25px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_1_0 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_1_0 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_1_0
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_1_0 == 'PM'
      %}  , Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_1_0 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_1_0 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_1_0 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_0|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_0|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_0|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_0|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_1_1 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_1_1 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_1_1
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_1_1 == 'PM'
      %}  Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_1_1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_1_1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_1|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type: ''
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_1_2 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_1_2 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_1_2
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_1_2 == 'PM'
      %}  , Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_1_2 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_1_2 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_1_2 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_2|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_2|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_2|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_2|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_1_3 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_1_3 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_1_3
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_1_3 == 'PM'
      %}  Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_1_3 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_1_3 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_1_3|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type: ''
  - type: custom:mushroom-title-card
    title: Marées dans deux jours à Saint Pair sur mer
    card_mod:
      style: |
        ha-card { margin-bottom: -25px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_2_0 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_2_0 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_2_0
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_2_0 == 'PM'
      %}  , Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_2_0 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_2_0 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_2_0 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_0|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_0|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_0|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_0|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_2_1 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_2_1 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_2_1
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_2_1 == 'PM'
      %}  Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_2_1 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_2_1 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_2_1 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_1|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type: ''
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_2_2 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_2_2 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_2_2
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_2_2 == 'PM'
      %}  , Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_2_2 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_2_2 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_2_2 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_2|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_2|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_2|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_2|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_2_3 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_2_3 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_2_3
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_2_3 == 'PM'
      %}  Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_2_3 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_2_3 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_2_3|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type: ''
    cards: null
  - type: custom:mushroom-title-card
    title: Marées dans 3 jours à Saint Pair sur mer
    card_mod:
      style: |
        ha-card { margin-bottom: -25px; 
                  border: none;
                }
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_3_0 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_3_0 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_3_0
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_3_0 == 'PM'
      %}  , Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_3_0 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_3_0 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_3_0 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_3_0|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_3_0|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_3_0|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_3_0|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_3_3 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_3_3 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_3_3
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_3_3 == 'PM'
      %}  Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_3_3 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_3_3 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_3_3 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_3_3|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_3_3|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_3_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_3_3|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type: ''
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_3_2 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_3_2 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_3_2
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_3_2 == 'PM'
      %}  , Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_3_2 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_3_2 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_3_2 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_3_2|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_3_2|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_3_2|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_3_2|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type
  - type: custom:mushroom-template-card
    primary: >-
      {% set ma_chaine =
      states.sensor.myport_45_mareedujour.attributes.horaire_3_3 + ':00' %}  {%
      set ecart = 0 %}  {% set heure_objet = strptime(ma_chaine, '%H:%M:%S') %} 
      {% set nouvelle_heure = heure_objet + timedelta(minutes=ecart) %}  {% set
      affichage_heure = as_timestamp(nouvelle_heure, "%H:%M") %} Marée {% if
      states.sensor.myport_45_mareedujour.attributes.etat_3_3 == 'PM' %}
        haute  
      {% else%}
        basse           
      {% endif %} à {{ (affichage_heure|timestamp_custom('%H:%M', true))}}
    secondary: >-
      Hauteur : {{ states.sensor.myport_45_mareedujour.attributes.hauteur_3_3
      }}m {% if states.sensor.myport_45_mareedujour.attributes.etat_3_3 == 'PM'
      %}  Coefficient : {{
      states.sensor.myport_45_mareedujour.attributes.coeff_3_3 }}             {%
      endif %}
    icon_color: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_3_3 == 'PM' %}
        blue
      {% else%}
        green
      {% endif %}
    icon: |-
      {% if states.sensor.myport_45_mareedujour.attributes.etat_3_3 == 'PM' %}
        mdi:wave-arrow-up
      {% else%}
        mdi:wave-arrow-down
      {% endif %}
    badge_icon: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_3_3|int > 80 %}
      mdi:alert {% endif %}
    badge_color: >-
      {% if states.sensor.myport_45_mareedujour.attributes.coeff_3_3|int > 100
      %} red  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_3_3|int > 80 %}
      orange  {% elif
      states.sensor.myport_45_mareedujour.attributes.coeff_3_3|int > 60 %} green
      {% endif %}
    card_mod:
      style: |
        ha-card { margin-bottom: -10px; 
                  border: none;
                }type: ''

Version avec les 5 jours et les hauteurs d’eau

1 « J'aime »

Salut,

Merci pour cette intégration. J’ai passé un peu de temps pour l’intégrer comme je le souhaitais :blush:
Voici ma contribution, c’est surement perfectible, j’ai bien galéré pour afficher les jours en francais et les dates et comprendre cette carte Markdown à base de html…

Cards
type: markdown
content: >-
  <p class="box1">Température  eau : <font
  color="skyblue"><b>{{state_attr('sensor.myport_52_mareedujour','prevision')[0]['teau']}}°C</b></font>
  <br class="box2">Vent : <font color=#F1948A><b>
  {{state_attr('sensor.myport_52_mareedujour','prevision')[0]['forcevnds']}}nds - 
  {{state_attr('sensor.myport_52_mareedujour','prevision')[0]['rafvnds']}}nds / 
  {{state_attr('sensor.myport_52_mareedujour','prevision')[0]['dirvdegres']}}°</b></font>

  <div class="tg-wrap"><table width=100%">

  <thead>
    <tr>
      <td><b><font color="skyblue">Date</b></td>
      <td><b><font color="skyblue">Heure</b></td>
      <td><b><font color="skyblue">Hauteur</b></td>
      <td><b><font color="skyblue">Coeff</b></td>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_0_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_0_0}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_0_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_0_0}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_0_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_0_0}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi'][now().weekday()+0]}}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_0_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_0_1}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_0_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_0_1}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_0_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_0_1}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{ (now() + timedelta(days=0)).strftime('%d/%m') }}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_0_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_0_2}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_0_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_0_2}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_0_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_0_2}}{%endif%}</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_0_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_0_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_0_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_0_3}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_0_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_0_3}}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_1_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_1_0}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_1_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_1_0}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_1_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_1_0}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi'][now().weekday()+1]}}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_1_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_1_1}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_1_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_1_1}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_1_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_1_1}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{ (now() + timedelta(days=1)).strftime('%d/%m') }}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_1_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_1_2}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_1_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_1_2}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_1_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_1_2}}{%endif%}</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_1_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_1_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_1_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_1_3}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_1_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_1_3}}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_2_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_2_0}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_2_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_2_0}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_2_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_2_0}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi'][now().weekday()+2]}}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_2_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_2_1}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_2_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_2_1}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_2_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_2_1}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{ (now() + timedelta(days=2)).strftime('%d/%m') }}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_2_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_2_2}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_2_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_2_2}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_2_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_2_2}}{%endif%}</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_2_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_2_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_2_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_2_3}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_2_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_2_3}}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
        <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_3_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_3_0}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_3_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_3_0}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_3_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_3_0}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi'][now().weekday()+3]}}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_3_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_3_1}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_3_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_3_1}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_3_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_3_1}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{ (now() + timedelta(days=3)).strftime('%d/%m') }}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_3_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_3_2}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_3_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_3_2}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_3_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_3_2}}{%endif%}</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_3_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_3_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_3_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_3_3}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_3_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_3_3}}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_4_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_4_0}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_4_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_4_0}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_4_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_4_0}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi'][now().weekday()+4]}}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_4_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_4_1}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_4_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_4_1}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_4_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_4_1}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{ (now() + timedelta(days=4)).strftime('%d/%m') }}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_4_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_4_2}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_4_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_4_2}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_4_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_4_2}}{%endif%}</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_4_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_4_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_4_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_4_3}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_4_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_4_3}}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_5_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_5_0}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_5_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_5_0}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_5_0') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_5_0}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi'][now().weekday()+5]}}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_5_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_5_1}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_5_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_5_1}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_5_1') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_5_1}}{%endif%}</td>
    </tr>
    <tr>
      <td>{{ (now() + timedelta(days=5)).strftime('%d/%m') }}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_5_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_5_2}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_5_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_5_2}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_5_2') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_5_2}}{%endif%}</td>
    </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'horaire_5_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.horaire_5_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_52_mareedujour', 'hauteur_5_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.hauteur_5_3}}m{%endif%}</td>
      <td><font color="#F4D03F">{% if state_attr('sensor.myport_52_mareedujour', 'coeff_5_3') == none %}--{% else%}{{states.sensor.myport_52_mareedujour.attributes.coeff_5_3}}{%endif%}</td>
    </tr>
  </tbody>

  </table>

  </div>
title: Marée Saint Malo


3 « J'aime »

image

Voici une proposition de sensor en % permettant de localiser l’aiguille d’horloge de marée dans une card de type canvas-gauge-card. dont le Yaml sera le suivant :

type: custom:canvas-gauge-card
entity: sensor.tide_pos
card_height: 150
gauge:
  animation: true
  type: radial-gauge
  title: Marée Port-Louis
  width: 220
  height: 150
  borderShadowWidth: 0
  borderOuterWidth: 0
  borderMiddleWidth: 0
  borderInnerWidth: 0
  minValue: 0
  maxValue: 100
  startAngle: 180
  ticksAngle: 360
  valueBox: false
  majorTicks:
    - Haute
    - 1/5
    - 2/4
    - Descendante
    - 4/2
    - 5/1
    - Basse
    - 1/5
    - 2/4
    - Montante
    - 4/2
    - 5/1
    - Haute
  minorTicks: 2
  strokeTicks: true
  borders: true
  highlights: []
  colorNeedle: rgb(0,255,0)
  useMinPath: true

Ici le sensor:

- name: "tide_pos"
  unit_of_measurement: "%"
  state: >-
    {# requete date courante #}  
    {% set date_courante = as_timestamp(states.sensor.myport_97_mareedujour.attributes.dateCourante) %}
    
    {# requete marée du jour #} 
    {% set heure_maree_1 = states.sensor.myport_97_mareedujour.attributes.horaire_0_0 %}
    {% set heure_maree_1_complete = heure_maree_1 + ":00" %}
    {% set heure_maree_1_objet = strptime(heure_maree_1_complete, '%H:%M:%S') %}
    {% set maree_1 = date_courante + heure_maree_1_objet.hour * 3600 + heure_maree_1_objet.minute * 60 + heure_maree_1_objet.second %}

    {% set heure_maree_2 = states.sensor.myport_97_mareedujour.attributes.horaire_0_1 %}
    {% set heure_maree_2_complete = heure_maree_2 + ":00" %}
    {% set heure_maree_2_objet = strptime(heure_maree_2_complete, '%H:%M:%S') %}
    {% set maree_2 = date_courante + heure_maree_2_objet.hour * 3600 + heure_maree_2_objet.minute * 60 + heure_maree_2_objet.second %}

    {% set heure_maree_3 = states.sensor.myport_97_mareedujour.attributes.horaire_0_2 %}
    {% set heure_maree_3_complete = heure_maree_3 + ":00" %}
    {% set heure_maree_3_objet = strptime(heure_maree_3_complete, '%H:%M:%S') %}
    {% set maree_3 = date_courante + heure_maree_3_objet.hour * 3600 + heure_maree_3_objet.minute * 60 + heure_maree_3_objet.second %}

    {% if (states.sensor.myport_97_mareedujour.attributes.nb_maree_0) == 4 %}
    {% set heure_maree_4 = states.sensor.myport_97_mareedujour.attributes.horaire_0_3 %}
    {% set heure_maree_4_complete = heure_maree_4 + ":00" %}
    {% set heure_maree_4_objet = strptime(heure_maree_4_complete, '%H:%M:%S') %}
    {% set maree_4 = date_courante + heure_maree_4_objet.hour * 3600 + heure_maree_4_objet.minute * 60 + heure_maree_4_objet.second %}
    {%endif %} 

    {% set heure_maree_1J2 = states.sensor.myport_97_mareedujour.attributes.horaire_1_0 %}
    {% set heure_maree_1J2_complete = heure_maree_1J2 + ":00" %}
    {% set heure_maree_1J2_objet = strptime(heure_maree_1J2_complete, '%H:%M:%S') %}
    {% set maree_1J2 = date_courante + (24+heure_maree_1J2_objet.hour) * 3600 + heure_maree_1J2_objet.minute * 60 + heure_maree_1J2_objet.second %}

    {# Requete état prochaine marée #}
    {% if (states.sensor.myport_97_mareedujour.attributes.next_etat_1) == "PM" %} 
    {% set rab=50 %}
    {% else %}
    {% set rab=0 %}
    {% endif %}

    {# Si heure actuelle anterieure à la première heure de marée #}
    {% if as_timestamp(now())<=maree_1 %}
    {{ rab+50 - (50*(maree_1-as_timestamp(now()))/(maree_2 - maree_1))| int }}
    {% endif %} 

    {# Si heure actuelle entre les deux premier horaires du jour #}
    {% if as_timestamp(now())>maree_1 and as_timestamp(now())<maree_2 %}
    {{ rab + (50*(as_timestamp(now())-maree_1)/(maree_2 - maree_1))| int }}
    {% endif %} 

    {# Si heure actuelle entre deuxième et troisième horaires du jour #}
    {% if as_timestamp(now())>maree_2 and as_timestamp(now())<maree_3 %}
    {{ rab + (50*(as_timestamp(now())-maree_2)/(maree_3 - maree_2))| int }}
    {% endif %}

    {# Si 4 marees dans la journée #}
    {% if (states.sensor.myport_97_mareedujour.attributes.nb_maree_0) == 4 %}

    {# Si heure actuelle entre troisième et quatrième horaires du jour #}
    {% if as_timestamp(now())>maree_3 and as_timestamp(now())<maree_4 %}
    {{ rab + (50*(as_timestamp(now())-maree_3)/(maree_4 - maree_3))| int }}
    {% endif %} 

    {# Si heure actuelle entre quatrième du jour et premier du lendemain #}
    {% if as_timestamp(now())>maree_4 %}
    {{ rab + (50*(as_timestamp(now())-maree_4)/(maree_1J2- maree_4)) | int }}
    {% endif %} 

    {%else%}

    {# Si heure actuelle entre troisième du jour et premier du lendemain #}
    {% if as_timestamp(now())>maree_3 %}
    {{ rab + (50*(as_timestamp(now())-maree_3)/(maree_1J2- maree_3)) | int }}
    {% endif %} 

    {% endif %}

          

1 « J'aime »

Intéressant, mais en l’état ça ne fonctionne pas chez moi, il doit manquer un truc

oui effectivement
mais il y a cette mention sur le GitHub de la carte canvas-gauge-card :
‹ This card is basically deprecated and do not expect maintainence ›

Avec les cartes, il faut aussi gérer le cas des 3 marées par jour avec des valeurs qui n’existe pas x/3.
D’où mes tests sur ces valeurs.

Bonjour à tous, je suis débutant dans home assistant et je ne parviens pas à obtenir les entités liées au sensor, pourtant j’ai bien entré le sensor dans ma config yaml et mon editeur est bien au vert. J’ai relancé la config, j’ai essayé avec la clé stormio, mais rien n’y fait!
je dois oublier une étape… Un peu d’aide svp!
merci

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

# Text to speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

#api marée
sensor:
  - platform: apiMareeInfo
    code: 141
    latitude: 43.3870763
    longitude: -1.6635695
    scan_interval: 120
    
api: 
alexa: 
  smart_home:
  
http:
  use_x_forwarded_for: true
  trusted_proxies:

Salut,

Regarde les messages dans les logs …


il faut voir avec @saniho si c’est pareil chez toi

oui en effet!
ma config est HASSO 2024.2.4
merci je vais le contacter

Je n’ai plus de données provenant de l’API… Suis-je le seul?

… c’est désormais résolu… ça a duré 1 journée. Si quelqu’un a une explication …

la version 1.1.5 devrait régler le probleme, si tu peux me le confirmer