Bonsoir tout le monde,
Toujours dans l’idée d’avoir sur mon dashboard un encart avec toutes les mises à jour en attente, j’ai voulu me créer un sensor pour vérifier si l’un de mes devices ESP32/8266 nécessite une mise à jour.
J’ai l’impression que j’ai créé une usine à gaz pour pas grand chose et je suis sur qu’il y a une manière beaucoup plus simple pour le faire…
Pour autant, voici comment j’ai procédé.
Création d’un sensor avec la dernière version d’ESPhome avec un scrape…
- platform: scrape
resource: https://github.com/esphome/esphome/releases/latest
name: ESPHome latest version (Github)
select: '#repo-content-pjax-container > div > div > div.Box-body > div.d-flex.flex-row.mb-3 > div.flex-1 > h1'
Puis, je compare par rapport à la version de l’ESP (récupérée via platform: version dans la configuration) en créant un binary sensor qui passe à « on » si l’un des ESP
- platform: template
sensors:
esp_device_update:
friendly_name: Mise à jour ESP
value_template: >-
{{ states('sensor.esp32_mini_node1_esphome_version').split(" ")[0] != states('sensor.esphome_latest_version_github')
or states('sensor.esp32_mini_node2_esphome_version').split(" ")[0] != states('sensor.esphome_latest_version_github')
or states('sensor.esp32_mini_node3_esphome_version').split(" ")[0] != states('sensor.esphome_latest_version_github')
or states('sensor.esp32_node2_esphome_version').split(" ")[0] != states('sensor.esphome_latest_version_github')
or states('sensor.esp_linky_esphome_version').split(" ")[0] != states('sensor.esphome_latest_version_github')
}}
Résultat dans mon dashboard (en vert quand mise à jour en attente, donc quand « binary_sensor.esp_device_update » = on).
type: custom:button-card
size: 60%
icon: mdi:chip
name: ESPHome
styles:
card:
- background-color: |
[[[
if (states['binary_sensor.esp_device_update'].state == 'on')
return 'green';
else
return 'none';
]]]
Est-ce que vous voyez un moyen plus simple pour faire cela ou est-ce une solution « robuste » selon vous ? Merci