En effet les tableaux blinds, lights et sensors contenus au début du script sont des exemples.
Tu peux bien évidement t'en inspirer et les modifier selon tes dispositifs.
Code : Tout sélectionner
commandArray = {}
local blinds = {
["Chambre 1 - Volet"]="celuidelachambredelapetite lachambredelapetite levoletdelachambredelapetite levoletroulantdelachambredelapetite lesvoletsdeschambres touslesvolets touslesvoletsroulants",
["Chambre 2 - Volet"]="celuidelachambre lachambre levoletdelachambre levoletroulantdelachambre lesvoletsdeschambres touslesvolets touslesvoletsroulants",
["Cuisine - Volet"]="celuidelacuisine lacuisine levoletdelacuisine levoletroulantdelacuisine touslesvolets touslesvoletsroulants",
["Salon - Volet 1"]="celuidedroite levoletdedroite levoletroulantdedroite levoletdedroitedusalon levoletroulantdedroitedusalon lesalon lesvoletsdusalon lesvoletsroulantsdusalon touslesvolets touslesvoletsroulants",
["Salon - Volet 2"]="celuidumilieu levoletdumilieu levoletroulantdumilieu levoletdumilieudusalon levoletroulantdumilieudusalon lesalon lesvoletsdusalon lesvoletsroulantsdusalon touslesvolets touslesvoletsroulants",
["Salon - Volet 3"]="celuidegauche levoletdegauche levoletroulantdegauche levoletdegauchedusalon levoletroulantdegauchedusalon lesalon lesvoletsdusalon lesvoletsroulantsdusalon touslesvolets touslesvoletsroulants",
}
local lights = {
["Balcon - Lumière 1"]="celledubalcon lebalcon lalumiredubalcon lespotdubalcon lejardin lalumiredujardin leslumiresdujardin lesspotsdubalcon lesspotsdujardin toutesleslumires",
["Balcon - Lumière 2"]="celledelaterrasse laterrasse lalumiredelaterrasse lespotdelaterrasse lejardin lalumiredujardin leslumiresdujardin lesspotsdubalcon lesspotsdujardin toutesleslumires",
["Chambre 1 - Lumière 1"]="celledelapetite lapetite lachambredelapetite lalumiredelachambredelapetite leslumiresdelachambredelapetite leschambres leslumiresdeschambres toutesleslumires",
["Chambre 1 - Lumière 2"]="laguirlande laguirlandedelapetite laguirlandedelachambredelapetite leslumiresdelachambredelapetite toutesleslumires",
["Chambre 2 - Lumière"]="celledelachambre lachambre lalumiredelachambre leslumiresdelachambre leschambres leslumiresdeschambres toutesleslumires",
["Cuisine - Lumière 1"]="lesspots lesspotsdelacuisine lacuisine leslumiresdelacuisine toutesleslumires",
["Cuisine - Lumière 2"]="celledelacuisine lalumiredelacuisine lacuisine leslumiresdelacuisine toutesleslumires",
["Cuisine - Lumière 3"]="lesspots lesspotsdelacuisine lacuisine leslumiresdelacuisine toutesleslumires",
["Entrée - Lumière"]="celledelentree lentree lalumiredelentree lepalier lalumiredupalier toutesleslumires",
["Escalier - Lumière"]="celledelescalier lescalier lalumiredelescalier lescalierdusoussol ladescentedusoussol toutesleslumires",
["LED TV"]="celledelatable latable lalumiredelatable lalumiredelatabledusalon lesalon lalumiredusalon leslumiresdusalon toutesleslumires",
["Lumière 1"]="celleducanap lecanap lalumireducanap lalumireducanapdusalon lesalon lalumiredusalon leslumiresdusalon toutesleslumires",
["Salon - Lumière 3"]="celledelatl latl lalumiredelatl lalumiredelatldusalon lesalon lalumiredusalon leslumiresdusalon toutesleslumires",
["Salle de bain - Lumière"]="celledelasalledebain lasalledebain lalumiredelasalledebain toutesleslumires",
["WC - Lumière"]="celledeswc celledestoilettes lestoilettes leswc lalumiredestoilettes lalumiredeswc toutesleslumires"
}
local sensors = {
["Hygrostat"]="lavmc lavmcsur lhygrostat lhygrostatsur lhumidit lhumiditsur lhumiditdelair lhumiditdelairsur lhumiditdanslair lhumiditdanslairsur letauxdhumidit letauxdhumiditsur letauxdhumiditdelair letauxdhumiditdelairsur letauxdhumiditdanslair letauxdhumiditdanslairsur",
["Thermostat"]="lechauffage lechauffagesur lethermostat lethermostatsur latemprature latempraturesur latempraturedelair latempraturedelairsur latempraturedanslair latempraturedanslairsur"
}
local function get(deviceValue, position)
local current = 0
for value in string.gmatch(deviceValue, '([^:]+)') do
current = current + 1
if current == position then
return value
end
end
return value
end
for deviceName,deviceValue in pairs(devicechanged) do
if deviceName == 'IFTTT' then
local command = get(deviceValue, 1)
if command == 'blind' then
local value = get(deviceValue, 2)
local text = get(deviceValue, 3):gsub("%W", ""):lower()
for blind,words in pairs(blinds) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[blind] = value
end
end
end
elseif command == 'set' then
local value = get(deviceValue, 3)
local text = get(deviceValue, 2):gsub("%W", ""):lower()
for sensor,words in pairs(sensors) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[sensor] = 'Set Level: ' .. value
end
end
end
elseif command == 'switch' then
local value = get(deviceValue, 2)
local text = get(deviceValue, 3):gsub("%W", ""):lower()
for light,words in pairs(lights) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[light] = value
end
end
end
for sensor,words in pairs(sensors) do
for word in words:gmatch("%w+") do
if text == word then
commandArray[sensor] = value
end
end
end
end
end
end
return commandArrayMerci Bierdock pour ton attention!bierdok a écrit : 24 janv. 2019, 21:33 Bonsoir emy,
Il ne semble pas y avoir d'erreur dans ce que j'ai pu voir.
Si tu testes une des url paramétrée dans IFTTT à partir d'une connexion 3G ou 4G ça donne quoi ?
Pourrais-tu faire des captures d'écran de tes applets IFTTT en prenant soin de flouter les données sensibles ?