apiMaree sensor

Bonjour,
navré de vous embêter avec les intégrations.
en effet Jai bien intégrer via HACS.
mais quand j’essaye de de créer le sensor dans sensor.yaml

  • platform: template
    sensors:
    sens_puissance_instannee:
    unit_of_measurement: « kW »
    value_template: >
    {% if states(‹ sensor.mode_de_consommation ›) == « FORWARD » %}
    {{ (states(‹ sensor.puissance_instanee ›)|float) }}
    {% else %}
    {{ (states(‹ sensor.puissance_instanee ›)|float * -1) }}
    {% endif %}

  • platform: apiMareeInfo
    code: 141
    latitude: 43.3870763
    longitude: -1.6635695
    scan_interval: 120

j’ai un message d’erreur « bad indentation of a mapping entry (14:9) »
Merci pour votre aide

peux-tu copier ton yaml en mode text preformé pour qu’il conserve la mise en page d’origine ?

Merci pour ce retour j’ai bien reussi ajouté le sensor marrée.

Maintenant reste a mettre le sensor % pour le visuel

tide_pos:
      unit_of_measurement: "%"
      value_template: >-
        {# 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 %}

Le sensor est bien créé mais marqué indponible

Il faut bien que tu penses à remplacer le chiffre 97 (présent de nombreuse fois dans le code) par le chiffre de ton lieu.

au top tout fonctionne !!!

A partir du boulot de Jeffodilo, voici une version avec de la couleur pour les coefs de marée …

type: markdown
content: >-
<p class="box1">Température  eau : <font color="skyblue"><b>{{state_attr('sensor.myport_97_mareedujour','prevision')[0]['teau']}}°C</b></font> <br class="box2">Vent : <font color=#F1948A><b> {{state_attr('sensor.myport_97_mareedujour','prevision')[0]['forcevnds']}}nds -  {{state_attr('sensor.myport_97_mareedujour','prevision')[0]['rafvnds']}}nds /  {{state_attr('sensor.myport_97_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>{{states.sensor.myport_97_mareedujour.attributes.horaire_0_0}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_0_0}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_0_0') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_0_0) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_0) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_0) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_0) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_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>{{states.sensor.myport_97_mareedujour.attributes.horaire_0_1}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_0_1}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_0_1') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_0_1) > 105 %}<font color="red">
        {% elif  int(states.sensor.myport_97_mareedujour.attributes.coeff_0_1) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_1) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_1) > 35 %}<font color="green">
        {% else %}<font color="skyblue"> {% endif %} {{ states.sensor.myport_97_mareedujour.attributes.coeff_0_1 }}
        {% endif %}</td>
      </tr>
    <tr>
      <td>{{ (now() + timedelta(days=0)).strftime('%d/%m') }}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_0_2}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_0_2}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_0_2') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_0_2) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_2) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_2) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_2) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_0_2 }}
      {% endif %}</td>
      </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'horaire_0_3') ==none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.horaire_0_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'hauteur_0_3') ==none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.hauteur_0_3}}m{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_0_3') !=none %}
      {% if state_attr('sensor.myport_97_mareedujour', 'coeff_0_3')!="" %}{% if int(states.sensor.myport_97_mareedujour.attributes.coeff_0_3) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_3) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_3) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_0_3) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_0_3 }}
      {% endif %}{% endif %}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
    <tr>
      <td></td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_1_0}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_1_0}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_1_0') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_1_0) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_0) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_0) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_0) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_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>{{states.sensor.myport_97_mareedujour.attributes.horaire_1_1}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_1_1}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_1_1') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_1_1) > 105 %}<font color="red">
        {% elif  int(states.sensor.myport_97_mareedujour.attributes.coeff_1_1) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_1) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_1) > 35 %}<font color="green">
        {% else %}<font color="skyblue"> {% endif %} {{ states.sensor.myport_97_mareedujour.attributes.coeff_1_1 }}
        {% endif %}</td>
      </tr>
    <tr>
      <td>{{ (now() + timedelta(days=1)).strftime('%d/%m') }}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_1_2}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_1_2}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_1_2') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_1_2) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_2) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_2) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_2) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_1_2 }}
      {% endif %}</td>
      </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'horaire_1_3') ==none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.horaire_1_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'hauteur_1_3') ==none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.hauteur_1_3}}m{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_1_3') !=none %}
      {% if state_attr('sensor.myport_97_mareedujour', 'coeff_1_3')!="" %}{% if int(states.sensor.myport_97_mareedujour.attributes.coeff_1_3) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_3) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_3) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_1_3) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_1_3 }}
      {% endif %}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
    <tr>
      <td></td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_2_0}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_2_0}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_2_0') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_2_0) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_0) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_0) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_0) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_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>{{states.sensor.myport_97_mareedujour.attributes.horaire_2_1}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_2_1}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_2_1') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_2_1) > 105 %}<font color="red">
        {% elif  int(states.sensor.myport_97_mareedujour.attributes.coeff_2_1) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_1) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_1) > 35 %}<font color="green">
        {% else %}<font color="skyblue"> {% endif %} {{ states.sensor.myport_97_mareedujour.attributes.coeff_2_1 }}
        {% endif %}</td>
      </tr>
    <tr>
      <td>{{ (now() + timedelta(days=2)).strftime('%d/%m') }}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_2_2}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_2_2}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_2_2') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_2_2) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_2) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_2) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_2) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_2_2 }}
      {% endif %}</td>
      </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'horaire_2_3') ==none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.horaire_2_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'hauteur_2_3') ==none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.hauteur_2_3}}m{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_2_3') !=none %}
      {% if state_attr('sensor.myport_97_mareedujour', 'coeff_2_3')!="" %}{% if int(states.sensor.myport_97_mareedujour.attributes.coeff_2_3) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_3) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_3) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_2_3) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_2_3 }}
      {% endif %}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
    <tr>
      <td></td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_3_0}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_3_0}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_3_0') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_3_0) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_0) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_0) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_0) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_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>{{states.sensor.myport_97_mareedujour.attributes.horaire_3_1}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_3_1}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_3_1') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_3_1) > 105 %}<font color="red">
        {% elif  int(states.sensor.myport_97_mareedujour.attributes.coeff_3_1) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_1) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_1) > 35 %}<font color="green">
        {% else %}<font color="skyblue"> {% endif %} {{ states.sensor.myport_97_mareedujour.attributes.coeff_3_1 }}
        {% endif %}</td>
      </tr>
    <tr>
      <td>{{ (now() + timedelta(days=3)).strftime('%d/%m') }}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_3_2}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_3_2}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_3_2') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_3_2) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_2) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_2) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_2) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_3_2 }}
      {% endif %}</td>
      </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'horaire_3_3') ==none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.horaire_3_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'hauteur_3_3') ==none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.hauteur_3_3}}m{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_3_3') !=none %}
      {% if state_attr('sensor.myport_97_mareedujour', 'coeff_3_3')!="" %}{% if int(states.sensor.myport_97_mareedujour.attributes.coeff_3_3) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_3) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_3) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_3_3) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_3_3 }}
      {% endif %}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
    <tr>
      <td></td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_4_0}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_4_0}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_4_0') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_4_0) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_0) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_0) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_0) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_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>{{states.sensor.myport_97_mareedujour.attributes.horaire_4_1}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_4_1}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_4_1') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_4_1) > 105 %}<font color="red">
        {% elif  int(states.sensor.myport_97_mareedujour.attributes.coeff_4_1) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_1) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_1) > 35 %}<font color="green">
        {% else %}<font color="skyblue"> {% endif %} {{ states.sensor.myport_97_mareedujour.attributes.coeff_4_1 }}
        {% endif %}</td>
      </tr>
    <tr>
      <td>{{ (now() + timedelta(days=4)).strftime('%d/%m') }}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_4_2}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_4_2}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_4_2') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_4_2) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_2) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_2) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_2) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_4_2 }}
      {% endif %}</td>
      </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'horaire_4_3') == none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.horaire_4_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'hauteur_4_3') == none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.hauteur_4_3}}m{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_4_3') != none%} 
          {% if state_attr('sensor.myport_97_mareedujour', 'coeff_4_3') !="" %}{% if int(states.sensor.myport_97_mareedujour.attributes.coeff_4_3) > 105 %}<font color="red">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_3) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_3) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_4_3) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_4_3 }}
      {% endif %}{%endif%}</td>
    </tr>
    <tr>
      <td>--------------</td>
      <td>---------</td>
      <td>------------</td>
      <td>----</td>
    </tr>
    <tr>
      <td></td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_5_0}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_5_0}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_5_0') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_5_0) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_0) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_0) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_0) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_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>{{states.sensor.myport_97_mareedujour.attributes.horaire_5_1}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_5_1}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_5_1') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_5_1) > 105 %}<font color="red">
        {% elif  int(states.sensor.myport_97_mareedujour.attributes.coeff_5_1) > 95 %}<font color="orange">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_1) > 45 %}<font color="yellow">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_1) > 35 %}<font color="green">
        {% else %}<font color="skyblue"> {% endif %} {{ states.sensor.myport_97_mareedujour.attributes.coeff_5_1 }}
        {% endif %}</td>
      </tr>
    <tr>
      <td>{{ (now() + timedelta(days=5)).strftime('%d/%m') }}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.horaire_5_2}}</td>
      <td>{{states.sensor.myport_97_mareedujour.attributes.hauteur_5_2}}m</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_5_2') !="" %}
        {% if int(states.sensor.myport_97_mareedujour.attributes.coeff_5_2) > 105 %}<font color="red">
        {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_2) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_2) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_2) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_5_2 }}
      {% endif %}</td>
      </tr>
    <tr>
      <td></td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'horaire_5_3') == none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.horaire_5_3}}{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'hauteur_5_3') == none %}--{% else%}{{states.sensor.myport_97_mareedujour.attributes.hauteur_5_3}}m{%endif%}</td>
      <td>{% if state_attr('sensor.myport_97_mareedujour', 'coeff_5_3') != none%} 
          {% if state_attr('sensor.myport_97_mareedujour', 'coeff_5_3') !="" %}{% if int(states.sensor.myport_97_mareedujour.attributes.coeff_5_3) > 105 %}<font color="red">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_3) > 95 %}<font color="orange">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_3) > 45 %}<font color="yellow">
          {% elif int(states.sensor.myport_97_mareedujour.attributes.coeff_5_3) > 35 %}<font color="green">
        {% else %}<font color="skyblue">{% endif %}  {{ states.sensor.myport_97_mareedujour.attributes.coeff_5_3 }}
      {% endif %}{%endif%}</td>
    </tr>   
  </tbody>
  </table>
  </div>
title: Marée Port-Louis



Quelqu’un aurait une piste pour faire ça?:
image

1 « J'aime »

Hello,
Je pense que tu peux utiliser le sensor des pourcentage de marrée déjà créé plus haut et juste le rapport sur un graphique ?

Cela ne tiendra pas compte du caractère sinusoïdal de la courbe. on aura un graphe en dents de scie.

bonsoir, si je code à true showNextMaree et showEtatNextMaree, j’ai un décalge dans l’affichage

un autre point, si vous retouchez au script, peut-on mettre les unités % m, s.
Merci pour le boulot !

Bonjour à tous, Je me lance dans la Domotique et je travaille sur HA depuis 3 jours. J’ai essayé d’intégrer les éléments présentées. D’ailleurs, merci à @saniho, @locmou, @Pulpy-Luke et @Laurent92160 pour le temps qu’ils pris pour ce poste qui m’a vraiment aidé. J’ai bien installé tous les éléments comme indiqué et dans le sens demandé. J’ai bien le bon sensor avec mon port. Mais je n’ai aucune donnée qui remonte dans ce dernier. Voyez vous le même type de problème chez vous ? Merci :pray:

Si tu reprends à partir du début de la présente discussion, tu devrais trouver quelle « brique » manque à ta config.

@locmou, merci pour ta réponse. cela fait 4 fois ce soir que j’installe et désinstalle mais rien n’y fait.
Ma configuration :
- platform: apiMareeInfo
code: 57
latitude: 48.5666667
longitude: -2.6833333333333336
scan_interval: 120

et j’ai bien intégré le git :


et je n’ai aucun attribut à mon sensor :

Je sèche. Merci d’avance.

Je viens de faire le test…


Les infos sont pas encore là, mais au moins l’installation est OK.

  • Installation depuis HACS.
  • Restart de HA.
  • Ajout de ta config.
  • Restart de HA.

Dans tous les cas, il doit y avoir des infos dans les logs, au moins pour les erreurs avec du code que HA ne comprends pas

Merci @Pulpy-Luke , je retente demain, mais j’ai bien fait ces actions. et je ne vois rien dans le logs. je vais me poser et revoir demain.

Bonjour,

Pour info je rencontre le même problème depuis une quizaine de jour.
L’intégration fonctionnait correctement puis plus rien…
Aucune info ne remonte.

J’ai ouvert une issue sur le github avec les logs:
https://github.com/saniho/apiMareeInfo/issues/32

Les logs que j’ai:

Le message d'alerte dans les logs HA:
`Enregistreur: homeassistant.helpers.entity
Source: helpers/entity.py:942
S'est produit pour la première fois: 00:06:42 (1 occurrences)
Dernier enregistrement: 00:06:42

Update for sensor.myport_124_mareedujour fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 942, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1302, in async_device_update
await hass.async_add_executor_job(self.update)
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/util/init.py", line 184, in wrapper
result = method(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/apiMareeInfo/sensor.py", line 146, in _update
self._myPort.update()
File "/config/custom_components/apiMareeInfo/sensor.py", line 67, in update
self._myMaree.getinformationport(origine=self._origine)
File "/config/custom_components/apiMareeInfo/apiMareeInfo.py", line 150, in getinformationport
if len( jsondata["contenu"]["marees"]) == 0:
~~~~~~~~^^^^^^^^^^^
KeyError: 'contenu'

Bon du coup j’ai testé de nouveau en mettant une autre plage et là j’ai eu des infos…

Du coup j’ai testé avec la plage que je voulais initiallement en modifiant les coordonnées GPS initiallement utilisées et ça fonctionne à nouveau

Affaire classée…

Bonjour @Antoine1, je viens de faire comme tu l’as indiqué et j’ai repris le point de @saniho. Pour ce port, j’ai des données qui remontent. Mais quand je remets mon port, ou celui à proximité, je n’en ai plus.
Merci en tout cas pour vos indications, @Pulpy-Luke et @Antoine1. Je n’y comprend rien

Essaye peut-être en prenant les coordonnées de ce site (bien sûr en cherchant ton propre lieu…)

https://marine.meteoconsult.fr/meteo-marine/horaires-des-marees/le-crotoy-903/aout-2024

Sinon, pour moi ça a fonctionné en prenant sur Maps le lieu indiqué comme étant la plage:
image

Bonsoir, Ça n’a pas marché, j’ai pris le port d’à coté et là ça marche. J’ai 10mn d’écart mais ce n’est pas grave. Merci à tous pour votre contribution.

Bonjour,
Il n’y a rien de plus frustrant de voir tout le monde arriver à faire cette intégration et moi, non !
Je dois passer à côté d’une connerie et je ne trouve pas. Un peu d’aide ne serait pas de refus.

Dans l’ordre voila ce que j’ai fait.
Sous HACS:
Installation de « apiMareeInfo sensor » version 1.1.5
Installation de « ContentCardmaree » version 1.0.0.5
Reboot de HA.

Ensuite j’édite le fichier homeAssistant/configuration.yaml et j’ajoute les lignes apiMareeInfo, le code du port 153 (la cotiniere à Oleron) ainsi que ses coordonnées GPS (provenant de googleMaps).
Voici la capture de mon fichier.

image

Reboot de HA
Sous Entity, je recupere ApiMareeInfo Sensor et Content Card Maree. Tout deux, indique qu’ils sont (a jour) depuis 10mn (après le reboot) et je n’ai rien de plus.
Il me manque le sensor: (sensor_myport153_mareedujour).

Il me manque quoi ?
merci de votre retour.