Cours:BashScript : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(HA mqtt sensor)
 
Ligne 31 : Ligne 31 :
 
         }"
 
         }"
  
mosquitto_pub -t "$topic" -m "$payload" -h 192.168.0.7
+
mosquitto_pub -P geii -u admin -t "$topic" -m "$payload" -h 10.98.35.240
 
</source>
 
</source>
  
Ligne 44 : Ligne 44 :
 
topic="homeassistant/sensor/$1/config"
 
topic="homeassistant/sensor/$1/config"
  
mosquitto_pub -t "$topic" -m "" -h 192.168.0.7
+
mosquitto_pub -P geii -u admin -t "$topic" -m "" -h 10.98.35.240
 
</source>
 
</source>
  
Ligne 63 : Ligne 63 :
  
  
mosquitto_pub -t "$topic" -m "$2" -h 192.168.0.7
+
mosquitto_pub -P geii -u admin -t "$topic" -m "$2" -h 10.98.35.240
 
</source>
 
</source>
  

Version actuelle datée du 24 octobre 2024 à 15:03

Ressources



script pour homeAssistant avec broker mqtt

HA mqtt sensor

/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/


Question.jpg Créer un service qui publie l'espace disponible sur la partition racine (ou root : / )sur homeAssitant toutes les minutes