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
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:
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