Récupérer les dimmers zwave de jeedom dans HA

Dans le lien que tu indiques, je montre une méthode qui s’appuie sur nodered et l’url de commande global de jeedom.
Pour pratiquer le yaml (qui n’est pas ma tasse de thé…) j’ai essayé de faire sans :slight_smile:
Voilà ce que j’obtiens.

Dans configuration.yaml :

light:
  - platform: template
    lights:
      cuisine:
        friendly_name: "Lumière Cuisine"
        level_template: "{{ ((states('sensor.kitchen_brightness')|int) * 255 / 100)|int }}"
        value_template: "{{ states('sensor.kitchen_brightness')|int >0 }}"
        turn_on:
          service: script.turn_on_kitchen
        turn_off:
          service: script.turn_off_kitchen
        set_level:
          service: script.set_brightness_kitchen
          data:
            brightness: " {{ brightness - 1 }}"

sensor:
  - platform: rest
    resource: http://IP_JEEDOM/core/api/jeeApi.php?apikey=token&type=cmd&id=496
    name: kitchen_brightness

input_text:
    jeedroid_api_cmd:
      initial: 'http://IP_JEEDOM/core/api/jeeApi.php?apikey=token&type=cmd&id='
      max: 128

shell_command:
  cuisine_brightness: 'curl {{ states("input_text.jeedroid_api_cmd") }}493&slider={{brightness}}'
  cuisine_on: 'curl {{ states("input_text.jeedroid_api_cmd") }}494'
  cuisine_off: 'curl {{ states("input_text.jeedroid_api_cmd") }}495'

493, 494, 495 et 496 sont les id des actions dans jeedom.
Le input_text a pour simple but de « factoriser » l’utilisation de cet appel dans les shell_command.
Il semble que l’on ne puisse pas faire pareil dans le sensor rest. J’ai donc répété.

L’opération dans level_template est pour recaler sur 100 et pas 255, je ne sais pas pourquoi…

Ensuite dans scripts.yaml (peut être créer via l’interface):

turn_on_kitchen:
  alias: turn_on_kitchen
  sequence:
  - service: shell_command.cuisine_on
    data: {}
  - delay: '3'
  - service: homeassistant.update_entity
    data: {}
    entity_id: sensor.kitchen_brightness
  mode: single
turn_off_kitchen:
  alias: turn_off_kitchen
  sequence:
  - service: shell_command.cuisine_off
    data: {}
  - delay: '3'
  - service: homeassistant.update_entity
    data: {}
    entity_id: sensor.kitchen_brightness
  mode: single
set_brightness_kitchen:
  alias: set_brightness_kitchen
  sequence:
  - service: shell_command.cuisine_brightness
    data:
      brightness: ' {{ (brightness / 255 * 100) | int }}'
  - delay: '3'
  - service: homeassistant.update_entity
    data: {}
    entity_id: sensor.kitchen_brightness
  mode: single

L’astuce à chaque fois, c’est de lancer la commande shell vers jeedom (le curl…), d’attendre un peu que ça soit traité et de forcer la mise à jour du sensor rest. Comme ça, tu as le retour d’état avant la mise à jour par défaut (toutes les 30s je crois).

Avec ça, dans lovelace tu as une carte light avec un slider:

Screenshot 2021-01-30 at 17.31.09

Pour un switch simple, garder la même logique en ne gardant que turn_on et off.

Si un expert yamliste passe par là (pour ne pas le nommer @Clemalex), il pourra sans doute améliorer ça. Mais, en l’état ça marche :wink:

2 « J'aime »