Variable utilisateur et capteur "alert"

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
Répondre
georges54
Messages : 41
Enregistré le : 01 févr. 2018, 18:10

Variable utilisateur et capteur "alert"

Message par georges54 » 21 nov. 2018, 08:34

Bonjour,
Je souhaite créer un capteur de type ALERTE (avec modification de la couleur en fonction du nombre de jours entre deux dates). Je m'explique.
Je crée une variable utilisateur de type "date" que je renseigne (25/12/2018 par exemple).
Je crée un capteur de type alerte et je souhaite qu'il soit :
- vert à plus d'un mois de l'échéance (par rapport à la date du jour)
- orange à moins d'un mois
- rouge à moins de 7 jours
Comment faire récupérer le contenu de la variable utilisateur par le script et comment travailler sur le nombre de jours entre 2 dates ?
Merci d'avance pour votre aide

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


papoo
Messages : 1879
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Variable utilisateur et capteur "alert"

Message par papoo » 21 nov. 2018, 23:28

Code : Tout sélectionner

--[[   
name : script_date_alert.lua
auteur : papoo

mise à jour : 21/11/2018
création : 21/11/2018


]]--
--------------------------------------------
------------ Variables à éditer ------------
-------------------------------------------- 

local debugging = true  					-- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local script_actif = true                   -- active (true) ou désactive (false) ce script simplement
local rouge = 7 						    -- seuil de jour pour alerte rouge
local orange = 30 						    -- seuil de jour pour alerte orange
local var_date = "date"                     -- nom de la variable à surveiller
local date_alert_idx = nil                  -- idx du device alert à mettre à jour, nil si non utilisé


--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local nom_script = 'date alerte'
local version = '1.0'
--------------------------------------------
---------------- Fonctions -----------------
-------------------------------------------- 

function voir_les_logs (s, debugging) -- nécessite la variable local debugging
    if (debugging) then 
		if s ~= nil then
        print (s)
		else
		print ("aucune valeur affichable")
		end
    end
end	-- usage voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
--------------------------------------------
function round(n)
    return n % 1 >= 0.5 and math.ceil(n) or math.floor(n)
end
--------------------------------------------
function jours2difference(dateFr) -- format de la date : jj/mm/aaa ex : "30/11/2018"
   jour = string.sub(dateFr, 0, 2)
   mois = string.sub(dateFr, 4, 5)
   annee = string.sub(dateFr, 7, 10)
   t1 = os.time()
   t2 = os.time{year=annee, month=mois, day=jour}
difference = round(os.difftime (t2, t1)/86400, 0)
  return difference  --le résultat retourné est en jour(s)
end

--------------------------------------------
-------------- Fin Fonctions ---------------
--------------------------------------------
commandArray = {}

if uservariablechanged[var_date] and script_actif == true then

voir_les_logs("=========== Date Alert (v1.0) ===========",debugging)

		
	if (uservariables[var_date] ~= nil) then --le chauffage est allumé, calcul des DJU
        jours_restants = jours2difference(uservariables[var_date])
        voir_les_logs(jours_restants.." jours de différence",debugging)
        

		 if (jours_restants < rouge or jours_restants == rouge) then
            voir_les_logs("alerte rouge",debugging)
            if rain_alert_idx ~= nil then
                commandArray[#commandArray+1] = {['UpdateDevice'] = rain_alert_idx..'|3|Alerte Rouge'}
            end
            

			

         elseif (jours_restants > rouge and jours_restants < orange) then
             voir_les_logs("alerte orange",debugging)
                         if rain_alert_idx ~= nil then
                commandArray[#commandArray+1] = {['UpdateDevice'] = rain_alert_idx..'|2|Alerte Orange'}
            end
			
		 else 
            voir_les_logs("alerte verte",debugging)
            if rain_alert_idx ~= nil then
                commandArray[#commandArray+1] = {['UpdateDevice'] = rain_alert_idx..'|1|Alerte verte'}
            end
	
          end

	end

		
voir_les_logs("=========== Date Alert (v1.0) ===========",debugging)
end	
return commandArray


domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

georges54
Messages : 41
Enregistré le : 01 févr. 2018, 18:10

Re: Variable utilisateur et capteur "alert"

Message par georges54 » 22 nov. 2018, 17:32

Merci, je teste

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre