Arrondir Mesure Delat T°

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 <\>.
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Arrondir Mesure Delat T°

Message par balajol »

Bonsoir,
J'ai récupéré ce petit script Lua sur le forum (Je ne sait plus ou, Toutes mes excuses à l' auteur :oops: )et adapté à mes sondes;

Code : Tout sélectionner

 commandArray = {}
        if (devicechanged['Sonde-4-Univ-1-H-Bal.1000L'])
        then
           if (otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'] >= 0)
           then
             commandArray['UpdateDevice'] = 561 .. '|0|'.. tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'])
           end
    end
 

        return commandArray
Je voudrai avoir la valeur retournée avec 1 Chiffre après la virgule (Actuellement 14 :( )
Pourriez vous m'aider ?
Par avance Merci
Cdt
Bertrand
Dernière modification par balajol le 21 nov. 2016, 23:26, modifié 1 fois.
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Arrondir Mesure Delat T°

Message par thier »

J'utilise cette fonction pour arrondir un calcul

Code : Tout sélectionner

-- Fonction Arrondir à deux décimales
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
il suffit de l'utiliser dans ton script sous la forme arrondir (ton calcul,2). 2 c'est pour avoir deux décimales
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.
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Re: Arrondir Mesure Delat T°

Message par balajol »

Bonsoir Thiers,
Merci de ta réponse
J'ai bien vu cette fonction dans un script mais n'ai pas réussi à l'intégrer.
Je découvre mais un peu trop d'information à digérer..
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Arrondir Mesure Delat T°

Message par thier »

resultat = arrondir(tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L']),2)
comme je disais arrondir (ton calcul "tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'])" puis "," puis "2" si tu veux 2 décimales)

puis commandArray['UpdateDevice'] = 561 .. '|0|'..resultat
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.
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Re: Arrondir Mesure Delat T°

Message par balajol »

Re,
Merci de ton aide mais je bute toujours, essayé en enlevant la condition de changement d'état sonde 4, avec d'autres sondes idem ..
"Résultat" doit être incorporé comment ?
Désolé surement question de "base" mais mes journées sont trop courtes, bien compliqué pour le néophyte (Je ne suis pas informaticien)
Merci encore de ton aide
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Arrondir Mesure Delat T°

Message par deennoo »

thier a écrit :resultat = arrondir(tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L']),2)
comme je disais arrondir (ton calcul "tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'])" puis "," puis "2" si tu veux 2 décimales)

puis commandArray['UpdateDevice'] = 561 .. '|0|'..resultat
Stp est ce que tu peux mettre un exemple d'integration de ta fonction ?

Pour mon cas c'est bon car j'ai fait les calcul avant le command array, par contre comment integerer dans le meme script que balajol stp ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Arrondir Mesure Delat T°

Message par thier »

ça donnerai

Code : Tout sélectionner

-- Fonction Arrondir à deux décimales
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
 commandArray = {}
        if (devicechanged['Sonde-4-Univ-1-H-Bal.1000L'])  then
           if (otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L'] >= 0)
           then
           resultat = arrondir(tostring(otherdevices_temperature['Sonde-4-Univ-1-H-Bal.1000L'] - otherdevices_temperature['Sonde-1-Univ-1-Bas-Ballon-1000L']),1) 
             commandArray['UpdateDevice'] = 561 .. '|0|'.. resultat
           end
 end
 return commandArray
Dernière modification par thier le 21 nov. 2016, 20:51, modifié 1 fois.
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.
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Arrondir Mesure Delat T°

Message par deennoo »

A bah voila j'avais une incertitude sur ou mettre resultat
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Re: Arrondir Mesure Delat T°

Message par balajol »

Bonsoir,
Merci de vos retours, a priori une erreur de syntaxe :(
Erreur_Arrondi.JPG
Erreur_Arrondi.JPG (89.54 Kio) Consulté 8967 fois
J'ai essayé d' ajouter end à plusieurs endroits mais sans résultat.
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Arrondir Mesure Delat T°

Message par deennoo »

Deux end a la fin de la fonction, une pour le if une pour la fonction.

J'ai decouvert cela cet après midi pour le script des moyennes.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Répondre