Calculer la durée d'allumage

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 <\>.
AlexElectro
Messages : 55
Inscription : 18 juil. 2015, 22:13

Calculer la durée d'allumage

Message 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?
Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Calculer la durée d'allumage

Message 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
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
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Calculer la durée d'allumage

Message 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.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
AlexElectro
Messages : 55
Inscription : 18 juil. 2015, 22:13

Re: Calculer la durée d'allumage

Message 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.
Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Calculer la durée d'allumage

Message 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.
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
AlexElectro
Messages : 55
Inscription : 18 juil. 2015, 22:13

Re: Calculer la durée d'allumage

Message par AlexElectro »

Bon, je vais faire quelques essais et je posterais mes résultats
Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Calculer la durée d'allumage

Message 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.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
AlexElectro
Messages : 55
Inscription : 18 juil. 2015, 22:13

Re: Calculer la durée d'allumage

Message 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')
Domoticz sur RPi - RfxCom - Sondes oregon DIY - Bus one wire - sondes DS18B20 - BMP085 - Home confort
http://electro.bassignyinformatique.fr/
Répondre