Page 1 sur 1
Calculer la durée d'allumage
Publié : 15 janv. 2016, 19:16
par AlexElectro
Bonjour à tous
je cherche à créer un script lua qui calculerait la durée de fonctionnement journalier d'un dispositif.
Par exemple, il serait capable de dire 'la lampe x a été allumée 1h30 entre le 10 janvier et le 11 janvier'.
Mon problème c'est que je n'arrive pas à trouver une fonction qui corresponde à ma requête.
Quelqu'un aurait une idée?
Re: Calculer la durée d'allumage
Publié : 15 janv. 2016, 20:02
par vil1driver
Salut,
Je dirais rapidement..
Faire un script device
Detecter front montant On
Memoriser un os.time() dans une variable
Detecter un front montant Off
Faire la différence entre un os.time() et celui memorisé
Sauver (ajouter) le résultat dans une autre variable
Re: Calculer la durée d'allumage
Publié : 15 janv. 2016, 20:04
par rimram31
Idée oui, le faire c'est autre chose
Stocker dans une variable associée (variable domoticz) le dernier changement d'etat du device avec la date/heure (otherdevices_lastupdate). A l'appel suivant tu pourras donc calculer l'écart et mettre a jour un compteur avec indice journalier par ex.
Re: Calculer la durée d'allumage
Publié : 15 janv. 2016, 20:19
par AlexElectro
Effectivement ça va pas être simple, mais si c'est la seule possibilité....
En fait, dans mon rêve

, j'imaginais pouvoir récupérer ces données dans Domoticz puisqu'elles existent. Toutes ces informations sont bien stockées quelque part pour alimenter les rapports et autres tableaux.
Re: Calculer la durée d'allumage
Publié : 15 janv. 2016, 20:25
par vil1driver
Il me semble que les rapports sont générés au moment de les afficher..
Et si c'est simple, 2 à 3 commandes à utiliser..
Lire etat périphérique
Lire/ecrire variable
Lire/calculer le temps os.time os.difftime
Le tout est d'être logique.. C'est toujours ça le plus difficile et demande de bien penser au déroulement..
Et d'écrire en toute lettre avant de chercher à coder..
Pour le front montant, il va également falloir une variable pour mémoriser l'état précédent..
3 variables en tout.
Re: Calculer la durée d'allumage
Publié : 15 janv. 2016, 20:45
par AlexElectro
Bon, je vais faire quelques essais et je posterais mes résultats
Re: Calculer la durée d'allumage
Publié : 16 janv. 2016, 10:51
par rimram31
AlexElectro a écrit :.... En fait, dans mon rêve

, j'imaginais pouvoir récupérer ces données dans Domoticz puisqu'elles existent...
Oui et non puisque domoticz a bien un historique mais cet historique est limité dans le temps, je ne sais pas d'ailleurs sur quels critères: journalier, n derniers ???
Ton rêve est un peu différent de ce que tu décris plus haut. Si ton idée est de pouvoir faire des rapports plus élaborés que ce qu'offre dz, tu peux peut-être prendre les choses différemment par un script régulier par exemple qui extrairai les informations que tu souhaites (appel http, requête db ?) ou développer un service dédié qui dupliqueraient les données (une piste a laquelle je réfléchis via les notifications).
Pour l'historique en http, j'avais décrit quelques appels ici:
viewtopic.php?f=17&t=1347#p11570 Pour l'accès direct a la db domoticz, on doit trouver des exemples de requêtes SQL. Je suis moyen sur l'accès db car on est pas a l'abri d'une évolution du schema par les dev domoticz.
Re: Calculer la durée d'allumage
Publié : 22 janv. 2016, 14:43
par AlexElectro
Je pense que la meilleur solution reste l'accès DB mais ça me semble compliqué.
En attendant, j'ai résolu mon problème en ajoutant une minute à une variable utilisateur à chaque exécution d'un script_time :
Code : Tout sélectionner
commandArray['Variable:Chrono_chauffage_evrard']= tostring(uservariables["Chrono_chauffage_evrard"] +1)
print('Une minute ajoutée à Chrono_chauffage_evrard')