Impossible de changer la vitesse d'un "fan template"

Mon problème

Hello,

J’ai intégré mon Broadlink RM Mini à Home Assistant et ai enregistré les commandes de mon ventilateur de plafond.

L’allumage/extinction est bien prise en compte, cependant je n’arrive pas à faire en sorte que le changement de vitesse soit pris en compte.

Voici le ventilateur (dans un fichier fans.yaml) :

# Example configuration.yaml entry (comme un commentaire que j'ai pas modifié)
- platform: template
  fans:
    ventilateur_bureau:
      friendly_name: "Ventilateur bureau"
      unique_id: fan.ventilateur_bureau
      value_template: "{{ states.input_boolean.etat_ventilateur_bureau.state }}"
      speed_template: "{{ states.input_select.vitesse_ventilateur_bureau }}"
      turn_on:
        service: script.alume_ventilateur_bureau
      turn_off:
        service: script.stop_ventilateur_bureau
      set_speed:
        service: script.ventilateur_bureau_vitesse
        data:
          speed: "{{ speed }}"
      speeds:
        - 'Vitesse 1'
        - 'Vitesse 2'
        - 'Vitesse 3'

Voici mes scripts (dans scripts.yaml) :

# Allumer le ventilateur du bureau
alume_ventilateur_bureau:
  sequence:
    - service: input_boolean.turn_on
      target:
        entity_id: input_boolean.etat_ventilateur_bureau
    - delay: "00:00:01"
    - service: remote.send_command
      data_template:
        entity_id: remote.rm_mini_bureau_remote
        device: Télécommande ventilateur bureau
        command: "{{ input_select.vitesse_ventilateur_bureau.state }}"

# Définir la vitesse du ventilateur du bureau
ventilateur_bureau_vitesse:
  sequence:
    - service: input_select.select_option
      data_template:
        entity_id: input_select.vitesse_ventilateur_bureau
        option: "{{ speed }}"
    - delay: "00:00:01"
    - service: remote.send_command
      data_template:
        entity_id: remote.rm_mini_bureau_remote
        device: Télécommande ventilateur bureau
        command: "{{ speed }}"

# Arrêter le ventilateur du bureau
stop_ventilateur_bureau:
  sequence:
    - service: remote.send_command
      target:
        entity_id: remote.rm_mini_bureau_remote
      data:
        device: Télécommande ventilateur bureau
        command: Stop le ventilateur
    - service: input_boolean.turn_off
      target:
        entity_id: input_boolean.etat_ventilateur_bureau

J’ai défini le input_boolean et le input_select qui vont bien
J’ai fais exprès de donner aux vitesses les même noms que mes commandes.
Dans le log, aucune erreur quand je change de vitesse par l’interface de Home Assistant.
J’ai tenté de mettre un délai selon ce post : Template Fan configuration - Configuration - Home Assistant Community
Sans succès.
La documentation n’est pas des meilleures sur ce sujet, je trouve en tout cas.

Quelqu’un a-t-il une idée ?
Je m’arrache les cheveux sur ce point depuis hier soir, ainsi que sur les interrupteurs avec Broadlink qui se contentent de ne pas fonctionner mais c’est une autre histoire :wink:

J’espère avoir fourni suffisamment d’informations :slight_smile:

Ma configuration


System Health

version core-2021.2.3
installation_type Home Assistant OS
dev false
hassio true
docker true
virtualenv false
python_version 3.8.7
os_name Linux
os_version 5.4.99
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4983
Installed Version 1.11.3
Stage running
Available Repositories 815
Installed Repositories 4
Home Assistant Cloud
logged_in true
subscription_expiration 21 mars 2021 à 01:00
relayer_connected true
remote_enabled true
remote_connected true
alexa_enabled false
google_enabled true
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Hass.io
host_os Home Assistant OS 5.12
update_channel stable
supervisor_version supervisor-2021.02.11
docker_version 19.03.13
disk_total 30.8 GB
disk_used 6.5 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (9.3.0), Check Home Assistant configuration (3.6.0), WireGuard (0.5.0), SSH & Web Terminal (8.0.3), Home Assistant Google Drive Backup (0.103.1)
Lovelace
dashboards 1
resources 0
mode auto-gen
___

Est-ce que celui-ci se met à jour ?

J’en doute car ton script n’est pas correctement définit pour utiliser les variables. Il te manque la clé fields.

Ton script devrait ressembler à ça :

ventilateur_bureau_vitesse:
  description: "Change la vitesse du ventilateur"
  fields:
    speed:
      description: "Consigne de vitesse"
      example: "Vitesse 1"
  sequence:
    - service: input_select.select_option
      data_template:
        entity_id: input_select.vitesse_ventilateur_bureau
        option: "{{ speed }}"
#    - delay:
#        seconds: 1  # A remettre si vraiment nécessaire
    - service: remote.send_command
      data_template:
        entity_id: remote.rm_mini_bureau_remote
        device: Télécommande ventilateur bureau
        command: "{{ speed }}"

Oui, il se mettait bien à jour, cependant j’ai quand même rendu le script plus conforme selon tes instructions, merci !
Et en relisant mieux mon code (et accessoirement le log que je lisais pourtant très souvent), je me suis aperçu qu’il y avait un souci dès l’initialisation de la vitesse.
Du coup, j’ai mis speed_template: "{{ states.input_select.vitesse_ventilateur_bureau.state }}" au lieu de speed_template: "{{ states.input_select.vitesse_ventilateur_bureau }}" et bizarrement, il préfère :slight_smile:

Par contre si d’autres que moi utilisent Google Assistant pour des ventilateurs, est-ce que c’est « normal » qu’il reste tout le temps sur l’état allumé ?
J’ai cédé à la simplicité de Nabucasa mais j’ose croire que ça serait pareil si j’utilisais l’intégration maison…
Et je remarque qu’il n’est également pas possible de changer la vitesse du ventilateur par Google Assistant, en tout cas pas via l’application Google Home.