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) |
||
(9 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 57 : | Ligne 63 : | ||
− | 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 24 octobre 2024 à 15:03
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