Page 12 sur 13

Re: Calcul de DJU

Publié : 29 janv. 2019, 18:46
par denis_brasseur
Merci papoo, tes script sont une merveille : documentés, indentés, faciles à utiliser.

J'utilisais le script initial dans sa V1.3, je suis passé à la V3.5.

J'ai 2 interrogations sur 2 fonctionnalités de ce script :

Ligne 45 du script initial :

Code : Tout sélectionner

on = {
        timer   = { 'on 01/10-20/05 at 06:02', 'on 01/10-20/05 at 18:02' },
        devices = { device_temp_ext } 	-- nom de la sonde de température/humidité extérieure'
    },
Rien ne s'exécute, alors que

Code : Tout sélectionner

timer   = { 'at 06:02', 'at 18:02' },
s'exécute correctement aux heures indiquées.

Autre anomalie, bloquante celle ci puisque retourne une erreur :

Code : Tout sélectionner

2019-01-29 18:21:00.646 Status: dzVents: Info: DJU Méthode COSTIC v2.5: ------ Start external script: dju_methode_COSTIC.lua:, trigger: at 18:21
2019-01-29 18:21:00.689 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: Processing device-adapter for dev_temp_hum_baro: Temperature+humidity+barometer device adapter
2019-01-29 18:21:00.689 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- Température Ext : 5.5 °C
2019-01-29 18:21:00.691 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- température maximale du jour : 7.7 °C
2019-01-29 18:21:00.691 Status: dzVents: Error (2.4.6): DJU Méthode COSTIC v2.5: An error occured when calling event handler dju_methode_COSTIC
2019-01-29 18:21:00.691 Status: dzVents: Error (2.4.6): DJU Méthode COSTIC v2.5: .../domoticz/scripts/dzVents/scripts/dju_methode_COSTIC.lua:101: attempt to index a nil value
2019-01-29 18:21:00.691 Status: dzVents: Info: DJU Méthode COSTIC v2.5: ------ Finished dju_methode_COSTIC.lua
La ligne 101 correspond chez moi à ceci (ajout de commentaires qui explique ce décalage, chez toi, il s'agit de la ligne 80) :

Code : Tout sélectionner

 Tnj = domoticz.data.Tn.getLatest().data
Merci de ton retour, autant sur l'explication de 'getLatest' que de l'anomalie en elle même.

Re: Calcul de DJU

Publié : 29 janv. 2019, 21:39
par papoo
ce script DZvents utilise les données persistantes via un fichier qui ce trouve la chez moi

Code : Tout sélectionner

/home/pi/domoticz/scripts/dzVents/data/__data_dju_methode_COSTIC.lua
vérifie l'existence dans ce fichier de données formatées comme ceci :

Code : Tout sélectionner

	["Tn"] = {
		[1] = {
			["time"] = "2019-1-29 5:2:1.438";
			["data"] = 0.89999997615814;
		};
	};
Tn s'incrémente seulement à 6h02 du matin. si tu démarre ton script pour la première fois après cette heure ou si ton syteme est trop occupé pour le calculer à cette heure (c'est pour cela que je le calcul à 6:02 et non à 6:00), il n'y a effectivement pas de Tn ce qui peut peut-être provoquer l'erreur.
2019-01-29 21_37_39-Domoticz.png
2019-01-29 21_37_39-Domoticz.png (16.24 Kio) Consulté 6484 fois
getLatest().data va seulement chercher la première valeur data. C'est identique à get(1).data


pour ta première remarque je tentais seulement de répondre à l'interrogation de calouis. selon la doc ça devrait fonctionner mais personnellement je n'utilise pas. je vais donc l'enlever et tenter de palier au défaut ci-dessus

Re: Calcul de DJU

Publié : 29 janv. 2019, 22:07
par denis_brasseur
Ok, j'ai implémenté le script après 06h02.
J'ai bien le fichier __data_dju_methode_COSTIC.lua, mais la donnée ["Tn"] = { }; est vide.

Code : Tout sélectionner

["Tn"] = {
        };
J'ai remplacé getLatest().data par get(1).data, meme message d'erreur.

J'attend demain voir comment cela évolue.

Merci.

Re: Calcul de DJU

Publié : 29 janv. 2019, 22:17
par papoo
le calcul ne sera incrémenté qu'a 06:02 donc erreur jusque la. je tente de corriger cela

Re: Calcul de DJU

Publié : 30 janv. 2019, 06:19
par denis_brasseur
Le timer dans ce format à l'air de passer

Code : Tout sélectionner

timer   = {'at 06:08 on 01/10-31/12' , 'at 18:02 on 01/10-31/12', 'at 06:08 on 01/01-20/05', 'at 18:02 on 01/01-20/05'},

Code : Tout sélectionner

------ Start external script: dju_methode_COSTIC.lua:, trigger: at 06:08 on 01/01-20/05

Re: Calcul de DJU

Publié : 30 janv. 2019, 18:47
par denis_brasseur
Après 24 h, cela fonctionne,

Code : Tout sélectionner

Tnj = domoticz.data.Tn.getLatest().data
retourne bien une valeur et met à jour le device.

Concernant

Code : Tout sélectionner

timer   = {'at 06:02 on 01/10-31/12' , 'at 18:02 on 01/10-31/12', 'at 06:02 on 01/01-20/05', 'at 18:02 on 01/01-20/05'},
cela fonctionne également.

Mais dans ce cas, il convient de remplacer, ligne 71 du script initial

Code : Tout sélectionner

if (item.trigger == 'at 06:02') then
par

Code : Tout sélectionner

if (item.trigger == 'at 06:02 on 01/10-31/12' or item.trigger == 'at 06:02 on 01/01-20/05') then
et de remplacer ligne 77 du script initial

Code : Tout sélectionner

if (item.trigger == 'at 18:02') then
par

Code : Tout sélectionner

if (item.trigger == 'at 18:02 on 01/10-31/12' or item.trigger == 'at 18:02 on 01/01-20/05') then
Le log :

Code : Tout sélectionner

2019-01-30 18:28:00.201 Status: dzVents: Info: DJU Méthode COSTIC v2.5: ------ Start external script: dju_methode_COSTIC.lua:, trigger: at 18:28 on 01/01-20/05
2019-01-30 18:28:00.267 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: Processing device-adapter for dev_temp_hum_baro: Temperature+humidity+barometer device adapter
2019-01-30 18:28:00.267 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- Température Ext : 4.8 °C
2019-01-30 18:28:00.268 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- température maximale du jour : 8.8000001907349 °C
2019-01-30 18:28:00.269 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- température minimale du jour : 1.7000000476837 °C
2019-01-30 18:28:00.269 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- température moyenne du jour : 5.2500001192093 °C
2019-01-30 18:28:00.269 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- Le Seuil de 18°C est supérieur à la température maximum atteinte lors des dernières 24 heures (8.8000001907349°C)
2019-01-30 18:28:00.269 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- djc : 13
2019-01-30 18:28:00.271 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: Processing device-adapter for DJU méthode COSTIC: Custom sensor device adapter
2019-01-30 18:28:00.271 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- compteur avant mise à jour DJU méthode COSTIC: nil DJU
2019-01-30 18:28:00.271 Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- mise à jour compteur DJU méthode COSTIC: 13 DJU
2019-01-30 18:28:00.279 Status: dzVents: Info: DJU Méthode COSTIC v2.5: ------ Finished dju_methode_COSTIC.lua
Encore merci

Re: Calcul de DJU

Publié : 23 févr. 2019, 08:28
par denis_brasseur
Bonjour papoo,

depuis 2 jours, une erreur est apparu dans les log :

Code : Tout sélectionner

Status: dzVents: Info: DJU Méthode COSTIC v2.5: ------ Start external script: dju_methode_COSTIC.lua:, trigger: at 08:03 on 01/01-20/05
Status: dzVents: Debug: DJU Méthode COSTIC v2.5: Processing device-adapter for dev_temp_hum_baro: Temperature+humidity+barometer device adapter
Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- température maximale du jour : 18.89999961853 °C
Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- température minimale du jour : 7.9000000953674 °C
Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- température moyenne du jour : 13.399999856949 °C
Status: dzVents: Debug: DJU Méthode COSTIC v2.5: --- --- --- a : 10.099999904633
Status: dzVents: Error (2.4.6): DJU Méthode COSTIC v2.5: An error occured when calling event handler dju_methode_COSTIC
Status: dzVents: Error (2.4.6): DJU Méthode COSTIC v2.5: .../domoticz/scripts/dzVents/scripts/dju_methode_COSTIC.lua:120: attempt to perform arithmetic on global 'temp_maxi' (a nil value)
Status: dzVents: Info: DJU Méthode COSTIC v2.5: ------ Finished dju_methode_COSTIC.lua

Code : Tout sélectionner

Status: dzVents: Error (2.4.6): DJU Méthode COSTIC v2.5: An error occured when calling event handler dju_methode_COSTIC
Status: dzVents: Error (2.4.6): DJU Méthode COSTIC v2.5: .../domoticz/scripts/dzVents/scripts/dju_methode_COSTIC.lua:120: attempt to perform arithmetic on global 'temp_maxi' (a nil value)
Et après recherche dans le script d'origine, je ne comprend d'ou provient la variable temp_maxi (ligne 89)

Code : Tout sélectionner

                local b = temp_maxi - Tnj
                domoticz.log("--- --- --- b : "..tostring(b), domoticz.LOG_DEBUG)
Cette erreur correspond au fait que la température max (18.89999961853 °C) est supérieur à la valeur de S (S = 18).
Il ne devrait pas s'agir plutot de Txj ?

Code : Tout sélectionner

	--local b = temp_maxi - Tnj
	local b = Txj - Tnj

Re: Calcul de DJU

Publié : 23 févr. 2019, 13:16
par papoo
cela vient du fait que j'ai repris une partie de mon ancien script en modifiant le nom des variables mais je n'avais pas testé cette fonction la vue les températures ext au moment de la réalisation de ce script.
Merci pour le débogage
j'ai mis à jour le github
https://github.com/papo-o/domoticz_scri ... COSTIC.lua

Re: Calcul de DJU

Publié : 05 févr. 2021, 22:14
par Vincent835
Bonjour,

J'ai installé ce script v2.7, mais j'ai cette erreur :

Code : Tout sélectionner

2021-02-05 21:59:13.670 Error: dzVents: Error: (3.1.3) DJU Méthode COSTIC v2.7: An error occurred when calling event handler dju_methode_COSTIC
2021-02-05 21:59:13.670 Error: dzVents: Error: (3.1.3) DJU Méthode COSTIC v2.7: .../domoticz/scripts/dzVents/scripts/dju_methode_COSTIC.lua:72: attempt to index a nil value
La ligne 72 correspond à :

Code : Tout sélectionner

domoticz.log("--- --- --- nombre d\'heure depuis la dernière maj de Tn : ".. tostring(domoticz.data.Tn.getLatest().time.hoursAgo), domoticz.LOG_DEBUG)
J'ai rajouté le fichier tel qu'indiqué :
papoo a écrit : 29 janv. 2019, 21:39 ce script DZvents utilise les données persistantes via un fichier qui ce trouve la chez moi

Code : Tout sélectionner

/home/pi/domoticz/scripts/dzVents/data/__data_dju_methode_COSTIC.lua
vérifie l'existence dans ce fichier de données formatées comme ceci :

Code : Tout sélectionner

	["Tn"] = {
		[1] = {
			["time"] = "2019-1-29 5:2:1.438";
			["data"] = 0.89999997615814;
		};
	};
J'ai patienté plus de 24h, mais il y a toujours cette erreur et le compteur reste à zéro.
Ai-je oublié quelque chose?

Merci

Vincent

Re: Calcul de DJU

Publié : 11 févr. 2021, 21:02
par Vincent835
Bonjour,

Ca y est, je suis arrivé à faire fonctionner le script en bricolant.
J'ai supprimé le fichier data que j'avais ajouté manuellement mais qui n'avait pas la bonne structure.
J'ai désactivé les lignes 72, 73 et 77 qui faisaient appel à 'domoticz.data.Tn.getLatest().time.hoursAgo' afin que le script puisse réaliser les actions d'enregistrement dans le fichier data.
Une fois le fichier data généré, j'ai réactivé ces lignes.
Ca a l'air de marcher.