Ajout d'une 'une lumière via light template

Bonjour,

J’ai une lumière connecté en wifi (custom, arduino) que je peux contrôler par API.
J’ai créé des shell_command pour requêter dessus pur le ON/OFF/Status et un template light pour pouvoir l’activer ou la désactiver, mais j’ai un problème pour l’état.

veilleuse_on: 'curl -sq -X PUT -H "Accept: application/json" http://th1.local/api/relay/0 --data "apikey=E286CF4B4159E33D&value=1" | jq .'
veilleuse_off: 'curl -sq -X PUT -H "Accept: application/json" http://th1.local/api/relay/0 --data "apikey=E286CF4B4159E33D&value=0" | jq .'
veilleuse_state: 'curl -sq -X PUT -H "Accept: application/json" http://th1.local/api/relay/0 --data "apikey=E286CF4B4159E33D" | jq ".relay0"'

la commande d’état renvoi 0 ou 1.

- platform: template
  lights:
    veilleuse:
      friendly_name: "Veilleuse"
      unique_id: veilleuse
      turn_on:
        service: shell_command.veilleuse_on
      turn_off:
        service: shell_command.veilleuse_off
      value_template: >-
        {% if shell_command.veilleuse_status == 0 %}
          false
        {% elif shell_command.veilleuse_status == 1 %}
          true
        {% endif %}

Lorsque j’active la veilleuse, l’état passe « On » quelques secondes puis repasse « Off ». La veilleuse reste allumée par contre.

Je n’arrive pas a debug ce problème. Avez vous une idée plz ?

Salut,

C’est un bug connu : les doigts sont trop gros

1 « J'aime »

ahhhhhh :rofl: :rofl: :rofl: :rofl:

Merci. Par contre je pense que je ne m’y prends pas bie:

2023-03-14 19:15:47.360 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: 'shell_command' is undefined when rendering '{% if shell_command.veilleuse_state == 0 %}
  false
{% elif shell_command.veilleuse_state == 1 %}
  true
{% endif %}'

Je ne dois pas avoir la bonne syntaxe pour exécuter la commande depuis le template.

Intuitivement je serai passer par une commande rest pour avoir une vraie entité (et donc son état).
Là je suis pas sur que le status se lance réellement

Ah oui mais en fait ça ne marche pas avec le module REST du fait que l’url prend en data autre chose que du json:

apikey=E286CF4B4159E33D&value=1

Mais là encore je m’y suis certainement mal pris :cry:

ça c’est pas correct ?

rest_command:
  veilleuse_state:
    url: 'http://th1.local/api/relay/0'
    method: 'POST'
    content_type: 'application/json'
    payload: 'apikey=E286CF4B4159E33D'

non j’ai des 403. Il ne trouve pas l’apikey …