Aller au contenu

Messages recommandés

Posté(e)

En 4.083, le double click ne fonctionne plus, j'ai triple checké tout, je ne vois pas, c'est un peu comme si il n'arrivait pas àlire la valeur du label...

J'ai remplacé mon code par celui 3 pages en arrière...

Je suis le seul ?

Posté(e)

salut @ Neliger

 

je cherche à  mieux comprendre le LUA 

 

pourrait tu m'expliqué le code ci-dessous stp

for k, v in ipairs(json) do
Posté(e)

En 4.083, le double click ne fonctionne plus, j'ai triple checké tout, je ne vois pas, c'est un peu comme si il n'arrivait pas àlire la valeur du label...

J'ai remplacé mon code par celui 3 pages en arrière...

Je suis le seul ?

cela était déjàle cas en 4.082b.

Steven a proposé une alternative dans le topic Doubke Click

  • Upvote 1
Posté(e)

je partage mais ...

1 ce n'ai pas mon code en rien !

2 ca marche pour moi 

3 je n'ai rien changer au note d'origine 

4 je remercie les créateur ! et bien sur toi !

merci encore

 

Salut CharlesO

J'ai récupéré directement ton vd, et je n'arrive à  aucun résultat...

En mode débug, lorsque je lance "analyse" cela indique 0 fenetres??? alors que je suis sur qu'une de mes fenetres est ouverte.

Posté(e)

voila je commence à  comprend un peut plus sur les   json

 

j'ai rajouter un ligne pour les lampe dimmable FGD....  et c'est nikel

 

mai je ne c'est pas à  quoi corespond le (string) de la ligne :

 if (type(v.properties.isLight) == "string") then

 

et  ipairs  de la ligne:  for k, v in ipairs(json) do

-----ON 
local HC2 = Net.FHttp("127.0.0.1", 11111)
local reponse = HC2:GET("/api/devices")
local json = json.decode(reponse)
 
-- Boucle sur les modules
for k, v in ipairs(json) do
 
  -- Il s'agit d'un module lumière
  if (type(v.properties.isLight) == "string") then
 
    -- La lumière est allumée, extinction      
    if(v.properties.value == "false") then fibaro:call(v.id, "turnOn"); end
 
    if(v.properties.value == "0") then  fibaro:call(v.id, "turnOn"); end
    
    
  end
end

et pour le OFF  

local HC2 = Net.FHttp("127.0.0.1", 11111)
local reponse = HC2:GET("/api/devices")
local json = json.decode(reponse)
 
-- Boucle sur les modules
for k, v in ipairs(json) do
 
  -- Il s'agit d'un module lumière
  if (type(v.properties.isLight) == "string") then
 
    -- La lumière est allumée, extinction      
    if(v.properties.value == "true") then fibaro:call(v.id, "turnOff"); end
 
    if(v.properties.value <= "99") then  fibaro:call(v.id, "turnOff"); end
    
    
  end
end
Posté(e)

pour aller plus loin et mieux comprendre

 

si je souhaite modifier par exemple  avec deux boutons d'une VD  le paramètre n°  13   du FGD 212 

 

1 - un bouton pour forcer l'auto-étalonnage de la charge sans le Bypass Fibaro

ou

2 - un bouton pour  forcer l'auto-étalonnage de la charge avec le Bypass Fibaro
 
 
j'ai tester le code suivant mai bon sa ne fonctionne pas bien sure ;)
 

je pense que je suis presque que bon, sauf que je ne sait pas ou placée ID du module 

	 local HC2 = Net.FHttp("127.0.0.1", 11111)
local reponse = HC2:GET("/api/devices")
local json = json.decode(reponse)
 
-- Boucle sur les modules
for k, v in ipairs(json) do
 
  
  if (type(v.properties.parameters) == "string") then

et  après comment  modifier la valeur .

if(v.properties.value == "0") then  ?????????  ; end

 

le json


        "id": 13,
        "lastReportedValue": 0,
        "lastSetValue": 0,
        "size": 1,
        "value": 0
      },
Posté(e)

salut kionneoranga je suis pas un pro mais je vais d aider .

sur ta fenêtre tu a quoi comme module (FGK101 Door/Window Sensor)?

envoi moi son json stp

Posté(e)

salut kionneoranga je suis pas un pro mais je vais d aider .

sur ta fenêtre tu a quoi comme module (FGK101 Door/Window Sensor)?

envoi moi son json stp

 

Le module est bien un FGK101, par contre je ne vois pas comment faire l'export du json?

Peux tu me mettre sur la voie, pour te fournir cela?

Posté(e)


----------------------------------

-- User Settings

----------------------------------

-- Modules àexclure et fonction de traitement (pas raccordés àdes lumières)

-- Peut contenir un id ou un mot clés àchercher dans le nom du module

toExclude = {92}

----------------------------------

-- DO not change bellow this line

----------------------------------

-- Modules àexclure ou inclure et fonction de traitement (pas raccordés àdes lumières)

-- Peut contenir un id ou un mot clés àchercher dans le nom du module

-- toExclude = {72, "Dispo", "Volet", "Bubendorff"}

function shouldExclude(module)

for _, v in pairs(toExclude) do

if string.find(module.name, v) ~= nil or module.id == v then return true end

end

return false

end

----------------------------------

-- double click pour confirmer

----------------------------------

-- ----------------------------

-- Ne pas toucher --

-- ----------------------------

function confirm(msg, labelId, secondes)

local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value")

if (current == msg) then

fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", " ")

return true

else

fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg)

fibaro:sleep(secondes*1000)

fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","")

return fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == " "

end

end

-- ----------------------------

-- A vous de jouer ---

-- ----------------------------

local label_id = "lblMessage" -- l'ID du label qui recevra le message

local duree = 4 -- la durée max entre 2 clique (en seconde)

local message = "Ré-appuyer dans les "..duree.." secondes pour confirmer" -- le message de confirmation

if ( confirm(message, label_id, duree) ) then

fibaro:log("Confirmé")

-- votre code ici en cas de confirmation

-- Récupération de la liste des modules

local HC2 = Net.FHttp("127.0.0.1", 11111)

local payload = "/api/devices"

local response, status, errorCode = HC2:GET(payload)

if tonumber(errorCode) == 0 and tonumber(status) == 200 and response ~= nil and response ~= "" then

local jsonTable = json.decode(response)

-- Boucle sur les modules

for device = 1, #jsonTable do

-- look for lighting devices

if jsonTable[device].interfaces and not shouldExclude(jsonTable[device]) then

for interface = 1, #jsonTable[device].interfaces do

if jsonTable[device].interfaces[interface] == "light" then

local DeviceValue = tonumber(jsonTable[device].properties.value)

if (DeviceValue and DeviceValue > 0) or (jsonTable[device].properties.value == "true") then

--fibaro:debug(" id: "..jsonTable[device].id.." is "..jsonTable[device].name.." type: "..jsonTable[device].interfaces[interface])

--fibaro:debug(" value: "..jsonTable[device].properties.value..". Turning Off")

fibaro:call(jsonTable[device].id, "turnOff")

end

break

end

end

end

end

else

fibaro:debug('<span style="display:inline;color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..(response or "")..'</span>')

end

else

fibaro:log("Annulé")

-- votre code ici en cas d'annulation

end

Posté(e)

Voila si tu expliques tout !!

 

Tu es en quelle version de firmware ?

 

Le double-clic ne fonctionne plus depuis la 4.081 ou 4.082 je crois.

Posté(e)

Super !!

plus de double clic possible sur 1 bouton, mais,possible avec 2 boutons, petite astuce de steven, va voir le topic "Double-clic pour confirmer"

  • 6 mois après...
Posté(e)

je viens de faire quelques petit modification sur la version de @jojo

 

j'ai supprimer le code dans le mainloop et j'utilise une scéne qui actionne le bouton du VD c'est scène est déclenché lors du changement d'état d'un module lumière je trouve cela plus logique

 

exemple :

--[[
%% properties
21 value
31 value
59 value
61 value
63 value
65 value
115 value
274 value
276 value
%% events
%% globals
--]]

fibaro:call(351, "pressButton", "14") -- VD Toutes lumières

fibaro:debug("run bouton")

 

j'ai aussi ajouté une icone supplémentaire lorsque le module recherche les lumières voici le résultat 

 

 

 

 

a.jpgb.jpgc.jpg

 

Si cela intéresse quelqu'un je peux le partager

  • Upvote 1
  • 3 mois après...
Posté(e)

Salut a tous

2 Questions :

1 - peut on envoyer le resulta de l'analyse pas sms ? (x fois par jour)

2 - peut on envoyer le resulta de l'analyse pas message avec la question : tout eteindre ? oui/non ? (x fois par jour)

 

merci a tous !

Posté(e) (modifié)

Bonjour,

 

1- Oui, en fonction de ce que tu utilises pour les SMS, tu mets le resultat dans une variable et tu lis le contenu de cette variable pour l'envoi du SMS

2- Oui, en utilisant les Interactive Push :

 

Modifié par pepite
×
×
  • Créer...