Cours:BashScript : Différence entre versions
(Page créée avec « =script shell= ==mqtt== ===HA mqtt sensor=== * https://www.home-assistant.io/integrations/sensor/ * https://github.com/home-assistant/core/blob/dev/homeassistant/const... ») |
(→HA mqtt sensor) |
||
| (10 révisions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
| − | |||
| + | =Ressources= | ||
| + | *https://linux.goffinet.org/administration/scripts-shell/ | ||
| + | *https://linux.goffinet.org/administration/scripts-shell/ | ||
| + | *http://n.grassa.free.fr/cours-linux/shell-scripts/shell-programmation.html | ||
| − | |||
| − | ===HA mqtt sensor | + | |
| + | =script pour homeAssistant avec broker mqtt= | ||
| + | |||
| + | |||
| + | ==HA mqtt sensor== | ||
* https://www.home-assistant.io/integrations/sensor/ | * https://www.home-assistant.io/integrations/sensor/ | ||
* https://github.com/home-assistant/core/blob/dev/homeassistant/const.py#L489 | * https://github.com/home-assistant/core/blob/dev/homeassistant/const.py#L489 | ||
| + | /usr/local/bin/createHaSensor | ||
<source lang=bash> | <source lang=bash> | ||
| − | |||
| − | |||
#!/bin/bash | #!/bin/bash | ||
| Ligne 26 : | Ligne 31 : | ||
}" | }" | ||
| + | mosquitto_pub -P geii -u admin -t "$topic" -m "$payload" -h 10.98.35.240 | ||
| + | </source> | ||
| − | + | /usr/local/bin/deleteHaSensor : | |
| − | + | <source lang=bash> | |
| − | |||
| − | /usr/local/bin/deleteHaSensor : | ||
#!/bin/bash | #!/bin/bash | ||
| Ligne 39 : | Ligne 44 : | ||
topic="homeassistant/sensor/$1/config" | topic="homeassistant/sensor/$1/config" | ||
| − | mosquitto_pub -t "$topic" -m "" -h | + | mosquitto_pub -P geii -u admin -t "$topic" -m "" -h 10.98.35.240 |
| + | </source> | ||
| − | + | /usr/local/bin/publishHaSensor : | |
| − | /usr/local/bin/publishHaSensor : | + | <source lang=bash> |
#!/bin/bash | #!/bin/bash | ||
| Ligne 52 : | Ligne 58 : | ||
\"unique_id\": \"$1\", \ | \"unique_id\": \"$1\", \ | ||
\"state_topic\": \"homeassistant/sensor/$1/state\", \ | \"state_topic\": \"homeassistant/sensor/$1/state\", \ | ||
| − | |||
| − | |||
}" | }" | ||
| − | mosquitto_pub -t "$topic" -m "$2" -h | + | mosquitto_pub -P geii -u admin -t "$topic" -m "$2" -h 10.98.35.240 |
| − | |||
| − | |||
</source> | </source> | ||
'''Exemples''' : | '''Exemples''' : | ||
*createHaSensor testCreate battery % | *createHaSensor testCreate battery % | ||
| + | |||
| + | ==publier l'espace utilisé d'une partition== | ||
| + | |||
| + | |||
| + | la commande suivante permet d'obtenir l'espace utilisé (en %) de la partition montée sur le dossier /home : | ||
| + | df /home |grep "dev" |tr -s ' ' |cut -d ' ' -f 5|sed 's/%//' | ||
| + | |||
| + | Il s'agit en fait de l'exécution successives (pipes) des commandes : | ||
| + | *df : informations sur l'espace utilisé/libre des partitions | ||
| + | *grep : conserver les lignes contenant un mot particulier ( ici dev ) | ||
| + | *tr : utilisée ici pour supprimer les espaces multiples | ||
| + | *cut : permet de scinder une ligne en indiquant le délimiteur => ici on coupe au caractère espace et on conserve le 5ème champ | ||
| + | *sed : supprimer/remplacer des caractères => supprimer le caractère % | ||
| + | |||
| + | https://www.ionos.fr/digitalguide/serveur/configuration/pipes-linux/ | ||
| + | |||
| + | |||
| + | {{Question|Créer un service qui publie l'espace disponible sur la partition racine (ou root : / )sur homeAssitant toutes les minutes }} | ||
Version actuelle datée du 12 décembre 2025 à 12:00
Sommaire
Ressources
- https://linux.goffinet.org/administration/scripts-shell/
- https://linux.goffinet.org/administration/scripts-shell/
- http://n.grassa.free.fr/cours-linux/shell-scripts/shell-programmation.html
script pour homeAssistant avec broker mqtt
HA mqtt sensor
- https://www.home-assistant.io/integrations/sensor/
- https://github.com/home-assistant/core/blob/dev/homeassistant/const.py#L489
/usr/local/bin/createHaSensor
#!/bin/bash
echo "name : $1"
echo "device class : $2"
echo "unit : $3"
topic="homeassistant/sensor/$1/config"
payload="{\"name\": \"$1\", \
\"unique_id\": \"$1\", \
\"state_topic\": \"homeassistant/sensor/$1/state\", \
\"device_class\":\"$2\", \
\"unit_of_measurement\":\"$3\" \
}"
mosquitto_pub -P geii -u admin -t "$topic" -m "$payload" -h 10.98.35.240
/usr/local/bin/deleteHaSensor :
#!/bin/bash
echo "name : $1"
echo "device class : $2"
echo "unit : $3"
topic="homeassistant/sensor/$1/config"
mosquitto_pub -P geii -u admin -t "$topic" -m "" -h 10.98.35.240
/usr/local/bin/publishHaSensor :
#!/bin/bash
echo "name : $1"
echo "valeur : $2"
topic="homeassistant/sensor/$1/state"
payload="{\"name\": \"$1\", \
\"unique_id\": \"$1\", \
\"state_topic\": \"homeassistant/sensor/$1/state\", \
}"
mosquitto_pub -P geii -u admin -t "$topic" -m "$2" -h 10.98.35.240
Exemples :
- createHaSensor testCreate battery %
publier l'espace utilisé d'une partition
la commande suivante permet d'obtenir l'espace utilisé (en %) de la partition montée sur le dossier /home :
df /home |grep "dev" |tr -s ' ' |cut -d ' ' -f 5|sed 's/%//'
Il s'agit en fait de l'exécution successives (pipes) des commandes :
- df : informations sur l'espace utilisé/libre des partitions
- grep : conserver les lignes contenant un mot particulier ( ici dev )
- tr : utilisée ici pour supprimer les espaces multiples
- cut : permet de scinder une ligne en indiquant le délimiteur => ici on coupe au caractère espace et on conserve le 5ème champ
- sed : supprimer/remplacer des caractères => supprimer le caractère %
https://www.ionos.fr/digitalguide/serveur/configuration/pipes-linux/
Créer un service qui publie l'espace disponible sur la partition racine (ou root : / )sur homeAssitant toutes les minutes