un widget qui affiche le nombre de litres consommés par heure...

Forum dédié au protocole MQTT : fonctionnement, intégration ...
Pour les questions concernant le plugin de FlyingDomotic, merci d'utiliser le sous-forum dédié.
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par marcus_54 »

je l'avais essayé, mais ce n'est pas ça n'e semble pas fonctionner...
Capture d'écran 2024-05-22 114527.png
Capture d'écran 2024-05-22 114527.png (49.24 Kio) Consulté 3446 fois
Je me lance en EzVents :?
CompteurEAU est le Widget qui à la valeur totale du compteur
ConsommationEau est le Widget qui devait afficher la consommation horaire
eau_actuel et une variable utilisateur de type décimal initialisé à 29.5

Code : Tout sélectionner

return {
	on ={ 
	    devices = {'CompteurEAU'},
	},    

	logging = {
		level = domoticz.LOG_INFO,
		marker = 'Conso Eau',
	},
	execute = function(domoticz, CompteurEAU)
		if (CompteurEAU > 'Variable:eau_actuel' ) then
        uservariables["eau_actuel"]= CompteurEAU
		domoticz.devices('ConsommationEau')=CompteurEAU
	end
}
2024-05-22 12:01:20.313 Error: dzVents: Error: (3.1.8) error loading module 'Consommation_Eau' from file '/home/pi/domoticz/scripts/dzVents/generated_scripts/Consommation_Eau.lua':
2024-05-22 12:01:20.313 ...z/scripts/dzVents/generated_scripts/Consommation_Eau.lua:13: syntax error near '='
2024-05-22 12:01:20.500 Error: dzVents: Error: (3.1.8) error loading module 'Consommation_Eau' from file '/home/pi/domoticz/scripts/dzVents/generated_scripts/Consommation_Eau.lua':
2024-05-22 12:01:20.500 ...z/scripts/dzVents/generated_scripts/Consommation_Eau.lua:13: syntax error near '='
Dernière modification par Keros le 22 mai 2024, 12:44, modifié 2 fois.
Raison : Modification des balises et suppression de la citation
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par Flying Domotic »

C'est peut-être "CompteurEAU" qui devrait être de type compteur. Du coup, pas besoin d'une autre widget, celui d'origine fait très bien l'affaire.

Pour dzVent, il peut être habile de lire d'abord https://www.domoticz.com/wiki/DzVents:_ ... _scripting
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par Keros »

Il vaut mieux que tu garde la syntaxe :

Code : Tout sélectionner

execute = function(domoticz, trigger)
Elle sera valable quelque soit ton script et trigger correspondra à l'élément qui le déclenche.

Et comme l'indique Flying Domotic regarde la documentation et aussi les petits guides que j'ai écrit : tu ne peux pas utiliser CompteurEAU pour définir le dispositif ainsi que sa valeur. Il faut ajouter un attribut au dispositifs pour récupérer sa valeur.

Je ne vois pas pourquoi tu cherches à vérifier si la consommation est supérieure ? Si c'est la même, le delta sera de zéro.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par marcus_54 »

Pour refaire un point :
À travers MQTT je reçois une valeur numérique du relevé du compteur environ toutes les minutes.

Cette valeur est affichée dans un widget idx:1136 appelé CompteurEau qui m'affiche la valeur du compteur d'eau et son évolution au fil du temps. Ce widget est sympa et je le garde.
J'aimerais afficher la consommation par intervalles de temps à l'aide d'un autre widget idx:1137 ConsommationEau

L'idée que j'ai du programme et le suivant :

lire la valeur du widget "CompteurEau"
si la valeur CompteurEau est supérieure à une variable (Eau_actuel) contenant la valeur du compteurEau mémorisé précédemment
alors écrire cette valeur (ou sa différence) dans ConsommationEau
Eau_actuel = CompteurEau
finsi[/code]

Si ce programme est correct il y a plus qu'à le mettre en œuvre en EzEvents
je comprends que vous me disiez d'aller voir la ou les docs et exemples EzEvents, ma finalité n'est pas à d'apprendre un nouveau langage, mais de faire ce foutu compteur.
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par marcus_54 »

ce que j'ai compris y a pas besoin de if puisque le "on" indique qu'il y a un changement d'état de "compteurEau"
Je n'ai pas trop compris comment est-ce qu'on lit ou écrit la valeur d'un widget entre device.domotic.value et compagnie….

Code : Tout sélectionner

return {
    on = {devices = {'CompteurEAU'},	},    

	logging = {
		level = domoticz.LOG_INFO,
		marker = 'Conso Eau',
	},
	execute = function(domoticz, trigger)
		domoticz.devices('ConsommationEau') = CompteurEAU.value-uservariables["eau_actuel"]
		uservariables["eau_actuel"]=CompteurEAU.value

	end
	}
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par marcus_54 »

Code : Tout sélectionner

return {
    on = {devices = {'CompteurEAU'},	},    

	logging = {
		level = domoticz.LOG_INFO,
		marker = 'Conso Eau',
	},
	execute = function(domoticz, trigger)
		domoticz.devices('ConsommationEau').value = domoticz.devices('CompteurEAU').value-domoticz.variables('eau_actuel').value
		domoticz.variables('eau_actuel').value=domoticz.devices('CompteurEAU').value

	end
	}
J'ai cette erreur ?

Code : Tout sélectionner

Error: dzVents: Error: (3.1.8) Conso Eau: An error occurred when calling event handler Consommation_Eau
Error: dzVents: Error: (3.1.8) Conso Eau: ...z/scripts/dzVents/generated_scripts/Consommation_Eau.lua:9: attempt to perform arithmetic on a nil value (field 'value') 
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par Flying Domotic »

La bonne syntaxe pour une variable est domoticz.variables('maVariable').set(xxx).

Ceci dit, calculer la différence n'est pas utile, et va même semer la pagaille ;-) Au pire, juste copier la valeur de 'CompteurEau' dans 'ConsommationEau'. Domoticz gère tout seul le calcul par heure/jour/mis/année.

Encore une fois, si on peut changer le type de 'ComteurEau' en 'compteur" (indiqué RFXMeter dans le widget). il n'y aura rien à faire ...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par Keros »

Regarde le bas de page de la documentation : pour chaque type de widget, il est indiqué les attributs que tu peux utiliser dessus.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par marcus_54 »

Encore une fois, si on peut changer le type de 'ComteurEau' en 'compteur" (indiqué RFXMeter dans le widget). il n'y aura rien à faire ...
J'avais déjà mis ce widget…
confirme-moi que j'ai bien pris le bon. (RFXMeter RFXMeter counter 0.030 m3)
compteur.png
compteur.png (20.4 Kio) Consulté 3406 fois
après avoir relancé l'acquisition de données sur le compteur d'eau, le widget affiche 30 l car l'index du compteur est de 29,53 M3 ☹
je pense que j'avais déjà fait la manipulation et l'index ne changeait pas mais je veux bien retenter l'expérience…
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: un widget qui affiche le nombre de litres consommés par heure...

Message par marcus_54 »

J'ai l'impression que c'est bon :)
J'ai mis le diviseur à 1
Je vais laisser tourner jusqu'à demain voir ce que ca affiche !
Précédemment j'avais essayé avec des multiplicateurs de 0 1000 et 0,001 et ce n'était pas correct…

Wiki :
Le compteur sera traité avec le diviseur défini dans les paramètres des paramètres de l'application lorsque le réglage du diviseur du compteur est 0. Par exemple, si le compteur est réglé sur "Eau" et que la valeur est passée en litres, le diviseur doit être réglé à 1000. (comme l'unité est m 3 ). Comme le compteur n'accepte que les nombres entiers en entrée, c'est également un moyen d'afficher des valeurs fractionnées. Comme le compteur d'eau envoie des litres (par exemple 12538791), utilisez le diviseur de 1000 pour afficher 12538,791 m3 dans le widget. Si aucun diviseur n'est nécessaire, utilisez la valeur de diviseur 1 (et non 0).
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
Répondre