Retourner un entier

Bonjour,

Mon problème

J’ai un panneau solaire avec un micro onduleur appsystem. J’utilise k’intégration HA pour retrouver la production sur un panneau.
La nuit, ou quand il produit pas, au lieu de retourner 0, il retourne 'Not Available"… et ca pete mon beau Dashboard.

J’imaginais créer une entité custom avec une condition de ce style:

{% if ( is_number(states('sensor.solar_total_power'))) %}
is a number
{% else %}
{% set states('sensor.solar_total_power') %} {{ float('0') }}
{% endif %}

Mais j’ai le droit a un TemplateSyntaxError: expected token 'end of statement block', got '(' Ou est ce que je coince ?

Merci

et si tu fais un !is_number() (ou is_number()=false) plutôt que de faire un if qui tombe dans le vide suivit d’un else, ça donne quoi ?

Hello,

quelque chose comme ça ?

sensor:

  #########################################################
  # indisponibilité solaire (nuit)
  #########################################################

  - platform: template
    sensors:
      etat_solaire:
        friendly_name: État solaire
        value_template: >-
            {% if is_state("sensor.apsystems_apsystem_1_total_power", "unavailable") -%}
              0 W
            {%- else -%}
              {{ states("sensor.apsystems_apsystem_1_total_power") }} W
            {%- endif %}
1 « J'aime »

Merci pour vos retours.
Je garde sous le coude, je suis passé pour le moment via une automatisation ui sur le papier… devrait faire ce dont j’ai besoin:

alias: Indisponibilité solaire
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.solar_total_power
    to: unavailable
conditions: []
actions:
  - action: number.set_value
    metadata: {}
    data:
      value: "0"
    target:
      entity_id: sensor.solar_total_power
mode: single

Sinon sans automatisation intermédiaire il me semblebqu’il y a :

sensor.solar_total_power | float(0)

2 « J'aime »

Salut

Avec le states() c’est la technique la plus rapide, et avec un int à la place du float
states('sensor.solar_total_power')|int(0)

3 « J'aime »

Hello, merci pour l’astuce, c’est adopté :wink:

1 « J'aime »