ficus
Juin 24, 2023, 10:47
21
Bonjour à tous,
je regarde cette histoire de mise à jour. Un coup j’ai l’impression de comprendre et ensuite quand je corrige mon fichier sensors.yaml
…je patine.
Pourriez-vous me guider, svp ?
Je vous soumet mon code d’origine:
# Température du CPU
- platform: command_line
name: RasPi CPU Temp
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: "{{ value | multiply(0.001) | round(1) }}"
# Heures et Date
- platform: time_date
display_options:
- 'time'
- 'date'
- platform: template
sensors:
week_day:
value_template: "{{ now().strftime('%A')}}"
current_date:
value_template: "{{ now().strftime('%d')}} {{ now().strftime('%B')}} {{ now().strftime('%Y')}}"
time_fr:
value_template: "{{ now().strftime('%H:%M')}}"
jour_fr:
value_template: "{{ ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'][now().weekday()] }}"
date_fr:
value_template: "{% set months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] %} {{ now().day | string + ' ' + months[now().month-1]}} {{now().year }}"
# Temps d'écran
- platform: history_stats
name: TV SdJ allumée
entity_id: sensor.tv_salle_de_jeux_electricalmeasurement
state: ">20"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
- platform: history_stats
name: TV Salon allumée
entity_id: sensor.tv_salon_electricalmeasurement
state: ">20"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
Merci de votre aide !
Abel
Juin 24, 2023, 12:14
22
Bonjour,
Le plus simple est de créer un fichier command_line.yaml et d’y mettre le sensor pour la température du rPi avec la nouvelle syntaxe. Et de créer un fichier templates.yaml pour les sensors de jours avec la nouvelle syntaxe egalement.
Ensuite ajouter 2 lignes include dans configuration.yaml
Cordialement
Abel
ficus
Juin 26, 2023, 7:02
23
je n’avais pas compris qu’il fallait aussi renommer les fichiers.
Même si ce n’est pas « propre » je croix que ça peux passer dans le modèle sensors.yaml
Pourriez-vous me montrer la syntaxe sur mon exemple, pour la T° et pour la date, SVP ?
Merci beaucoup
ficus
Juin 30, 2023, 12:13
24
Est ce que ça fonctionne comme nouvelle syntaxe ?
Quelle est la différence entre Sensor, Binary Sensor et Template ?
Merci de votre aide
command_line:
# Température du CPU
- sensor:
name: RasPi CPU Temp
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: "{{ value | multiply(0.001) | round(1) }}"
# Heures et Date
- platform: time_date
display_options:
- 'time'
- 'date'
- template:
sensors:
week_day:
value_template: "{{ now().strftime('%A')}}"
current_date:
value_template: "{{ now().strftime('%d')}} {{ now().strftime('%B')}} {{ now().strftime('%Y')}}"
time_fr:
value_template: "{{ now().strftime('%H:%M')}}"
jour_fr:
value_template: "{{ ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'][now().weekday()] }}"
date_fr:
value_template: "{% set months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] %} {{ now().day | string + ' ' + months[now().month-1]}} {{now().year }}"
Salut
Un template, c’est un « modèle » qui s’applique à plein de type.
Parmi les types, il y a justement
un sensor qui retourne une valeur quelconque, numérique ou texte
un binary_sensor qui retourne une valeur vrai/faux uniquement
ficus
Juillet 13, 2023, 6:52
26
Je patine sévère avec ce changement. Déjà la ré-écriture proposé dans mon dernier post ne fonctionne pas. Je n’ai plus mes infos ni température, ni ma carte Date & Heure.
J’ai donc créé un fichier command_line.yaml, avec l’appel command_line: !include command_line.yaml
dans le fichier de configuration.
Pour l’insant j’ai retiré le Template pour limiter les erreurs. Mais HA ne rédémarre pas cette config, avec l’erreur suivante
Cannot quick reload all YAML configurations because the configuration is not valid: Invalid config for [command_line]: [command_line] is an invalid option for [command_line]. Check: command_line->command_line->0->command_line. (See /config/configuration.yaml, line 9).
Ci joint le texte de ma commande
command_line:
# Température du CPU
- sensor:
name: RasPi CPU Temp
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: "{{ value | multiply(0.001) | round(1) }}"
j’ai beau lire et relire les textes sous Command Line - Home Assistant , je ne comprend pas.
Une idée les amis ?
Salut,
Si tu mets command_line:
dans command_line: !include command_line.yaml
Alors il ne faut pas le mettre en plus dans le fichier command_line.yaml
. En plus tu dois commencer sans les 2 espaces. ça doit ressemble à ça
1 « J'aime »
ficus
Juillet 13, 2023, 10:08
28
Merci @Pulpy-Luke
J’ai pigé mon erreur.
Salut Tertous,
Je viens de tenter de régler l’erreur que j’ai également dans HA:
Cette ligne de code ci-dessous me sert à faire de la détection de mouvement sur ma caméra Foscam, pour ensuite m’envoyer des notifications sur mon téléphone.
binary_sensor:
- platform: command_line
name: "Detection Caméra Cusine"
command: 'curl -k --silent "http://192.168.1.XXX:88/cgi-bin/CGIProxy.fcgi?cmd=getDevState&usr=foscamuser&pwd=password" | grep -oP "(?<=motionDetectAlarm>).*?(?=</motionDetectAlarm>)"'
device_class: motion
payload_on: "2"
payload_off: "1"
scan_interval: 3
J’ai essayé plusieurs choses mais je me retrouve avec une erreur quand je vérifie la configuration de Home Assistant… J’ai essayé genre:
command_line:
- binary_sensor:
name: "Detection Caméra Cusine"
command: 'curl -k --silent "http://192.168.1.XXX:88/cgi-bin/CGIProxy.fcgi?cmd=getDevState&usr=foscamuser&pwd=password" | grep -oP "(?<=motionDetectAlarm>).*?(?=</motionDetectAlarm>)"'
device_class: motion
payload_on: "2"
payload_off: "1"
scan_interval: 3
ou :
command_line:
- sensor:
name: "Detection Caméra Cusine"
command: 'curl -k --silent "http://192.168.1.XXX:88/cgi-bin/CGIProxy.fcgi?cmd=getDevState&usr=foscamuser&pwd=password" | grep -oP "(?<=motionDetectAlarm>).*?(?=</motionDetectAlarm>)"'
device_class: motion
payload_on: "2"
payload_off: "1"
scan_interval: 3
Quand j’enregistre dans le file éditor, j’ai un check OK :
Mais l’ors de la vérification de la configuration j’ai ceci:
Si une âme charitable pouvait me venir en aide car je suis pas un pro dans le domaine.
Merci d’avance.
Bonjour,
il te manque deux espaces.
command_line:
- binary_sensor:
name: "Detection Caméra Cusine"
command: 'curl -k --silent "http://192.168.1.XXX:88/cgi-bin/CGIProxy.fcgi?cmd=getDevState&usr=foscamuser&pwd=password" | grep -oP "(?<=motionDetectAlarm>).*?(?=</motionDetectAlarm>)"'
device_class: motion
payload_on: "2"
payload_off: "1"
scan_interval: 3
Salut @WarC0zes , merci beaucoup c’était bien ça, J’ai vraiment du mal avec ces histoires d’espace de début de ligne.
J’essaie de régler le même problème mais avec le switch de la détection de ma caméra, car en erreur aussi :
# Cuisine
- platform: command_line
switches:
detection_camera_cuisine:
friendly_name: "Détection Caméra Cuisine"
command_on: 'curl -k "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=130&snapInterval=3&sensitivity=1&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=30&area1=30&area2=30&area3=30&area4=30&area5=30&area6=30&area7=0&area8=0&area9=0&usr=foscamuser&pwd=password"'
command_off: 'curl -k "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&linkage=130&snapInterval=3&sensitivity=1&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=30&area1=30&area2=30&area3=30&area4=30&area5=30&area6=30&area7=0&area8=0&area9=0&usr=foscamuser&pwd=password"'
command_state: 'curl -k --silent "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=foscamuser&pwd=password" | grep -q "<isEnable>1</isEnable>"'
#value_template: '{{ value == "1" }}'
Du coup j’ai essayé de corriger comme ceci:
# Cuisine
command_line:
- switches:
detection_camera_cuisine:
friendly_name: "Détection Caméra Cuisine"
command_on: 'curl -k "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=130&snapInterval=3&sensitivity=1&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=30&area1=30&area2=30&area3=30&area4=30&area5=30&area6=30&area7=0&area8=0&area9=0&usr=foscamuser&pwd=password"'
command_off: 'curl -k "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&linkage=130&snapInterval=3&sensitivity=1&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=30&area1=30&area2=30&area3=30&area4=30&area5=30&area6=30&area7=0&area8=0&area9=0&usr=foscamuser&pwd=password"'
command_state: 'curl -k --silent "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=foscamuser&pwd=password" | grep -q "<isEnable>1</isEnable>"'
#value_template: '{{ value == "1" }}'
Mais il doit encore avoir un souci quelque part.
Merci encore d’avance pour ton aide
Bonjour,
Il faut écrire une fois command_line:
dans le configuration.yaml et en dessous il mettre sensor, binary_sensor ou switch sans chaque fois rajouter command_line:
.
exemple:
command_line:
- binary_sensor:
command: "cat /proc/sys/net/ipv4/ip_forward"
- cover:
command_open: move_command up garage
command_close: move_command down garage
command_stop: move_command stop garage
name: Garage
- sensor:
command: SENSOR_COMMAND
- sensor:
command: SENSOR_COMMAND_2
Ensuite, ton code comprend friendly_name: "Détection Caméra Cuisine"
qui n’est plus utiliser maintenant et est remplacer par name:
command_line:
- switches:
name: "Détection Caméra Cuisine"
command_on: 'curl -k "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=130&snapInterval=3&sensitivity=1&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=30&area1=30&area2=30&area3=30&area4=30&area5=30&area6=30&area7=0&area8=0&area9=0&usr=foscamuser&pwd=password"'
command_off: 'curl -k "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&linkage=130&snapInterval=3&sensitivity=1&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=30&area1=30&area2=30&area3=30&area4=30&area5=30&area6=30&area7=0&area8=0&area9=0&usr=foscamuser&pwd=password"'
command_state: 'curl -k --silent "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=foscamuser&pwd=password" | grep -q "<isEnable>1</isEnable>"'
#value_template: '{{ value == "1" }}'
@WarC0zes , Salut, effectivement ça fonctionne avec ce que tu m’as donné comme exemple et je t’en remercie:
command_line:
- switches:
name: "Détection Caméra Cuisine"
command_on: 'curl -k "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=130&snapInterval=3&sensitivity=1&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=30&area1=30&area2=30&area3=30&area4=30&area5=30&area6=30&area7=0&area8=0&area9=0&usr=foscamuser&pwd=password"'
command_off: 'curl -k "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&linkage=130&snapInterval=3&sensitivity=1&triggerInterval=10&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=30&area1=30&area2=30&area3=30&area4=30&area5=30&area6=30&area7=0&area8=0&area9=0&usr=foscamuser&pwd=password"'
command_state: 'curl -k --silent "https://192.168.1.XXX:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=foscamuser&pwd=password" | grep -q "<isEnable>1</isEnable>"'
#value_template: '{{ value == "1" }}'
J’ai pas d’erreur à condition que le code se trouve dans le « configuration.yaml », par contre j’ai un fichier de config séparé nommé « switches.yaml » qui est appelé dans le fichier « configuration.yaml » avec:
switch: !include switches.yaml
Et quand je mets le code dans ce fichier « switches.yaml » j’ai ce message d’erreur :
Je dois encore me gourré quelque part ou oublier quelque chose. Je suis vraiment une quiche en yaml. Si tu pouvais m’éclairer une fois de plus ça serait top.
En tout cas merci pour ton aide!!
Manuel_Bastos:
J’ai pas d’erreur à condition que le code se trouve dans le « configuration.yaml », par contre j’ai un fichier de config séparé nommé « switches.yaml » qui est appelé dans le fichier « configuration.yaml » avec:
switch: !include switches.yaml
Et quand je mets le code dans ce fichier « switches.yaml » j’ai ce message d’erreur :
Ce switch:
correspond a un switch template Template Switch - Home Assistant qui est différent d’un switch command_line. Tu ne peut pas le mettre dans le switches.yaml.
Tu peu séparer le command_line
dans un fichier .yaml, comme l’explique @Pulpy-Luke dans ce post Erreur YAML - #27 par Pulpy-Luke
@WarC0zes Ok j’ai bien pigé le truc, je vas regarder tout ça, merci beaucoup pour ton aide