Notification dans script LUA
Publié : 26 mars 2018, 16:59
Bonjour,
J'utilise le script de DumpDos (que je remercie) pour connaitre mon volume de pellet restant dans ma cuve.
Jusque là, tous va bien, cela fonctionne au top.
J'essai maintenant d'être averti lorsque le niveau est trop bas, et là c'est le drame !!
J'ai essayer en rajoutant les 4 dernière lignes, mais j'ai toujours ce message d'erreur:
71: attempt to compare nil with number
Quelqu'un pourrait m'aider ?
J'utilise le script de DumpDos (que je remercie) pour connaitre mon volume de pellet restant dans ma cuve.
Jusque là, tous va bien, cela fonctionne au top.
J'essai maintenant d'être averti lorsque le niveau est trop bas, et là c'est le drame !!
J'ai essayer en rajoutant les 4 dernière lignes, mais j'ai toujours ce message d'erreur:
71: attempt to compare nil with number
Quelqu'un pourrait m'aider ?
Code : Tout sélectionner
---------------------------------------------------------------------------
-- script_device_cuve_volumerREC.lua --------------------------------------
-- DumpDos 2016 -----------------------------------------------------------
---------------------------------------------------------------------------
-- Ce script permet la conversion d'une hauteur en volume en fonction de --
-- la largeur et la longueur d'une cuve -----------------------------------
---------------------------------------------------------------------------
-- Il peut être utilisé pour une cuve , un bassin ou toute autre ----------
-- utilisation qui s'y prêterai -------------------------------------------
---------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
----------------------------------------- Variables à Editer ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
local Hauteur_Eau = '60' -- Hauteur maximale de l'eau en cm
local Marge_Capteur = '1' -- Marge de vôtre capteur par rapport à la surface de l'eau en cm
local Longueur = '65' -- Longueur de la cuve en cm
local Largeur = '29' -- Largeur de la cuve en cm
local Distance = 'Distance' -- Nom du capteur de hauteur
--local Distance = '9' -- Nom du capteur de hauteur
local Domoticz_url = '192.168.0.56:8080' -- Adresse IP:port de Domoticz
local Afficheur = '12' -- IDx de l'afficheur du niveau
-------------------------------------------------------------------------------------------------------------
-------------------------------------- Fin des Variables à Editer -------------------------------------------
-------------------------------------------------------------------------------------------------------------
commandArray = {}
-- Détection du changement de valeur --
if (devicechanged[Distance]) then
-- Valeur distance relevée --
Mesure_Capteur = tonumber(otherdevices_svalues['Distance'])
-- Inversion de la valeur relevée --
local Niveau_Eau = Hauteur_Eau - ( Mesure_Capteur - Marge_Capteur )
-- Vérification niveau minimum --
if Niveau_Eau <= ( 0 ) then
-- Incrémentation du volume à 0 --
local Volume = ( 0 )
-- Mise a jour de l'afficheur --
local url = Domoticz_url..'/json.htm?type=command¶m=udevice&idx='..Afficheur..'&nvalue=0&svalue='..Volume
commandArray[1]={['OpenURL']=url }
-- Vérification niveau minimum --
elseif Niveau_Eau > ( 0 ) then
-- Calcul de l'aire --
local Aire = ( Longueur * Largeur)
-- Calcul du volume --
local Volume_Brut = ( Aire * Niveau_Eau )
-- Conversion de Cm3 à L --
local Volume_Brut_Litres = Volume_Brut / 1000
-- Arrondi à l'unité --
local Volume = math.ceil( Volume_Brut_Litres )
-- Mise a jour de l'afficheur --
local url = Domoticz_url..'/json.htm?type=command¶m=udevice&idx='..Afficheur..'&nvalue=0&svalue='..Volume
commandArray[1]={['OpenURL']=url }
end
if (Volume<20) and (Volume>10) then
commandArray['SendNotification']='Poêle: niv. <20% !'
elseif (Volume<10) then
commandArray['SendNotification']='Poêle: niv. <10% !'
end
end
return commandArray