Aller au contenu

Envoyer une valeur à un module virtuel sur HCL


Messages recommandés

Posté(e) (modifié)

Salut,

 

j'ai trouvé la solution à ma propre question posée là :

 

Le sujet étant fermé... j'ouvre celui-ci pour donner la réponse.

 

Il est donc possible d'envoyer une valeur à un module virtuel sur HCL !

Imaginons que la HCL ait l'IP 192.168.1.33 et que le login soit moi@maison.net et le mot de passe soit TopSecret , que le module virtuel ait l'ID 123  et que son étiquette soit le Label1 et que je souhaite lui faire afficher "46 kWh" !

 

 

Il faut donc envoyer la commande suivante (notez bien que le %20 permet d'obtenir un espace) :

 

curl --user moi@maison.net:TopSecret 'http://192.168.1.33:11111/api/callAction?deviceID=123&name=setProperty&arg1=ui.Label1.value&arg2=46%20kWh'

Bon moi je voulais que le chiffre soit dynamique, je l'ai donc mis dans une variable $production et j'ai une requête SQL qui donne la valeur de $production , ce qui me donne :

 

curl --user moi@maison.net:TopSecret 'http://192.168.1.33:11111/api/callAction?deviceID=123&name=setProperty&arg1=ui.Label1.value&arg2='$production'%20kWh'

 

Et forcément j'ai une crontab qui fait tourner ce script toutes les 5 minutes

 

Résultat :

 

image.png.9d9d735805c8e3ff21803b189d9af989.png


 

CQFD :60:

 

Modifié par fel-x
correction image
  • Like 2
Posté(e) (modifié)

Allez pour la route un bel exemple de ce qui est faisable pour surveiller un Raspberry :

 

D'abord un petit module virtuel (disons qu'il a l'ID 321) que je nomme "Raspberry Pi" (et une jolie icône au passage) auquel j'ajoute 3 étiquettes : "En ligne", "Libre" et "CPU" dont les ID respectifs sont Raspi1, Raspi2 et Raspi3.

 

image.thumb.png.e9d711841811b23b46039b97c6d0fc3b.png

 

Puis le code dans un script SHELL :

(notez que les espaces ne passent pas dans les variables, il y a donc plusieurs variables et j'emploie %20 dans les arguments)

#!/bin/bash

## Calcul du UPTIME
let upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
let mins=$((${upSeconds}/60%60))
let hours=$((${upSeconds}/3600%24))
let days=$((${upSeconds}/86400))
jours=$(printf "%dj" "$days")
heures=$(printf "%02dh" "$hours")
minutes=$(printf "%02dm" "$mins")
curl --user email@domaine.com:motdepasse 'http://192.168.x.x:11111/api/callAction?deviceID=321&name=setProperty&arg1=ui.Raspi1.value&arg2='$jours'%20'$heures'%20'$minutes'' > /dev/null 2>&1

## Calcul de l'espace libre
free_space=$(df -Ph | grep -E '^/dev/root' | awk '{ print $4 }')
total_space=$(df -Ph | grep -E '^/dev/root' | awk '{ print $2 }')
pi_espace_libre=$(echo $free_space)
pi_espace_total=$(echo $total_space)
curl --user email@domaine.com:motdepasse 'http://192.168.x.x:11111/api/callAction?deviceID=321&name=setProperty&arg1=ui.Raspi2.value&arg2='$pi_espace_libre'%20sur%20'$pi_espace_total'' > /dev/null 2>&1

## Calcul de la température du CPU
cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
cpuTemp1=$(($cpuTemp0/1000))
cpuTemp2=$(($cpuTemp0/100))
cpuTempM=$(($cpuTemp2 % $cpuTemp1))
pi_CPU_temp=$(echo $cpuTemp1"."$cpuTempM"ºC")
curl --user email@domaine.com:motdepasse 'http://192.168.x.x:11111/api/callAction?deviceID=321&name=setProperty&arg1=ui.Raspi3.value&arg2='$pi_CPU_temp'' > /dev/null 2>&1

Et le joli résultat :

 

image.png.76dfcdef0e16e8a6ad85b1e88d76834a.png

 

Bref, ça ouvre pas mal de possibilités :yes:

 

Si vous avez des bonnes idées, je suis preneur !

 

 

raspi_logo.png

Modifié par fel-x
Posté(e) (modifié)

@jojo en effet c'est l'esprit...

Je suis convaincu qu'il est préférable de se creuser la cervelle plutôt que le portefeuille.

J'ai trouvé qu'il existe un moteur LUA sur unix alors éventuellement on peut trouver une solution à tout pour la HCL...

 

Mais bon c'est un hobbie hein ! j'ai aussi un vrai job !!! :P

Modifié par fel-x
×
×
  • Créer...