Déclencher requête HTTP après appui bouton via RESTful

En fait, ça se fait tout seul :smiley:

J’ai rajouté ça dans le light template :

        set_level:
          service: rest_command.pergola_light
          data:
            pwm: '{{ brightness }}'

Et j’ai activé l’option brightness dans la card.

J’ai le slider qui s’affiche et il travaille bien sur la plage 0-100 et pour autant quand je mets le slider à 100, mes LEDs sont bien à 100% et donc à 255 en valeur PWM.

Donc, c’est tout bon.

2 « J'aime »

Bonjour,

ma commande pour bouger mes lames ne fonctionne pas. As-tu la même que moi ?[Texte préformaté](http://192.168.xxx.xxx/zns.cgi?cmd=m&m=)

Je m’auto répond: il manque des infos sur ma ligne voici ma réponse pour les lames

http://192.168.xxx.xxx/zns.cgi?cmd=m&m=1&p=500

Je n’ai pas encore joué avec les lames pour l’instant, il va falloir que je m’y penche

Pour le coup je vais partager mon travail, il n’est pas parfait et, demande à être optimiser, mais ça fonctionne.

J’ai fait le choix, mais aussi parce que je n’arrive pas à créer des sliders pour la lumière et les mouvements des lames, de faire des boutons par pourcentage.

les sensors

sensor:
  - platform: rest
    resource: "http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os"
    name: light_sensor_pergola_white
    unique_id: binary_sensor.light_pergola_white
    scan_interval: 30
    value_template: "{{ value_json['root']['gpo6'].split(';')[0] }}"

  - platform: rest
    resource: "192.168.xxx.xxx/zns.cgi?cmd=d&p=os"
    name: sensor_pergola_elevation
    unique_id: binary_sensor.sensor_pergola_elevation
    scan_interval: 60
    value_template: "{{ value_json['root']['s_elev'].split(';')[0] }}"

  - platform: rest
    resource: "192.168.xxx.xxx/zns.cgi?cmd=d&p=os"
    name: sensor_pergola_azimuth
    unique_id: binary_sensor.sensor_pergola_azimuth
    scan_interval: 60
    value_template: "{{ value_json['root']['s_azi'].split(';')[0] }}"

  - platform: rest
    resource: "192.168.xxx.xxx/zns.cgi?cmd=d&p=os"
    name: sensor_pergola_position des lames_mot0
    unique_id: binary_sensor.sensor_pergola_position des lames_mot0
    scan_interval: 30
    value_template: "{{ value_json['root']['Mot0'].split(';')[0] }}"

les rest command

command_line:
  - switch:
      name: button Lumière de la Pergola 100 %
      unique_id: binary_sensor.Lumière de la Pergola
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=l&o=64&p=255"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: button Lumière de la Pergola 50 %
      unique_id: binary_sensor.Lumière de la Pergola 50 %
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=l&o=64&p=130"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: button Lumière de la Pergola OFF
      unique_id: binary_sensor.Lumière de la Pergola OFF
      command_on: >
        curl -X GET -d '{"off":false}' "http://192.168.xxx.xxx/zns.cgi?cmd=l&o=64&p=0"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: Switch Lumière de la Pergola 25 %
      unique_id: binary_sensor.Lumière de la Pergola 25 %
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=l&o=64&p=75"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: Switch Lumière de la Pergola 75 %
      unique_id: binary_sensor.Lumière de la Pergola 75 %
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=l&o=64&p=190"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: slider lames de la Pergola 0
      unique_id: binary_sensor.slider lames de la Pergola 0
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=l&o=64&p=0"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: slider lames de la Pergola 25
      unique_id: binary_sensor.slider lames de la Pergola 25
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=m&m=1&a=25"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: slider lames de la Pergola 30
      unique_id: binary_sensor.slider lames de la Pergola 30
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=m&m=1&a=75"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: slider lames de la Pergola 50
      unique_id: binary_sensor.slider lames de la Pergola 50
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=m&m=1&a=90"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: slider lames de la Pergola 75
      unique_id: binary_sensor.slider lames de la Pergola 75
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=m&m=1&a=125"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}

  - switch:
      name: slider lames de la Pergola 100      
      unique_id: binary_sensor.slider lames de la Pergola 100
      command_on: >
        curl -X GET -d '{"on":true}' "http://192.168.xxx.xxx/zns.cgi?cmd=m&m=1&a=145"
      command_state: curl http://192.168.xxx.xxx/zns.cgi?cmd=d&p=os
      value_template: >
        {{value_json.config.on}}i

Le slider pour la lumière, ça j’ai :

Jei vais mettre ici comment j’ai fait

Il faut une template Light (soit dans le configuration.yaml, soit dans un fichier à part avec un include, c’est ce que j’ai):

Dans le fichier configuration.yaml :

light: !include lights.yaml
rest_command: !include rest_commands.yaml
sensor: !include sensors.yaml

Dans le fichier Lights.yaml :

- platform: template
  lights:
    light_pergola:
      friendly_name: "Lumière pergola"
      level_template: "{{ states('sensor.light_pergola_white')|int(0) }}"
      value_template: >-
        {% if (states('sensor.light_pergola_white')|int(0)) == 0 %}
          off
        {% else %}
          on
        {% endif %}
      icon_template: >-
        {% if (states('sensor.light_pergola_white')|int(0)) == 0 %}
          mdi:lightbulb-off
        {% else %}
          mdi:lightbulb-on
        {% endif %}
      turn_on:
        service: rest_command.pergola_light
        data:
          pwm: 255
      turn_off:
        service: rest_command.pergola_light
        data:
          pwm: 0
      set_level:
        service: rest_command.pergola_light
        data:
          pwm: '{{ brightness }}'

Dans le fichier rest_commands.yaml :

pergola_light:
  url: "http://192.168.1.97/zns.cgi?cmd=l&o=64&p={{ pwm }}"
  method: get

Dans le fichier sensors.yaml :

- platform: rest
  resource: "http://192.168.1.97/zns.cgi?cmd=d&p=o"
  name: light_pergola_white
  value_template: "{{ value_json['root']['gpo6'].split(';')[0] }}"
  scan_interval: 15

Et ça doit marcher pareil avec les lames en utilisant un template de volet.

1 « J'aime »

merci je regarde dès que je peux
Je rajoute des sensors

  - platform: rest
    resource: "http://192.168.xxx.xxx/zns.cgi?cmd=d&p=ios"
    name: sensor_pergola_mode
    unique_id: binary_sensor.sensor_pergola_mode
    scan_interval: 30
    value_template: "{{ value_json['root']['user'].split(';')[0] }}"

  - platform: rest
    resource: "http://192.168.xxx.xxx/zns.cgi?cmd=d&p=ios"
    name: sensor_pergola_temp inter
    unique_id: binary_sensor.sensor_pergola_temp inter
    scan_interval: 30
    value_template: "{{ value_json['root']['Temp'].split(';')[0] }}"

  - platform: rest
    resource: "http://192.168.xxx.xxx/zns.cgi?cmd=d&p=ios"
    name: sensor_pergola_conso
    unique_id: binary_sensor.sensor_pergola_conso
    scan_interval: 30
    value_template: "{{ value_json['root']['VDC2'].split(';')[0] }}"

Cadeaux, reste à améliorer le comportement du slider

  - platform: template
    lights:
      slider_pergola:
        friendly_name: "slider pergola_slider"
        unique_id: binary_sensor.pergola_slider
        level_template: "{{ states('sensor_pergola_position des lames_mot0')|int(0) }}"
        value_template: >-
          {% if (states('sensor_pergola_position des lames_mot0')|int(0)) == 0 %}
            off
          {% else %}
            on
          {% endif %}
        icon_template: >-
          {% if (states('sensor_pergola_position des lames_mot0')|int(0)) == 0 %}
            mdi:lightbulb-off
          {% else %}
            mdi:lightbulb-on
          {% endif %}
        turn_on:
          service: rest_command.pergola_slider
          data:
            pwm: 100
        turn_off:
          service: rest_command.pergola_slider
          data:
            pwm: 0
        set_level:
          service: rest_command.pergola_slider
          data:
            pwm: '{{ brightness }}'
##########################

  pergola_slider:
    url: "http://192.168.xxx.xxx/zns.cgi?cmd=m&m=1&a={{ pwm }}"
    method: get

Bonjour @Zigfou

As tu réussi à faire fonctionner les lames ?

Merci

je viens de créer un tuto pour le sujet que je vais compléter dès que possible
https://forum.hacf.fr/t/tuto-installer-sa-pergola-zenisun-sur-home-assistannt/47462

2 « J'aime »