[LUA+Bash] Calcul de DJU

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Calcul de DJU

Message par papoo »

pour ma commune le coefficient gaz du moment est de 10.83 kWh/m3
Dernière modification par papoo le 29 déc. 2017, 09:57, modifié 1 fois.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
benbidouille
Messages : 102
Inscription : 11 déc. 2017, 11:48

Re: Calcul de DJU

Message par benbidouille »

Papoo,

Je n'ai pu résister à l'envie d'implémenter ton dernier script méthode intégrale, dans un premier temps sans le comptage d'nrj.

Fonctionnement au top, avec cependant juste un petit questionnement probablement lié à mon setup de compteur.

Avec une mise en service peu de temps avant les 23:59, la variable "somme DJU" comportait une valeur décimale de 0.5244444444444.
Le compteur du DJU a bien été mis à jour à 23:59 mais avec seulement la valeur absolue, il affiche donc 0 avec de fait une imprécision non négligeable.

Totalement bizu en Lua , et devant admettre être un peu perdu de par le fait que tout se fait en traitement de chaines de caractère avec une syntaxe nouvelle pour moi et un peu déroutante ;) je ne sais dire si il s'agit d'un problème de cast dans ton code lua ou de setup dans mon compteur.

Encore Merci pour ce super job.
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Calcul de DJU

Message par papoo »

le script ne collecte qu'une fois par jour les dju justement pour cela. le compteur n'accepte apparemment pas les valeurs inférieures à un. je ne fais un arrondi qu'a une décimale (fonction round) lors de l'injection dans le compteur
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Calcul de DJU

Message par papoo »

nouvelle modif de script pour la collecte de l’énergie consommée, en direct plutôt qu'une fois par jour avec suppression d'une variable utilisateur
2017-12-29 10_02_19-Domoticz.png
2017-12-29 10_02_19-Domoticz.png (13.95 Kio) Consulté 6799 fois
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
benbidouille
Messages : 102
Inscription : 11 déc. 2017, 11:48

Re: Calcul de DJU

Message par benbidouille »

Aussitôt publié, aussitôt mis en service, merci :D
J'avais identifié ton round 1 dans le code, étonnant le cas du compteur qui perd les décimales lorsque < 1, A suivre .....
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Calcul de DJU

Message par papoo »

allez dernière mise à jour du script avant le week end. promis j'y touche plus à moins que l'on me remonte un bug
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
benbidouille
Messages : 102
Inscription : 11 déc. 2017, 11:48

Re: Calcul de DJU

Message par benbidouille »

Bonsoir Papoo,

J'ai fais la mise a jours en attendant désormais les premières constatations :D

Je sollicite ton aide pour le debug du calcul de DJU méthode Meteo France en utilisant tes scripts.
Après prés de 48h, je ne dispose toujours pas de valeur de DJU dans le compteur alloué à cet effet.

Les variables Tn, Tn_Hold, Tx et Nb Jours de Chauffage sont mises à jours conformément aux évolutions de température de la sonde utilisée ainsi que sous l'effet des deux scripts lancés à 6:00 et 18:00 par crontab.

Je me suis lancé à regarder les codes et ai interprété que le script calcul_dju.lua situé dans le répertoire /lua_parser n'était jamais éxécuté.

Je crois comprendre que ce qui est dans le répertoire /lua est lancé périodiquement automatiquement à la différence de ce qui est situé dans /lua_parser aussi en regardant le script lance_calcul_dju.sh je me suis rendu compte qu'était commenté la commande suivante, que j'ai interprété comme nécessaire. (peut être à tord)

#curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevices&script=calcul_dju.lua"

Une fois rétablit, calcul_dju.lua s'éxécute désormais mais plante avec l'erreur suivante correspondant à la ligne de code ci-dessous associée.

CLuaHandler: /home/pi/domoticz/scripts/lua_parsers/calcul_dju.lua:49: attempt to index global 'uservariablechanged' (a nil value)
if uservariablechanged[var_chauffage] then

Je devine qu'il s'agit ici d'un test de mise a jour récente dans la base Domoticz de la variable Nb Jours de Chauffage, selon les log d’exécution du script lance_calcul_dju.sh, nul doute que la variable est-bien incrémentée juste avant le calcul des DJU attendu.

Mes hypothèses selon laquelle calcul_dju.lua doit être décoché pour être éxécuté est elle pertinente ?
Si confirmé alors, bizarrement commenté, ce pourrai t’il que le script calcul_dju.lua proposé sur le forum ne soit pas dans sa version finale ? et que je sois le premier bizu à essayer ton script depuis le forum ?

Je découvre, Lua, la syntaxe, les variables etc ..... tout est très différent du C, merci d'avance pour le coup de pouce et ta compréhension.
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Calcul de DJU

Message par papoo »

Je ne serais pas devant lordi avant dimanche
Je regarde cette histoire de fichier dans Luna poser qui ne me dis plus rien et je reviens vers toi
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
thuglife
Messages : 35
Inscription : 28 janv. 2017, 23:08

Re: Calcul de DJU

Message par thuglife »

Bonjour,

J'ai cela comme erreur vous pouvez m'aider ?
2017-12-30 21:32:20.689 Error: EventSystem: in CalculDJU: [string "--[[ ..."]:118: attempt to concatenate field '?' (a nil value)
Cdt

PS : J'avais pas renseigné de valeur dans les variable user. Désolé

Par contre étant donné que le travail est fait pour les DJU, nous pourrions intégrer également dans le même script le calcul des DJC qui est simplement l'inverse ? Utile pour la clim.
benbidouille
Messages : 102
Inscription : 11 déc. 2017, 11:48

Re: Calcul de DJU

Message par benbidouille »

Papoo,
Pas de soucis, pas d'urgence, j'en profite pour parcourir les forums et m'instruire sur l'esprit domoticz et lua, ce qui d'ailleurs m'amène à la constatation suivante concernant mon installation et problème de calcul de DJU méthode Météo France.

Lors de l'installation j'ai créer le fichier calcul_dju.lua que j'ai placé sous ~/domoticz/scripts/lua_parsers/calcul_dju.lua conformément au commentaire du fichier fournit.

Ceci n'est pas cohérent concernant le nom du fichier avec ton instruction d'installation "ensuite créez un fichier script_variable_calcul_dju.lua"

Donc, je soupconne désormais que mon installation est incorrecte:
- Le script doit s'appeller script_variable_calcul_dju.lua et être situé ~/domoticz/scripts/lua
- La ligne de lancement du calcul du script lance_calcul_dju.sh doit demeurée commentée. (probablement à usage de debug)

J'essaye tout cela, mon manque d'objectivité de domoticz ne m'a pas permit de prendre le bon choix losrque j'ai été confronté à l'incohérence.

Je crois comprendre que déclaré en script_variable_xxxxxxx le script sera alors éxécuté automatiquement par domoticz a chaque changement de Variable ce qui sera cohérent avec le test exécuté ligne 49.

A suivre .......
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
Répondre