merci beaucoup pour ses informations !!
Je suis en train de finaliser mon script...
Inter-rupteur
Code : Tout sélectionner
return {
active = true,
on =
{
timer = {'every 1 minutes'},
devices = {'MD-WATER-01'},
},
data = { valon = { history = true, maxItems = 20 }},
execute = function(domoticz, stateon)
--------------------------------------------------------------------------------
---------------------------------- Variables -----------------------------------
--------------------------------------------------------------------------------
local nowdate = domoticz.time.rawDate
local valhistorylat = domoticz.data.valon.getLatest()
local hisdatelat = valhistorylat.time.rawDate
local chckbasehour = domoticz.time.dateToDate('09/09/2021 21:00:00','dd/mm/yyyy hh:MM:ss', 'hh:MM:ss')
local nowhour = domoticz.time.rawTime
print('-----------------------------------------------')
--print('last date history : ' .. hisdatelat)
--print('date now : ' .. nowdate)
--print('heure script : ' ..chckbasehour)
--print('Heure now : ' .. nowhour)
--print('value history last : ' .. valhistorylat.data)
--------------------------------------------------------------------------------
-------------------------------- Fin Variables ---------------------------------
--------------------------------------------------------------------------------
if (stateon.state == 'On') then
domoticz.data.valon.add(stateon.state)
domoticz.log('La value "On" a été ajouté dans l\'history du device !')
domoticz.log('Le : ' .. nowdate)
domoticz.email('Capteur de pluie : MD-WATER-01', 'Date : ' .. nowdate .. '<br>Il est en train de pleuvoir... <br>MD-WATER-01 a envoyé la value "On".', 'mail@mail.com')
end
--------------------------------------------------------------------------------
if (nowhour == chckbasehour) then
if (valhistorylat.data == "On") and (hisdatelat == nowdate) then
domoticz.log('La pluie est tombée aujourd\'hui, MD-WATER-01 a été actif !')
domoticz.email('Arrosage 1 (low) OFF', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Journée de pluie...', 'mail@mail.com')
else
domoticz.log('Il n\'a pas plu aujourd\'hui, pas de déclenchement du module MD-WATER-01 !')
domoticz.email('Start Arrosage 1 (low)', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Start Electrovanne low a 21 heures.', 'mail@mail.com')
--domoticz.devices('Electrovanne - LOW (ARO-01)').switchOn().forMin(3)
end
end
print('-----------------------------------------------')
end
}
Code : Tout sélectionner
return {
active = true,
on =
{
timer = {'at 21:00'},
devices = {'MD-WATER-01'},
},
data = { valon = { history = true, maxItems = 20 }},
execute = function(domoticz, stateon)
-------------------------------------------------------------------------------------------------------
------- Check si l'history est déjà rempli au moins avec une valeur (off : valeur par defaut) ---------
------- => sinon erreur d'index "NIL value" car l'history persistent data est vide ---------------
if domoticz.data.valon.getOldest() == nil then
domoticz.data.valon.add('Off')
end
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---------------------------------- Variables ----------------------------------------------------------
-------------------------------------------------------------------------------------------------------
local nowdate = domoticz.time.rawDate
local valhistorylat = domoticz.data.valon.getLatest()
local hisdatelat = valhistorylat.time.rawDate
--local chckbasehour = domoticz.time.dateToDate('10/09/2021 15:17:00','dd/mm/yyyy hh:MM:ss', 'hh:MM:ss')
local nowhour = domoticz.time.rawTime
print('-----------------------------------------------')
print('last date history : ' .. hisdatelat)
print('date now : ' .. nowdate)
print('heure script : ' ..chckbasehour)
print('Heure now : ' .. nowhour)
print('value history last : ' .. valhistorylat.data)
-------------------------------------------------------------------------------------------------------
-------------------------------- Fin Variables --------------------------------------------------------
-------------------------------------------------------------------------------------------------------
if (stateon.state == 'On') then
domoticz.data.valon.add(stateon.state)
domoticz.log('La value "On" a été ajouté dans l\'history du device !')
domoticz.log('Le : ' .. nowdate)
domoticz.email('Capteur de pluie : MD-WATER-01', 'Date : ' .. nowdate .. '<br>Il est en train de pleuvoir... <br>MD-WATER-01 a envoyé la value "On".', 'jhon.mek.ouille@gmail.com')
end
-------------------------------------------------------------------------------------------------------
if (stateon.isTimer) then
if (valhistorylat.data == "On") and (hisdatelat == nowdate) then
domoticz.log('La pluie est tombée aujourd\'hui, MD-WATER-01 a été actif !')
domoticz.email('Arrosage 1 (low) OFF - Pluie', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Journée de pluie...', 'jhon.mek.ouille@gmail.com')
domoticz.email('Arrosage 2 (high) OFF - Pluie', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Journée de pluie...', 'jhon.mek.ouille@gmail.com')
--domoticz.data.valon.reset()
else
if (domoticz.devices('20.Electrovanne - LOW (ARO-01)').state=='Off') then
domoticz.log('(ARO-01 - Il n\'a pas plu aujourd\'hui, pas de déclenchement du module MD-WATER-01 !')
domoticz.email('Start Arrosage 1 (low)', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Start Electrovanne low a 21:00 heures.', 'jhon.mek.ouille@gmail.com')
domoticz.devices('20.Electrovanne - LOW (ARO-01)').switchOn().forMin(3)
end
if (domoticz.devices('21.Electrovanne - HIGH (ARO-02)').state=='Off') then
domoticz.log('ARO-02 - Il n\'a pas plu aujourd\'hui, pas de déclenchement du module MD-WATER-01 !')
domoticz.email('Start Arrosage 2 (high)', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Start Electrovanne high a 21:00 heures.', 'jhon.mek.ouille@gmail.com')
domoticz.devices('21.Electrovanne - HIGH (ARO-02)').switchOn().forMin(5)
end
end
end
print('-----------------------------------------------')
end
}
Code : Tout sélectionner
local OnTimer1 = 'at 21:00'
local OnTimer2 = 'every 3 minutes'
return {
active = true,
on =
{
timer = {OnTimer1,OnTimer2},
devices = {'MD-WATER-01'},
},
data = { valon = { history = true, maxItems = 20 }},
execute = function(domoticz, stateon)
-------------------------------------------------------------------------------------------------------
------- Check si l'history est déjà rempli au moins avec une valeur (off : valeur par defaut) ---------
--------- => sinon erreur d'index "NIL value" car l'history persistent data est vide ---------------
if domoticz.data.valon.getOldest() == nil then
domoticz.data.valon.add('Off')
end
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---------------------------------- Variables ----------------------------------------------------------
-------------------------------------------------------------------------------------------------------
--local chckbasehour = domoticz.time.dateToDate('10/09/2021 15:17:00','dd/mm/yyyy hh:MM:ss', 'hh:MM:ss')
local emailNotification = 'jhon.mek.ouille@gmail.com'
local nowdate = domoticz.time.rawDate
local nowhour = domoticz.time.rawTime
local valhistorylat = domoticz.data.valon.getLatest()
local hisdatelat = valhistorylat.time.rawDate
local hishourlat = valhistorylat.time.rawTime
-------------------------------------------------------------------------------------------------------
-------------------------------- Fin Variables --------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
------------------------------------ Print ------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
if domoticz.time.matchesRule(OnTimer2) then
print('-----------------------------------------------')
--print('hour now : ' ..chckbasehour)
print('MD-WATER-01')
print('Last value history : ' .. valhistorylat.data)
print('Last date history : ' .. hisdatelat)
print('Last hour history : ' .. hishourlat)
print('******************************')
print('Nous sommes le : ' .. nowdate)
print('Il est : ' .. nowhour)
print('-----------------------------------------------')
end
-------------------------------------------------------------------------------------------------------
--------------------------------- Fin Print -----------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
----------------------------------- Code --------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
if (stateon.state == 'On') then
domoticz.data.valon.add(stateon.state)
domoticz.log('La value "On" a été ajouté dans l\'history du device !')
domoticz.log('Le : ' .. nowdate)
domoticz.email('Pluie en cours : MD-WATER-01 actif', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Il est en train de pleuvoir... <br>MD-WATER-01 a envoyé la value "On".', emailNotification)
else
domoticz.log('Pas de nouvelle value "On" pour le moment.')
end
-------------------------------------------------------------------------------------------------------
if domoticz.time.matchesRule(OnTimer1) then
if (valhistorylat.data == "On") and (hisdatelat == nowdate) then
domoticz.log('La pluie est tombée aujourd\'hui, MD-WATER-01 a été actif !')
domoticz.email('[ARO-01] - OFF cause Pluie', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Journée de pluie...', emailNotification)
domoticz.email('[ARO-02] - OFF cause Pluie', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Journée de pluie...', emailNotification)
--domoticz.data.valon.reset()
else
if (domoticz.devices('20.Electrovanne - LOW (ARO-01)').state=='Off') then
domoticz.log('[MD-WATER-01 => ARO-01] - Pas de pluie aujourd\'hui : déclenchement de l\'arrosage [ARO-01] - LOW.')
domoticz.email('Start Arrosage 1 (low)', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Start Electrovanne low a 21:00 heures.', emailNotification)
domoticz.devices('20.Electrovanne - LOW (ARO-01)').switchOn().forMin(3)
end
if (domoticz.devices('21.Electrovanne - HIGH (ARO-02)').state=='Off') then
domoticz.log('[MD-WATER-01 => ARO-02] - Pas de pluie aujourd\'hui : déclenchement de l\'arrosage [ARO-02] - HIGH.')
domoticz.email('Start Arrosage 2 (high)', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Start Electrovanne high a 21:00 heures.', emailNotification)
domoticz.devices('21.Electrovanne - HIGH (ARO-02)').switchOn().forMin(5)
end
end
end
print('-----------------------------------------------')
end
}
-------------------------------------------------------------------------------------------------------
----------------------------------- Fin Code ----------------------------------------------------------
-------------------------------------------------------------------------------------------------------
Code : Tout sélectionner
execute = function(domoticz, item)
if item.trigger == 'OnTimer1' then
elseif item.trigger == 'OnTimer2' then
elseif item.trigger == 'MD-WATER-01' then
end
end