Salut,
Pour mes premiers scripts LUA, J'ajoute une pierre à l'édifice

Ces scripts fonctionnent aussi avec un capteur ultrasonique ( HC-SR04 )
Voici un script pour le pourcentage :
Code : Tout sélectionner
---------------------------------------------------------------------------
-- script_device_cuve.lua -------------------------------------------------
-- DumpDos 2016 -----------------------------------------------------------
---------------------------------------------------------------------------
-- Ce script permet la conversion d'une hauteur en pourcentage ------------
---------------------------------------------------------------------------
-- Il peut être utilisé pour une cuve , un bassin ou toute autre ----------
-- utilisation qui s'y prêterai -------------------------------------------
---------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
----------------------------------------- Variables à Editer ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
local Hauteur_Eau = '150' -- Hauteur maximale de l'eau en cm
local Marge_Capteur = '20' -- Marge de votre capteur par rapport à la surface de l'eau en cm
local Distance = 'Distance' -- Nom du capteur de hauteur
local Domoticz_url = '192.168.0.11:8080' -- Adresse IP:port de Domoticz
local Afficheur = '70' -- 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 Pourcentage = ( 0 )
-- Mise a jour de l'afficheur --
local url = Domoticz_url..'/json.htm?type=command¶m=udevice&idx='..Afficheur..'&nvalue=0&svalue='..Pourcentage
commandArray[1]={['OpenURL']=url }
-- Vérification niveau minimum --
elseif Niveau_Eau > ( 0 ) then
-- Calcul du pourcentage --
local Pourcentage_Brut = Niveau_Eau / ( Hauteur_Eau / 100 )
-- Arrondi à l'unité --
local Pourcentage = math.floor( Pourcentage_Brut )
-- Mise a jour de l'afficheur --
local url = Domoticz_url..'/json.htm?type=command¶m=udevice&idx='..Afficheur..'&nvalue=0&svalue='..Pourcentage
commandArray[1]={['OpenURL']=url }
end
end
return commandArray
Pensez à créer afficheur virtuel ! ( Dummy )
Voici deux autres scripts pour convertir une hauteur en volume :
Celui-ci est destiné à une cuve " Rectangulaire " :
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 = '150' -- Hauteur maximale de l'eau en cm
local Marge_Capteur = '20' -- Marge de vôtre capteur par rapport à la surface de l'eau en cm
local Longueur = '100' -- Longueur de la cuve en cm
local Largeur = '100' -- Largeur de la cuve en cm
local Distance = 'Distance' -- Nom du capteur de hauteur
local Domoticz_url = '192.168.0.11:8080' -- Adresse IP:port de Domoticz
local Afficheur = '77' -- 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
end
return commandArray
Celui-ci est destiné à une cuve " Cylindrique " :
Code : Tout sélectionner
---------------------------------------------------------------------------
-- script_device_cuve_volumeCyl.lua ---------------------------------------
-- DumpDos 2016 -----------------------------------------------------------
---------------------------------------------------------------------------
-- Ce script permet la conversion d'une hauteur en volume en fonction de --
-- du diamètre de la cuve -------------------------------------------------
---------------------------------------------------------------------------
-- Il peut être utilisé pour une cuve , un bassin ou toute autre ----------
-- utilisation qui s'y prêterai -------------------------------------------
---------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
----------------------------------------- Variables à Editer ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
local Hauteur_Eau = '150' -- Hauteur maximale de l'eau en cm
local Marge_Capteur = '20' -- Marge de vôtre capteur par rapport à la surface de l'eau en cm
local Diametre = '100' -- Diamètre de la cuve en cm
local Distance = 'Distance' -- Nom du capteur de hauteur
local Domoticz_url = '192.168.0.11:8080' -- Adresse IP:port de Domoticz
local Afficheur = '77' -- IDx de l'afficheur du volume
-------------------------------------------------------------------------------------------------------------
-------------------------------------- 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 = math.pi * (( Diametre / 2 ) ^ 2 )
-- 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
end
return commandArray
Pour ces derniers vous devrez créer un " Custom Sensor " . ( Dummy )
Raspberry Pi 2 - Domoticz bêta- Custom Page - RfxTrx433E - MySensors - Z-Stick Gen 5
6 x DIO 54795 - 4 x DIO 54781 - 2 x Home Confort ECR-100 - 4 X THGR122NX - 1 X OWL Micro+
2 X RGB - 3D - 2 X Switch - 1 X Ir Rx-Tx
1 X Fibaro FGMS-001