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

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

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

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
mulot35
Messages : 200
Inscription : 20 déc. 2014, 00:27

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

Message par mulot35 »

Salut,
ca devrai d'aider

viewtopic.php?f=7&t=158&start=30
Message par snips » 08 mai 2015, 12:17
Raspi B+ avec Domoticz ,6 Chacon 2300W , 6 Sondes Oregon, 1 Sonde DIY Oregon ds18b20, Téléinfo sur photovoltaique, script backup ftp & anti offline.
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

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

Message par thier »

Merci mulot35 lais je ne sais pas ou chercher ma reponse.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

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

Message 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..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

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

Message 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?
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

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

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

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

Message 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
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

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

Message 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 ;)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

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

Message par thier »

Merci à tous. Tous mes chiffres sont arrondis correctement.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Répondre