Merci pour les réponses en m'inspirant de
https://www.domoticz.com/forum/viewtopi ... 36#p144720
J'ai fait ce script qui me permet de me servir de l'IDX d'un switch également :
Code : Tout sélectionner
-- mma13 - 26/09/2018 ----------------------------------------------------------
-- Ce script compare régulièrement la consommation d'une prise à une consigne
-- Si la consommation est inférieure à la consigne l'alimentation est coupée
--------------------------------------------------------------------------------
-- Variables locales -----------------------------------------------------------
local delai = 5 -- nombre de minutes entre deux tests
local consigne = 30 -- consigne de consomation minimale en Watt
local watt -- reçoit la mesure en Watt
local capteurIdx = 169 -- index du device qui mesure la puissance
local priseIdx = 99 -- index du device qui pilote la prise
local devName -- reçoit le nom du device
--------------------------------------------------------------------------------
commandArray = {}
-- Fonction getDevNameByIdx ----------------------------------------------------
-- Cette fonction retourne :
-- - Le nom d'un device à partir de son IDX s'il existe
-- - 0 si l'IDX n'existe pas
--------------------------------------------------------------------------------
function getDevNameByIdx(devIdx)
for i, v in pairs(otherdevices_idx) do
if v == devIdx then
return i
end
end
return 0
end
--------------------------------------------------------------------------------
time = os.date("*t")
if ((time.min) % delai) == 0 then -- toutes les 'delai' minutes
devName=getDevNameByIdx(capteurIdx)
if (devName~=0) then
print ("Gestion consommation "..devName);
-- cherche le device concerné
for deviceName,deviceValue in pairs(otherdevices) do
if (deviceName==devName) then
-- print("DeviceValue : "..deviceValue)
watt = string.sub(deviceValue,1,4)
watt = tonumber(watt) / 10
if (watt <= consigne) then
print("Coupure prise "..devName)
-- Coupure à gérer
commandArray[getDevNameByIdx(priseIdx)] = "Off"
else
print("Puissance "..devName.." : "..watt.." W")
end
end
end
end
end
return commandArray
... je débuté sur Domoticz, les scripts et LUA... mais ça fonctionne... j'ai juste fait un truc empirique :
Code : Tout sélectionner
watt = string.sub(deviceValue,1,4)
watt = tonumber(watt) / 10
parce que je récupère 2 valeurs :

- device.value.JPG (10.4 Kio) Consulté 5788 fois
et je ne sais pas trop comment les traiter : en string, en tableau... je n'ai pas encore suffisamment travaillé la-dessus...