J'ai décidé de mettre en place un délestage pour mon installation. Etant plus que débutant en Lua je me suis inspiré de ce post:https://easydomoticz.com/forum/viewtopic.php?f=17&t=644. le script "device" ne pose pas de problème après ajustement à mes besoins,mais le script "time" me retourne une erreur dans les logs de domoticz.
Code : Tout sélectionner
2023-01-19 11:01:00.031 Error: EventSystem: in /home/pi/domoticz/scripts/lua/-- script_time_delestage2_rev1.lua: .../domoticz/scripts/lua/-- script_time_delestage2_rev1.lua:22: bad argument #1 to 'sub' (string expected, got nil)Le script modifié:
Code : Tout sélectionner
-- script_time_delestage2.lua
-- Utilisé pour rearmer les délestages
local delestage_1 = 'Delestage_pac' -- pac contact 1 relais orvibo
local delestage_2 = 'lave_vaisselle' -- pc lave-vaisselle
local delestage_3 = 'lave_linge' -- pc lave-linge
local delestage_4 = 'Delestage_2' -- four contact 2 relais orvibo
local fin_delestage = 1800 -- temporisation du delestage 30 minutes
time = os.date("*t")
-- fontion calcul difference de temps
function timedifference(d)
s = otherdevices_lastupdate[d]
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = os.difftime (t1, t2)
return difference
end
-- calcul depuis combien de temps le premier delestage est en fonction
local on_delest1 = timedifference(delestage_1)
commandArray = {}
-- si on est deleste plus de 30 minutes sur Delestage1 on arrete pour verifier la puissance
if ( on_delest1 > fin_delestage ) then
commandArray[delestage_1]= 'Off'
commandArray[delestage_2]= 'On'
commandArray[delestage_3]= 'On'
commandArray[delestage_4]= 'Off
end
return commandArray
Merci
Michel