Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Je partage un petit script qui permet de fixer la valeur d'un dimmer à  60%, toutes les 4 heures, sauf si en utilisation.

Le script fonctionne très bien depuis des mois.

Je suis loin d'être un développeur, donc s'il y a des suggestions d'amélioration, n'hésitez pas

 

Créer une scène et y mettre ce code:

--[[
%% autostart
%% properties
%% globals
--]]

-- si lampe SAM eteinte, set dimmer a 60% toutes les 4 heures entre 0h01 et 23h59

local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then
while true do

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "00", "01")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "23", "59"))) and (math.floor(os.time()/60)-math.floor(1391295660/60))%240 == 0 )
and
 ( tonumber(fibaro:getValue(54, "value")) == 0 )
)
then
    fibaro:call(54, 'setValue', 60);
    fibaro:call(54, 'turnOff'); 
end

fibaro:sleep(60*1000);
end
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "00", "01")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "23", "59"))) )
and
 ( tonumber(fibaro:getValue(54, "value")) == 0 )
or
startSource["type"] == "other"
)
then
    fibaro:call(54, 'setValue', 60);
    fibaro:call(54, 'turnOff'); 
end

end

Posté(e)

Quand tu enchaines les commandes fibaro:call(54, 'setValue', 60) et fibaro:call(54, 'turnOff') ça ne fait pas flasher la lumière ?

Posté(e)

Imperceptible, c'est de l’halogène (4 spots de 75W pour la table de la SAM... d'ou les 60% :rolleyes:), il y a une petite inertie quand même

Posté(e)

Bonjour à  tous,

 

Suis un newbie dans la domotique, alors peut-etre que la question va être un peu idiote, veuillez m'excuser par avance alors ;-)

 

Quel est l'interet/objectif de mettre les dimmer à  60 % quand c'est éteint ? Je ne percois pas la subtilité ??

 

Merci beaucoup..Bon au cas où, je prends de l'avance je sors ;-)

Posté(e)

Afin qu'au prochain allumage via l'interrupteur ça se mette automatiquement à60%, surtout utile avec des spots puissants.

Et quand tu as besoin d'un max de lumière, par exemple pour travailler, faire le ménage,etc, alors tu choisis manuellement 100% en double clic sur l'interrupteur.

Posté(e)

Salut,

 

J'essaye de faire un peu la même chose mais avec une HCL :

710981Image1.png

 

Mais je sais pas pourquoi ça ne marche pas....

Posté(e)

Ouais mais ça ne se lance pas a priori, mais bon je suis pas encore un pro de la box, je vais fouiller un peu pour voir ce qu'il se passe.

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

Salut a tous,

je suis aussi entrain d'essayer de faire que la lumière soit tamisée la nuit si on l'allume...

malheureusement la technique d'allumer à  20% puis d'éteindre ne fonctionne pas pour moi car toute les lumières clignotent....

 

en revanche, j'ai vu sur le forum http://forum.micasaverde.com/index.php?topic=22733.0 que le paramètre 40 permet de définir la luminosité au prochain allumage...

 

la question est comment est ce que en LUA je peux modifier la valeur d'un paramètre???

j'ai essayé:

fibaro:call(14, 'setParameter', 40,20);
fibaro:call(14, 'setProperty', 40, 20)

et d'autre combinaison... mais sans aucun succès... est ce que qqun a une idée comment modifier un paramètre depuis LUA???

 

merci pour votre aide a tous et bon week-end

 

Steven

Posté(e)

Je ne sais pas trop, je n'ai jamais modifié de paramètres via l'API.

Si Krikroff passe par ici, il t'en dira plus.

 

J'ai ce genre de script en stock pour modifier des paramètres via l'API, ça ne ressemble pas du tout à  ce que tu proposes (mais pas testé) :

local json = '{"id":'..deviceID..',"properties":{"parameters":[{"id": 0,"size": 1,"value": 0}]}}'; -- valeurs à  changer dans parametres
local HC2 = Net.FHttp("127.0.0.1", 11111)
local response, status, errorCode = HC2:PUT("/api/devices?id="..deviceID, json)
if tonumber(status) == 200 then
	fibaro:debug("Security locked")
else
	fibaro:debug("err ID: "..deviceID.. " status: "..status)
end

Posté(e)

merci beaucoup pour ton coup de main.

 

malheureusement Net.FHttp ne fonctionne que dans les module virtuel  et pas dans les scènes.... (de ce que j;ai compris...)

 

si @Krikroff a du temps, son aide serait la super bien venu.

 

merci encore pour ton aide Lazer

Posté(e)

Oui dans une scène il faut utiliser net.HTTPClient, je te propose un script dans la journée, sur mon portable c'est difficile d'écrire du code proprement . Et il ne faut pas hésiter àme relancer si je zappe

Envoyé de mon smartphone

  • Upvote 1
Posté(e)

Chose promise ...

 

C'est un bout de code extrait d'une scène "FGMS Fix" :lol:

 

Voici donc un exemple d'utilisation de net.HTTPClient dans une scène pour modifier les paramètres d'un module depuis l' API.

local httpClient = net.HTTPClient();
httpClient:request('http://127.0.0.1:11111/api/devices/849', {
    success = function(response)
      if tonumber(response.status) == 200 then
        print("Updated at " .. os.date());
      else
        print("Error " .. response.status)
      end
    end,
    error = function(err)
      print('error = ' .. err)
    end,
    options = {
      method = 'PUT',
      headers = {
        ["content-type"] = 'application/x-www-form-urlencoded;'
      },
      data = "{\"id\":849,\"properties\":{\"associationSet\":[{\"devices\":[48],\"groupID\":1}, {\"devices\":[1],\"groupID\":2}, {\"devices\":[1],\"groupID\":3}]}}"
    }
  });
Posté(e)

Salut Krikroff,

 

merci pour le code que tu as envoyé. j'essaie de comprendre la syntaxe...

 

on met "propreties" puis le nom/numéro de la propriété puis ensuite la valeur souhaitée?

 

merci et bonne soirée

 

Steven

Posté(e)

Il faut se baser sur un export json du périphérique par exemple àl'aide du Toolkit ou directement dans ton navigateur.

×
×
  • Créer...