Page 1 sur 1

recuperer dans un script lua le résultat d'un .sh

Publié : 20 janv. 2016, 19:24
par thier
Bonjour,
J'essaie de calculer le coût de mon chauffage. Avec un script .sh je récupérer la valeur du compteur. Je ne sais pas comment récupérer cette valeur dans mon script lua pour faire le calcul du coût.
J'en profite si quelqu'un sait comment fixer le nombre de décimale du résultat.

Re: recuperer dans un script lua le résultat d'un .sh

Publié : 20 janv. 2016, 20:28
par mulot35
Salut,
ca devrai d'aider

viewtopic.php?f=7&t=158&start=30
Message par snips » 08 mai 2015, 12:17

Re: recuperer dans un script lua le résultat d'un .sh

Publié : 20 janv. 2016, 20:39
par thier
Merci mulot35 lais je ne sais pas ou chercher ma reponse.

Re: recuperer dans un script lua le résultat d'un .sh

Publié : 20 janv. 2016, 22:07
par vil1driver
Salut,

Peut être voir le wiki sur json.. Pour renseigner une variable ou capteur texte depuis ton script sh..

Ou lancer ton sh depuis un script lua et récupérer le résultat..

Re: recuperer dans un script lua le résultat d'un .sh

Publié : 20 janv. 2016, 22:23
par thier
Pour récupérer la valeur de mon compteur virtuel et renseigner un virtuel texte depuis mon script sh, c'est ok.
#!/bin/bash
result=$(curl -s "http://192.168.0.25:8080/json.htm?type=devices&rid=132"| jq -r .result[].CounterToday)
resultat=`echo $result |cut -f2 -d":"|cut -f1 -d"}"| tr -d ' '`
curl -s "http://192.168.0.25:8080/json.htm?type= ... =$resultat"
fi

Pour lancer mon sh depuis un script lua et récupérer le résultat, ça se complique.
pour lancer le sh c'est ok mais j'ai un log d'alerte pour durée de plus de 10 secondes. Il faut que je conditionne le lancement du script
commandArray = {}
local result = os.execute('bash /home/pi/domoticz/scripts/sh/parsecompteurchauffageglobal.sh
return commandArray

Par contre comment récupérer dans ce script la valeur de result?

Re: recuperer dans un script lua le résultat d'un .sh

Publié : 20 janv. 2016, 23:49
par thier
C'est bon je récupère la valeur. par contre si quelqu'un sait arrondir les calculs à deux chiffres après la virgule.

Re: recuperer dans un script lua le résultat d'un .sh

Publié : 21 janv. 2016, 08:18
par jackslayter

Code : Tout sélectionner

valeur = arrondir(valeur,2)
sources:

Code : Tout sélectionner

print("RadiationDirecte = ".. arrondir(RadiationDirecte,2) .." W/m²")
viewtopic.php?f=17&t=1340

Re: recuperer dans un script lua le résultat d'un .sh

Publié : 21 janv. 2016, 11:06
par vil1driver
pour aller jusqu'au bout de sa réponse

Code : Tout sélectionner

-- Fonction Arrondir
function arrondir(num, dec)
   if num == 0 then
      return 0
   else
      local mult = 10^(dec or 0)
      return math.floor(num * mult + 0.5) / mult
   end
end
Mais plus simplement, il s'agit de supprimer toute décimales avec un math.ceil() ou math.floor() je te laisse voir la différence..
Mais avant tu plutiplies par 10, 100, 1000 au choix suivant le nombre de décimales soubaitées puis tu re divises d'autant après suppression des décimales.

En gros si tu pars de ce nombre

12.34567

Si tu veux arrondir à 2 chiffres après la virgule tu fais x100
Ce qui donne

1234.567

Un math.ceil(1234.567) donnera

1235

Puis tu divise par 100 ce qui donne

12.35

Et voila ;)

Re: recuperer dans un script lua le résultat d'un .sh

Publié : 21 janv. 2016, 18:44
par thier
Merci à tous. Tous mes chiffres sont arrondis correctement.