Cours:BashScript
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\", \
\"device_class\":\"$2\", \
\"unit_of_measurement\":\"$4\" \
}"
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