Hauteur d'eau du puits - graphique
Re: Hauteur d'eau du puits - graphique
Bonjour,
Serait il possible d'avoir des infos sur vos capteurs pour mesurer la hauteur d'eau d'un puits ?
Je vous remercie par avance !
Serait il possible d'avoir des infos sur vos capteurs pour mesurer la hauteur d'eau d'un puits ?
Je vous remercie par avance !
Dernière modification par Zoug le 27 mai 2019, 18:40, modifié 1 fois.
Re: Hauteur d'eau du puits - graphique
Salut Nico81
La commande fonctionne je récupère bien la hauteur que j'ai convertie en % avec ce LUA
-- Paramètres d'entrée: Capteur puits (x10 RF RF433 mhz)
depth_sensor = 'Capteur Puits'
-- Paramètres de sortie: pourcentage d'eau restant.
pct_sensor = 'Niveau Puits'
pct_sensor_id = 1632
-- Hauteur puits plein en cm:
tank_height = 700
-----------------------------------------------------------------------------------
commandArray = {}
if (devicechanged[depth_sensor])
then depth = otherdevices_svalues[depth_sensor]
pct = (depth * 100) / tank_height
commandArray['UpdateDevice']='1632|0|'..math.floor(pct)
end
return commandArray
Cependant dans le log j'ai ce message d'erreur qui se répète toute les 1 minute :
2019-05-27 13:55:00.802 Error: EventSystem: in Gestion Puits: [string "-- Paramètres d'entrée: Capteur puits (x10 ..."]:12: attempt to index global 'devicechanged' (a nil value)
2019-05-27 13:56:00.818 Error: EventSystem: in Gestion Puits: [string "-- Paramètres d'entrée: Capteur puits (x10 ..."]:12: attempt to index global 'devicechanged' (a nil value)
Est ce que cela vient du fait que j'ai fixé l'intervalle d’émission RF Arduino vers Domoticz toutes les 2 minutes alors que le rafraichissement du log Domoticz se réalise chaque minute ?
Si oui comment le faire disparaitre ?
Merci
La commande fonctionne je récupère bien la hauteur que j'ai convertie en % avec ce LUA
-- Paramètres d'entrée: Capteur puits (x10 RF RF433 mhz)
depth_sensor = 'Capteur Puits'
-- Paramètres de sortie: pourcentage d'eau restant.
pct_sensor = 'Niveau Puits'
pct_sensor_id = 1632
-- Hauteur puits plein en cm:
tank_height = 700
-----------------------------------------------------------------------------------
commandArray = {}
if (devicechanged[depth_sensor])
then depth = otherdevices_svalues[depth_sensor]
pct = (depth * 100) / tank_height
commandArray['UpdateDevice']='1632|0|'..math.floor(pct)
end
return commandArray
Cependant dans le log j'ai ce message d'erreur qui se répète toute les 1 minute :
2019-05-27 13:55:00.802 Error: EventSystem: in Gestion Puits: [string "-- Paramètres d'entrée: Capteur puits (x10 ..."]:12: attempt to index global 'devicechanged' (a nil value)
2019-05-27 13:56:00.818 Error: EventSystem: in Gestion Puits: [string "-- Paramètres d'entrée: Capteur puits (x10 ..."]:12: attempt to index global 'devicechanged' (a nil value)
Est ce que cela vient du fait que j'ai fixé l'intervalle d’émission RF Arduino vers Domoticz toutes les 2 minutes alors que le rafraichissement du log Domoticz se réalise chaque minute ?
Si oui comment le faire disparaitre ?
Merci
Re: Hauteur d'eau du puits - graphique
Bonjour,
Il faut d'abord que tu vérifies ton texte 'Capteur Puits' : je pense qu'il doit y avoir quelques confusions majuscule-minuscule.
Ensuite, plus bas, la fonction otherdevices_svalues[depth_sensor] renvoie un texte et non un nombre il me semble. Ça va générer une autre erreur quand tu fais le calcul. Fais la précèder de tonumber().
Pour ma sonde, c'est un système avec un flotteur et un contre poids reliés à un potentiomètre 10 tours enfermé dans un bocal a confiture. Le potentiomètre est relié à un Uno qui envoie en 433Mhz à mon raspberry. Je mettrai un schéma plus tard car elle n'est pas facile à sortir du puits...
Il faut d'abord que tu vérifies ton texte 'Capteur Puits' : je pense qu'il doit y avoir quelques confusions majuscule-minuscule.
Ensuite, plus bas, la fonction otherdevices_svalues[depth_sensor] renvoie un texte et non un nombre il me semble. Ça va générer une autre erreur quand tu fais le calcul. Fais la précèder de tonumber().
Pour ma sonde, c'est un système avec un flotteur et un contre poids reliés à un potentiomètre 10 tours enfermé dans un bocal a confiture. Le potentiomètre est relié à un Uno qui envoie en 433Mhz à mon raspberry. Je mettrai un schéma plus tard car elle n'est pas facile à sortir du puits...
Re: Hauteur d'eau du puits - graphique
De même, plus loin, j'ai oublié de le signaler, ptc est un nombre et il faut le convertir en string avec tostring()
Re: Hauteur d'eau du puits - graphique
J'ai modifié comme çà mais pas d'amélioration du log cependant le calcul semble toujours correct
"Capteur Puits" commence bien avec des majuscules :
-- Paramètres d'entrée: Capteur puits (x10 RF RF433 mhz)
depth_sensor = 'Capteur Puits'
-- Paramètres de sortie: pourcentage d'eau restant.
pct_sensor = 'Niveau Puits'
pct_sensor_id = 1632
-- Hauteur puits plein en cm:
tank_height = 700
-----------------------------------------------------------------------------------
commandArray = {}
if (devicechanged[depth_sensor])
then depth = otherdevices_svalues[depth_sensor]
pct = (tonumber(depth) * 100) / tank_height
commandArray['UpdateDevice']='1632|0|'..tostring(math.floor(pct))
end
return commandArray
"Capteur Puits" commence bien avec des majuscules :
-- Paramètres d'entrée: Capteur puits (x10 RF RF433 mhz)
depth_sensor = 'Capteur Puits'
-- Paramètres de sortie: pourcentage d'eau restant.
pct_sensor = 'Niveau Puits'
pct_sensor_id = 1632
-- Hauteur puits plein en cm:
tank_height = 700
-----------------------------------------------------------------------------------
commandArray = {}
if (devicechanged[depth_sensor])
then depth = otherdevices_svalues[depth_sensor]
pct = (tonumber(depth) * 100) / tank_height
commandArray['UpdateDevice']='1632|0|'..tostring(math.floor(pct))
end
return commandArray
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Hauteur d'eau du puits - graphique
Ton script est bien un type Device, et non pas Time ?
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: Hauteur d'eau du puits - graphique
Bien vu Denis !
j'avais mis dans Domoticz "Evenement" LUA à ALL en passant à DEVICE plus de message d'erreur
Alors du coup je peux virer tonumber() et tostring ?
Merci pour cette subtilité de Domoticz
De plus Il va falloir que je prenne le temps de me mettre à LUA car je sens venir les limites de Blockly
j'avais mis dans Domoticz "Evenement" LUA à ALL en passant à DEVICE plus de message d'erreur
Alors du coup je peux virer tonumber() et tostring ?
Merci pour cette subtilité de Domoticz
De plus Il va falloir que je prenne le temps de me mettre à LUA car je sens venir les limites de Blockly
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Hauteur d'eau du puits - graphique
Le pourquoi du comment :mannewman a écrit : 27 mai 2019, 19:02 Bien vu Denis !
j'avais mis dans Domoticz "Evenement" LUA à ALL en passant à DEVICE plus de message d'erreur
Mon premier script Lua dans Domoticz : Les fondations
Sachez que suivant le type de script vous accéderez ou pas a telle ou telle table.
Les scripts_device utilisent 6 tables de Domoticz: devicechanged, otherdevices, otherdevices_lastupdate, otherdevices_svalues, uservariables et uservariables_lastupdate
Les scripts_variable : 6 tables : otherdevices, otherdevices_lastupdate, otherdevices_svalues, uservariables, uservariables_lastupdate et uservariablechanged
Les script_time connaissent 5 tables Domoticz : otherdevices, otherdevices_lastupdate, otherdevices_svalues, uservariables et uservariables_lastupdate
Cela signifie que dans un script_time_xxxx.lua si j’utilise la fonction devicechanged j’aurais une erreur :Error: EventSystem: /home/pi/domoticz/scripts/lua/script_time_xxxx.lua:9: attempt to index global ‘devicechanged’ (a nil value)
car cette fonction n’existe pas pour les script Time.
Tu peux essayer sans, moi je laisserais comme ceci si ça fonctionne.
Tu ne peux (pas toujours) faire du calcul depuis un string, et mettre à jour un device en string avec un entier, a moins de l'entourer de quote.
Ne change rien.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: Hauteur d'eau du puits - graphique
Sinon pour répondre à Zoug
J'ai utilisé un capteur de pression absolue type MPX4250A(donc pas différentiel pour ne pas avoir à remonter un tuyau jusqu'en haut du puits qui risque d'être contaminé), revers de la médaille, çà justesse varie suivant la météo
Le capteur est scellé hermétiquement à l'Epoxy puis placé dans une bouteille souple lestée avec du béton complété avec de l'huile alimentaire
Le câble électrique (3 brins) qui remonte du fond du puits est connecté à un Arduino NANO qui converti sur une entrée Analogique la tension en pression puis en hauteur d'eau
La hauteur est envoyée par onde radio en RF433 Mhz (x10RF) à Domoticz pour NAS qui convertit en pourcentage d'eau présente dans le puits
J'ai utilisé un capteur de pression absolue type MPX4250A(donc pas différentiel pour ne pas avoir à remonter un tuyau jusqu'en haut du puits qui risque d'être contaminé), revers de la médaille, çà justesse varie suivant la météo
Le capteur est scellé hermétiquement à l'Epoxy puis placé dans une bouteille souple lestée avec du béton complété avec de l'huile alimentaire
Le câble électrique (3 brins) qui remonte du fond du puits est connecté à un Arduino NANO qui converti sur une entrée Analogique la tension en pression puis en hauteur d'eau
La hauteur est envoyée par onde radio en RF433 Mhz (x10RF) à Domoticz pour NAS qui convertit en pourcentage d'eau présente dans le puits
Re: Hauteur d'eau du puits - graphique
Merci Denis pour ces explications instructives
je vais devoir me mettre à table si je veux comprendre ce langage LUA
je vais devoir me mettre à table si je veux comprendre ce langage LUA