Nouveaux Sensors

Bonjour,

j’ai compris qu’il existait un nouveau format pour les sensors… j’ai ai des dizaines dans l’ancien format, voir presqu’une centaine.
car si on doit changer le format des sensors bientot, au temps que je prenne le temps de tous les refaire, et comme je le précisais, j’en ai beaucoup.

par exemple fichier sensors.yaml :

   - platform: template
     sensors:
       etat_alarme:
         value_template: > 
           {{states('alarm_control_panel.alarmo')}

j’ai une ligne dans le fichier de config pour les charger :

sensor: !include www/custom-lovelace/sensors.yaml

si j’ai bien compris, maintenant le format est :

template:
  - sensor:
      - name: "etat_aa"
        state: >-
          {{states('alarm_control_panel.alarmo')}}

j’ai créé un folder template a la racine et mis mon fichier de sensors dedans et dans le fichier de config, il faut mettre un include :

template: !include_dir_merge_list template/

je n’ai aucune erreur, sauf que mon nouveau sensor… il n’est pas là.
aurais je oublié quelque chose, mal fait un truc…

merci pour l’explication si j’ai loupé un truc.
:slight_smile:

Bonjour,

Le ou les fichiers yaml dans ton dossier template ne doivent pas avoir template: au début.
Uniquement la list des sensors, binary_sensors, …

example:

### Date sensors
# Time of day
- sensor:
  - name: "Time of Day"
    state: >-
        {% if is_state('binary_sensor.morning','on') %}
          morning  
        {% elif is_state('binary_sensor.afternoon','on') %}
          afternoon 
        {% elif is_state('binary_sensor.evening','on') %}
          evening
        {% else %}
          night
        {% endif %}

# What is the day today?
- sensor:
  - name: "Weekday is"
    state: "{{ ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'][now().weekday()] }}"

# What is the month?    
- sensor:
  - name: "Month is"
    state: "{{ ['January','February','March','April','May','June','August','September','October','November','December'][now().month-1] }}"
 

Cordialement,

Abel

1 « J'aime »

merci,
je venais juste de faire le test, c’était bien ça.
merci encore :slight_smile:
j’ai dégainé trop vite sans tout tester, au temps pour moi.
:wink:

j’utilisait souvent les

        friendly_name: 
        icon_template:

pour les sensors, je vois que cela n’est plus possible maintenant dans la nouvelle norme.
bien dommage.

If faut utiliser

name: en guise de friendly name, et
icon: pour customiser les icônes

example:

template:
# Count devices with low battery
  - sensor:
    - name: "Devices with low battery"
      unit_of_measurement: devices
      state: >-
        {% set ignore_entities = [] %}
        {{ states.sensor
          | selectattr('attributes.device_class', 'eq', 'battery')
          | rejectattr('entity_id', 'in', ignore_entities)
          | map(attribute='state')
          | reject('in', ['unknown', 'unavailable'])
          | map('int', -1) | select('le', states('input_number.battery_warning_level')|int )
          |select('ge', 0)
          | list | count
        }}
      icon: >-
        {% if is_state('sensor.devices_with_low_battery', '0') %}
          mdi:battery-high
        {% else %}
          mdi:battery-low
        {% endif %}

Concernant les nouveaux sensors, j’ai voulu modifier en conséquence les éléments dans mes « cover », et lorsque je remplace « friendly_name » par « name » par exemple, il y a une erreur de chargement de configration.
Même chose en remplaçant icon_template par icon.

Doit-on attendre une modification de « cover », ou y-a-t’il autre chose à faire?

Bonjour,

La nouvelle syntaxe ne s’applique pas sur tout.
Cover utilise toujours friendly_name et icon_template:
https://www.home-assistant.io/integrations/cover.template/

elle s’applique sur binary sensors, buttons, numbers, selects and sensors.
https://www.home-assistant.io/integrations/template/

Beaucoup d’inconcistance, c’est pourquoi la doc est importante.

Cordialement,

Abel

1 « J'aime »

Hello @Abel, du coup j’ai l’impression que cette nouvelle règle ne s’applique pas aux switchs, non ? pourtant je reçois ce type de demande de corrections sans plus d’explication :thinking:

Hello
Ici, tu as un problème de command line (pas de template) :

1 « J'aime »

Bonjour Christian,

Peux-tu partager le code de ton switch?

D’après la doc, c’est possible
https://www.home-assistant.io/integrations/command_line/

Abel

Voilà mon code switch.yaml en !include via configuration.yaml + je regarde en // le lien de @Giga77 :

#switch:
  - platform: template
    switches:
      bouton_clim:
        turn_on:
          service: script.1593428333662
        turn_off:
          service: script.1593428412953
  - platform: template
    switches:
      bouton_chauffage:
        turn_on:
          service: climate.turn_on
          data:
            entity_id: climate.netatmo_ma_piece
        turn_off:
          service: climate.turn_off
          data:
            entity_id: climate.netatmo_ma_piece
  - platform: template
    switches:
      bouton_daikinap04534:
        turn_on:
          service: climate.turn_on
          data:
            entity_id: climate.daikinap04534
        turn_off:
          service: climate.turn_off
          data:
            entity_id: climate.daikinap04534
  - platform: template
    switches:
      bouton_daikinap05080:
        turn_on:
          service: climate.turn_on
          data:
            entity_id: climate.daikinap05080
        turn_off:
          service: climate.turn_off
          data:
            entity_id: climate.daikinap05080
  - platform: template
    switches:
      bouton_daikinap83632:
        turn_on:
          service: climate.turn_on
          data:
            entity_id: climate.daikinap83632
        turn_off:
          service: climate.turn_off
          data:
            entity_id: climate.daikinap83632
  - platform: template
    switches:
      bouton_daikinmaison:
        turn_on:
          service: climate.turn_on
          data:
            entity_id: climate.daikin_maison
        turn_off:
          service: climate.turn_off
          data:
            entity_id: climate.daikin_maison
  - platform: broadlink
    mac: 'xx:xx:xx:xx:xx:xx'
    switches:
      - name: 'whirlpool_power'
        command_on: 'JgBgAQABJxUAAAAAAAA='
        command_off: 'JgBgAQABxQUAAAAAAAA='
  - platform: template
    switches:
      my_computer:
        friendly_name: "My Computer"
        value_template: "{{ is_state('binary_sensor.my_computer_connected', 'on') }}"
        turn_on:
          service: script.my_computer_wake
        turn_off:
          service: script.my_computer_shutdown
        icon_template: mdi:laptop
  - platform: template
    switches:
      my_deebot:
        friendly_name: "My Deebot"
        turn_on:
          service: script.my_deebot_start
        turn_off:
          service: script.my_deebot_return_to_base
        icon_template: mdi:vaccum
  - platform: template
    switches:
      switch_hdmi:
        friendly_name: "Switch HDMI"
        turn_on:
          service: shell_command.switch_pi
        turn_off:
          service: shell_command.switch_fp
        icon_template: mdi:video-input-hdmi
  - platform: command_line
    switches:
      restart_fhem:
        command_on: ssh -E /config/toto -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.40 'sudo service fhem restart'
        command_off: ssh -E /config/toto -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.40 'sudo service fhem restart'
  - platform: command_line
    switches:
      switchhdmi:
        command_on: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/switchPI.sh'
        command_off: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/switchFP.sh'
  - platform: command_line
    switches:
      switchchromecast:
        command_on: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/switchCC.sh'
        command_off: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/switchCC.sh'
  - platform: command_line
    switches:
      restartbt:
        command_on: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/restartBT.sh'
        command_off: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/restartBT.sh'
  - platform: command_line
    switches:
      restart_rpi3:
        command_on: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'sudo reboot'
        command_off: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'sudo reboot'
  - platform: command_line
    switches:
      sounddetectorb:
        command_on: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/startSD.sh'
        command_off: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/stopSD.sh'
  - platform: template
    switches:
      switch_tv:
        friendly_name: "Switch TV"
        turn_on:
          service: shell_command.switch_tvon
        turn_off:
          service: shell_command.switch_tvoff
  - platform: template
    switches:
      switch_sounddetectorb:
        friendly_name: "Switch SoundDetectorb"
        turn_on:
          service: shell_command.switch_sd
        turn_off:
          service: shell_command.switch_sd
  - platform: command_line
    switches:
      tv_rpi:
        command_on: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 "echo 'on 0' | cec-client -s"
        command_off: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 "echo 'standby 0' | cec-client -s"
        value_template: '{{ value == "power status: on" }}'
  - platform: group
    name: switches_tplink
    entities:
      - switch.tp_link_switch_port_1_enabled
      - switch.tp_link_switch_port_2_enabled
      - switch.tp_link_switch_port_3_enabled
      - switch.tp_link_switch_port_4_enabled
      - switch.tp_link_switch_port_5_enabled
      - switch.tp_link_switch_port_6_enabled
      - switch.tp_link_switch_port_7_enabled
      - switch.tp_link_switch_port_8_enabled

Hi Christian,

Essaye comme ça ( j’ai pris les 2 premiers switches)

command_line:
  - switch:
      name: "restart_fhem"
      command_on: "ssh -E /config/toto -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.40 'sudo service fhem restart'"
      command_off: "ssh -E /config/toto -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.40 'sudo service fhem restart'"
      
  - switch:
    name: "switchhdmi"
    command_on: "ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/switchPI.sh'"
    command_off: "ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -p 22 pi@192.168.1.32 'bash /home/pi/switchFP.sh'"

vérifie l’indentation, je ne suis pas sûr de mon copier/coller

Abel

1 « J'aime »

oui c’était bien ça ! Merci @Abel et @Giga77
J’ai modifié le code en conséquence et les 2 corrections command-line n’apparaissent plus. :call_me_hand:
Désolé @LeLapinFou de m’être inséré dans ce post pour une correction qui n’était finalement pas similaire à la tienne :sweat_smile:

pas de soucis, cela permet de partager.
j’ai refais tous mes sensors a la nouvelle mode, et j’ai mis les icones directement dans mes cartes., mais je vais les rajouter dans les sensors.
il me reste 2 ou 3 sensors un peut « toutchi » a migrer, mais tout le reste est ok :slight_smile:

1 « J'aime »

dans le même style, j’ai passé dans le nouveau mode toutes mes command_line, mais je butte sur celui ci :


  - platform: systemmonitor
    resources:
      - type: disk_use_percent
      - type: disk_use
      - type: disk_free
      - type: memory_use_percent
      - type: memory_use
      - type: memory_free
      - type: swap_use_percent
      - type: swap_use
      - type: swap_free
      - type: load_1m
      - type: load_5m
      - type: load_15m
      - type: processor_use
      - type: processor_temperature
      - type: last_boot

avez vous une idée ?

Salut @LeLapinFou

pour ces derniers sensors j’ai rien modifié
ce sont des sensors issus d’une intégration native

ou alors j’ai pas compris la question.

ok, donc, celui là je le laisse dans le fichier sensors.yaml.
ça marche, on verra bien a la prochaine MAJ d’aout ou les anciens sensors ne fonctionneront plus si j’ai bien tout suivi.

Ta rien a faire pour la plateform systemmonitor. Pas de changement pour ces sensors.

1 « J'aime »

oui dans le sensors.yaml

1 « J'aime »

ok, merci beaucoup. :slight_smile: