Aller au contenu
ikillou

Scène Pour Contrôler Quelles Portes Ou Fenêtres Sont Ouvertes

Recommended Posts

Hello,

 

Comme je ne trouve pas pratique l'appli smartphone pour contrôler si j'ai laissé des fenêtres ou des portes ouvertes, j'ai fait un petit script pour faire ce check.

Voilà , je vous partage mon code si ça peut vous aider...

--[[
%% properties
%% globals
--]]
 
local test       = ""                           -- mettre "oui" pour mode test (affiche seul. la liste des Devices)
local IDiPhone   = fibaro:getGlobal("IDiPhone") -- lit la variable avec l'ID de l'iPhone
local AllDevices = api.get("/devices")          -- lit tous les devices
local texte      = "<BR>"                       -- variable avec texte à  afficher
local push       = "Ouvert : "                  -- variable avec texte pour push
 
-- passe en revue tous les devices et traite que les portes et fenêtres
for k, device in pairs(AllDevices) do
  -- on affiche tous les devices pour contrôle si test = oui
  if (test == "oui") then
    print("Name = " .. device.name .. " - ID = " .. device.id .. " - Type = " .. device.type .. "<BR>")
  end
  
-- Fenêtres
  if (device.type == "com.fibaro.windowSensor") then
    if (tonumber(fibaro:getValue(device.id, "value")) > 0) then
      texte = texte .. device.name .. " (" .. device.id .. ") OUVERTE ! <BR>"
      push = push .. device.name .. " / "
    end
  end

-- Portes
  if (device.type == "com.fibaro.doorSensor") then
    if (tonumber(fibaro:getValue(device.id, "value")) > 0) then
      texte = texte .. device.name .. " (" .. device.id .. ") OUVERTE ! <BR>"
      push = push .. device.name .. " / "
    end
  end
  
end --for

-- On affiche le texte et on envoie le push si on n'est pas en mode test
if (test ~= "oui") then
  if (string.len(push) > 9) then
    -- Affiche le texte
    print(texte)
    
    -- Envoie le push
    push = string.sub(push,1,string.len(push) -3) -- on enlève le texte " / " à  la fin
    fibaro:call(IDiPhone, "sendPush", push)
  else
    texte = "Pas de fenêtre ou de porte ouverte..."
    print(texte)
    fibaro:call(IDiPhone, "sendPush", texte)
  end
end

  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

pour les modos, merci de déplacer dans les tutos... je me suis planté de rubrique...

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour le tuto des ouvrants, sympa !!

 

3 HC2, t'es un peu juste non ? ;-)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

oui mais c'est pour les lumieres ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

3 HC2, t'es un peu juste non ? ;-)

 

Oui, un peu juste... va falloir que j'en achète encore 2 ou 3 :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour l'info, je ne l'avais pas vu. Je voulais une scène pour pouvoir la lancer avec le widget de l'iPhone. Mais je vais faire un VD, ça peut être sympa.

J'ai fait ce script en vitesse hier soir, je n'ai pas été dans le détail...

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Si tu veux éteindre toutes les lumières allumées, tu peux faire ça aussi :

--[[
%% properties
%% globals
--]]
 
local alldevices = api.get("/devices?visible=true&enabled=true")

for k, device in ipairs(alldevices) do
  if tostring(device.properties.isLight) == "true" then
    if tonumber(fibaro:getValue(device.id, "value")) == 0 then 
      print (device.name .. " (" .. device.id  .. ") - OFF")
    else
      print (device.name .. " (" .. device.id  .. ") - ON")
      fibaro:call(device.id, "turnOff")
    end
  end
end

Partager ce message


Lien à poster
Partager sur d’autres sites

×