Aller au contenu

Messages recommandés

Posté(e)

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
Posté(e)

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

 

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

Posté(e)

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
Posté(e)

 

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

×
×
  • Créer...