Page 1 sur 1

compteur HC HP

Publié : 19 févr. 2015, 09:35
par jackslayter
bonjour, j'ai fait un script pour compter la conso en heures pleines et creuses.

Code : Tout sélectionner

commandArray = {}
time = os.date("*t")
owl, total = otherdevices_svalues['cm180']:match("([^;]+);([^;]+)")
owl = tonumber(owl)
if devicechanged['cm180'] then
if (((time.hour > 1) and (time.hour < 7)) or ((time.hour > 11) and (time.hour < 13))) then
commandArray['UpdateDevice'] = '178|0|' .. owl
else
commandArray['UpdateDevice'] = '177|0|' .. owl
end
end
return commandArray
mais ça fait n'importe quoi, j'ai des valeurs à 10E18 :o
avez vous vu quelque chose qui fait la même chose et qui marche

Re: compteur HC HP

Publié : 19 févr. 2015, 15:23
par jackslayter
petite question comme faire un compteur sous lua

Code : Tout sélectionner

totalhp = 0
totalhp = totalhp + 1
if (time.min == 59) then
print('totalhp ' .. totalhp)
--reset du compteur
bien sur ce code ne marche pas

merci

Re: compteur HC HP

Publié : 19 févr. 2015, 16:12
par patrice
Bonjour
Tu es sur que le time.min fait le job ?
Pas de bibliotheque à importer, c'est 59 ou "59" la valeur à tester

J'y ça, j'dis rien car le Lua ...

Re: compteur HC HP

Publié : 19 févr. 2015, 18:16
par jackslayter
En fait je veux compter les valeurs du cm180 pendant une heure
Envoyer le total et le remettre à zéro l'heure d'après

Re: compteur HC HP

Publié : 19 févr. 2015, 19:05
par vil1driver
@patrice,

time.min fait le job, d'ailleur il y a la série complète :D year, month, day, hour, min, sec
mais uniquement si au début de ton script tu as mis

Code : Tout sélectionner

time = os.date("*t")
et oui tu testes direct la valeur 59 sans les guillemets

@jackslayter,

pour ton compteur lua il te faut une 'variable utilisateur', car lua ne mémorise rien.
à chaque fois que ton script est lancé, totalhp est remis à 0.

pour le premier script..essai comme ça :

Code : Tout sélectionner

owl, total = string.match(otherdevices_svalues['cm180'], "(%d+%.*%d*);(%d+%.*%d*)")

Re: compteur HC HP

Publié : 19 févr. 2015, 19:45
par jackslayter

Code : Tout sélectionner

mmandArray = {}
time = os.date("*t")
owl, total = string.match(otherdevices_svalues['cm180'], "(%d+%.*%d*);(%d+%.*%d*)")
owl = tonumber(owl)
if devicechanged['cm180'] then
      if (((time.hour > 1) and (time.hour < 7)) or ((time.hour > 11) and (time.hour < 13 ))) then
-- compteur pour une heure
      totalhc = totalhc + owl -- comment faire le compte ??
               if (time.min == 59) then
              commandArray['UpdateDevice'] = '181|0|' .. totalhc
              -- reset du compteur
              end
      end
end
return commandArray

Re: compteur HC HP

Publié : 19 févr. 2015, 19:49
par vil1driver
configuration > plus d'options > variables utilisateurs

Re: compteur HC HP

Publié : 19 févr. 2015, 20:11
par jackslayter
j y ai pensé mais je croyais que l'on pourrait le faire avec des variables internes

Re: compteur HC HP

Publié : 19 févr. 2015, 21:36
par vil1driver
non elle ne sont valables que le temps d'exécution du script, au second lancement tout est oublié,
tu n'as pas le choix, il te faut stocker ta valeur dans une variable utilisateur ou un compteur virtuel.

Re: compteur HC HP

Publié : 13 mars 2015, 09:05
par jackslayter