Aller au contenu

Protéger Un Module Par Mot De Passe


jjacques68

Recommended Posts

Bonjour,

 

J'ai actuellement un WallPlug qui alimente une armoire informatique et je souhaite savoir s'il est possible de verrouillé ce WallPlug.

 

C'est à  dire, qu'il y ait une demande de mot de passe lorsque l'on clique sur on/off depuis un iPhone/iPad par exemple.

 

J'ai vu qu'on pouvait le cacher dans le système, mais alors du coup la consommation n'apparait plus non plus...

Je souhaite qu'il reste visible mais que sont utilisation soit protégée.

Une fausse manipulation, un doigts qui traine là  où il faut pas sur l'écran et hop, ça coupe tout :(... pas bon ça...

 

merci d'avance pour vos conseil...

 

JJacques68

Modifié par Lazer
Sujet déplacé
Lien vers le commentaire
Partager sur d’autres sites

Oui c'est possible de verrouiller le WallPlug, dans les paramètres du module ;) Pour la protection par mot de passe, une piste de travail ici : http://www.domotique-fibaro.fr/index.php/topic/1475-d%C3%A9clenchement-par-code-pin-security-virtual-keyboard/

Lien vers le commentaire
Partager sur d’autres sites

il y a peut-être plus simple, si en fait tu ne veux pas l'éteindre par mégarde :

mettre le paramètre 1 (Always On) àactif.

Tu ne sauras même plus l'éteindre par l'interface ou physiquement avec le petit bouton.

Il agira donc uniquement comme mesure d'intensité de courant.

Je n'ai pas testé si par LUA il était possible de l'allumer/éteindre.

Lien vers le commentaire
Partager sur d’autres sites

Oui jojo c'est bien ma proposition, d'utiliser les paramètre du wallplug pour cela ;) et oui c'est possible en lua: désactiver le paramètre 1 allumer ou éteindre puis réactiver le paramètre 1. J'utilise cela pour avoir la main sur la xboxone familiale [emoji16]

Envoyé de mon smartphone

Lien vers le commentaire
Partager sur d’autres sites

alors cela va être TRES chaud pour l'expliquer.

Je te propose de regarder dans ma signature un exemple de comment on peut jouer avec les json (Panneaux de chauffage en fonction...)

Ou si Krikroff repasse, comme il a fait cela pour sa xboxone, il pourrait te donner son code "tout cuit" ?

Lien vers le commentaire
Partager sur d’autres sites

----------------------------------
-- DO not change bellow this line
---------------------------------

local HC2 = Net.FHttp("127.0.0.1",11111)
-- détermination de la version du firmware
local GETheating = ""
payload = "/api/settings/info"
response, status, errorCode = HC2:GET(payload)
if tonumber(status) == 200 
  then
    jsonTable = json.decode(response)
    if tonumber(jsonTable.softVersion) >= 4 
      then
	version = "4.x"
        GETheating = "/api/panels/heating/"
      else
	version = "3.x"
        GETheating = "/api/panels/heating?id="
      end
   else
   fibaro:debug('<span style="color:red;">status='..status..', errorCode='..errorCode..',    payload='..payload..', response='..response..'</span>')
end

-- fonction de mise à  jour du heating panel
-- si handTemperature == 0, c'est en auto
function HeatPanel(id,HandTmp)
jsonpanel = HC2:GET(GETheating ..id)
jsontable = json.decode(jsonpanel)
handTimestamp = jsontable.properties.handTimestamp
handTemperature = jsontable.properties.handTemperature
name = jsontable.name
NouveauPanel = ('{"id":' ..id.. ',"name":"'..name.. '","properties":{"handTemperature":' ..handTemperature.. ',"handTimestamp": ' ..handTimestamp.. ',"vacationTemperature":' ..HandTmp.. '}}')
HC2:PUT(GETheating ..id, NouveauPanel)
end

c'est dans ce code que ça se trouve ? mais là  tu ne fais que lire des valeurs en json ? non ? tu n'en modifies pas ?

 

 

Lien vers le commentaire
Partager sur d’autres sites

je les lis, puis les modifient ici

NouveauPanel = ('{"id":' ..id.. ',"name":"'..name.. '","properties":{"handTemperature":' ..handTemperature.. ',"handTimestamp": ' ..handTimestamp.. ',"vacationTemperature":' ..HandTmp.. '}}')
HC2:PUT(GETheating ..id, NouveauPanel)
Lien vers le commentaire
Partager sur d’autres sites

Bon en gros cela donne ceci:

 

Pour le ON

local deviceID = 445; 

local json = '{"id":'..deviceID..',"properties":{"parameters":[{"id": 1,"size": 1,"value": 0}]}}';
local HC2 = Net.FHttp("127.0.0.1", 11111);
local response, status, errorCode = HC2:PUT("/api/devices/"..deviceID, json)

if tonumber(status) == 200 then
  fibaro:debug("Security locked");
  fibaro:sleep(1000);
  fibaro:call(deviceID, "turnOn");
  fibaro:debug("PSU ON");
else
  fibaro:debug("Try again "..deviceID.. " "..status); 
end

Et pour le OFF

local deviceID = 445; 

local json = '{"id":'..deviceID..',"properties":{"parameters":[{"id": 1,"size": 1,"value": 1}]}}';
local HC2 = Net.FHttp("127.0.0.1", 11111);
local response, status, errorCode = HC2:PUT("/api/devices/"..deviceID, json)

if tonumber(status) == 200 then
  fibaro:debug("Security unlocked");
  fibaro:sleep(1000);
  fibaro:call(deviceID, "turnOff");
  fibaro:debug("PSU OFF");
else
  fibaro:debug("Try again "..deviceID.. " "..status); 
end

Et pour le FUN ;) ...

 

 

 

Capture.PNG

post-3-0-53392500-1452385278_thumb.png

Lien vers le commentaire
Partager sur d’autres sites

Re-bonjour messieurs !!

 

alors je viens donner des nouvelles, donc j'ai créé une scène en mettant ton code Krikroff et malheureusement j'ai un message d'erreur...

Voilà  le printscreen : (miniature)

 

si tu as une idées...

post-5094-0-85262100-1452417329_thumb.png

Lien vers le commentaire
Partager sur d’autres sites

Oui ce code ne fonctionne que dans un VD. Je te post une version compatible avec une scène asap...

Envoyé de mon smartphone

Lien vers le commentaire
Partager sur d’autres sites

@jjacques68,

 

Voici la version scène pour enlever la protection puis éteindre le WallPlug, je te laisse faire la version inverse: il faut mettre les mains dedans pour que cela rentre ;)

local deviceID = 445

local httpClient = net.HTTPClient();
httpClient:request('http://127.0.0.1:11111/api/devices', {
    success = function(response)
      if tonumber(response.status) == 200 then
        print("Security unlocked");
        fibaro:sleep(1000);
        fibaro:call(deviceID, "turnOff");
        print("PSU OFF");
      else
        print("Response error " .. response.status)
      end
    end,
    error = function(err)
      print('Request error ' .. err)
    end,
    options = {
      method = 'PUT',
      headers = {
        ["content-type"] = 'application/json'
      },
      data = '{"id":'..deviceID..',"properties":{"parameters":[{"id": 1,"size": 1,"value": 1}]}}'
    }
  });
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...