Aller au contenu

Déclenchement Par Code Pin : Security Virtual Keyboard


Krikroff

Messages recommandés

Sur une idée originale de razowski :D et dans la continuité du sujet de Steven ici (http://www.domotique-fibaro.fr/index.php/topic/1303-double-clique-pour-confirmer/) voici un module virtuel permettant de déclencher une action sur validation d'un code PIN au préalable renseigné dans le code du Main Loop.
 
Version 1.0.1
 
gallery_3_20_3140.png
 
L'action peut-être le déclenchement d'une scène, l'allumage ou l’extinction d'un périphérique ou bien encore l’exécution d'un script LUA afin de laisser cours à  votre imagination ;). Le clavier est simple avec juste 12 touches: 10 boutons de 0 à  9, un bouton "clear" et un "Enter". La validation est automatique lorsqu' un code à  4 chiffre est renseigné, sinon il faut utiliser la touche correspondant à  "Enter".
 
J' ai fait ça vite fait entre midi et deux et juste pour poser les bases, je ferais évoluer la chose si le code suscite de l’intérêt.
 
Pour la mise en place il faut commencer par créer un variable globale PINCode000, puis d'importer le fichier vfib en téléchargement sur cette page. Ensuite vous devez modifier le code dans le MainLoop pour l'adapter à  vos besoins.
 
Explications succinctes:
 
- ["1010"] : correspond au code qui est formaté sur 4 chiffres (de 1 à  4 chiffres).
- caption  : une légende pour l'action associée au code


- task.object : Peut prendre les valeurs suivantes: scene, device, lua, virtual, globalv
- task.id : Identifiant de la scène, du device, de la varible ou du vd utilisé [option]
- task.value: pour une scène [start, stop], un périphérique [on, off, dim], lua [function], valeur de la variable globale etc.
- task targetId: l'id d'un bouton ou d'un slider dans le cas d'un vd.
 
Les options de l'objet task:
 
-- object: device   - actions:     [on, off, dim]    - id: [num]    - value: [0-100] (option)
-- object: scene    - actions:     [start, stop]      - id: [num]
-- object: virtual   - actions:     [pressButton, setSlider]    - id: [num]    - value: [0-100] - targetId: [num]
-- object: lua         - value:       [lua function] (ex: function() -- lua code here end)
-- object: globalv  - id: [name]    - value: [xxx]

 
cf. code extrait du Main Loop:
 



local codeTable = {
  ["1010"] = {
    caption = "Disarm perimeter with scene",
    task = {
      object = "scene",
      id = 999,
      action = "start" 
    }
  },
  ["2020"] = {
    caption = "lua sample",
    task = {
      object = "lua",
      value = (function() 
        fibaro:debug("Custom lua action!");
      end)
    }
  },
  ["3030"] = {
    caption = "turn on device",
    task = {
      object = "device",
      id = 999,
      action = "off"
    }
  },
  ["4040"] = {
    caption = "dim device",
    task = {
      object = "device",
      id = 999,
      action = "dim",
      value = 25
    }
  },
  ["5050"] = {
    caption = "set global variable 'myvar' to 8989",
    task = {
      object = "globalv",
      id = "myvar",
      value = 8989
    }
  },
  ["6060"] = {
    caption = "set slider id#8 to 75 in virtual device #999",
    task = {
      object = "virtual",
      id = 999,
      targetId = 8,
      action = "setSlider",
      value = 75
    }
  }
};

Modifications:
 
Version 1.0.1 - 08/07/2014
1. Renommage du module en "Security Virtual Keybaord" (ça sert à  rien mais je préfère)
2. Ajout du support pour: scène, vd, variable globale
 
:)

VirtualDevice-Security-Keyboard-V1.0.1.vfib

  • Upvote 7
Lien vers le commentaire
Partager sur d’autres sites

ah! si c'est pour moicphil :P ... mais faut que j'en parle àma femme alors :lol:, sinon tu veux dire quoi par ouvrir un vd depuis un autre vd je ne suis pas certain de bien comprendre ? genre action sur un bouton d'un vd ?

Lien vers le commentaire
Partager sur d’autres sites

Exactement, tu as un VD sous les yeux, tu cliques sur le bouton "Pendre moicphil". Cela a pour effet de lancer ton PinCode VD .. .si tu rentre la bonne combinaison, cela démarre le scénario XXX qui envoi un message àune équipe de gros bras qui habite près de chez lui.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

@Steven, l'été sera chaud :lol: . à‡a risque d'être compliqué cette histoire mais l'idée est top, peut-être un jour avec les plugins mais nous sommes encore dans les fantasmes :P hein !

 

@moicphil, :D bon il faut que je fasse du propre dans le code, je vais en profiter pour ajouter les actions sur vd au passage :P

Lien vers le commentaire
Partager sur d’autres sites

Mise à  jour en Version 1.0.1

1. Renommage du module en "Security Virtual Keybaord" (ça sert à  rien mais je préfère)
2. Ajout du support pour: scène, Virtual Device, variable globale

 

La possibilité d'injecter du code lua dans la boucle devrait couvrir les autres cas de figure ;)

 

Exemple:

 ["9999"] = { caption = "lua code",
task = { object = "lua", value = (function()
  if (tonumber(fibaro:getGlobalValue("SceneTrigger")) == 1) then
	fibaro:call(7, "setValue", "50");
	fibaro:call(8, "setValue", "50");
        fibaro:call(33, "setValue", "50");
  end
end)}
},
-- etc...

Le code sera optimisé dans un prochaine mise à  jour.

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

@q.philippe, c'est toi qui décide ;), tu peux créer autant de code que tu le souhaites pour exécuter toutes les actions que tu souhaites...

 

Exemple: CODE 1001 lance la scène 999, le CODE 1002 stop la scene 999

local codeTable = {
["1001"] = {
  caption = "start scene",
  task = {
  object = "scene",
  id = 999,
  action = "start"
  }
},
["1002"] = {
  caption = "stop scene",
  task = {
  object = "scene",
  id = 999,
  action = "stop"
  }
}
}
};

Après tu peux utiliser l'object "lua" afin d’exécuter des commandes enchainées genre: alllumer le bandeau LED en rouge si fenêtre ouverte sinon armer les détecteurs  ...

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...
  • 4 semaines après...

salut Krikroff, 

je reviens sur ce VD car je suis en train de plancher dessus, en complément du VD Virtuel Alarme Avancée.

Je rencontre des petits soucis.

Visiblement pour que ça fonctionne, il faut taper les 4 chiffres très rapidement sinon ça ne fonctionne pas.

D'autre part, ça ne semble pas fonctionner à  tous les coups.

Enfin, peut-on afficher des étoiles à  la place des chiffres saisis?

Merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

bonjour fredo,

peux-tu m'expliquer comment veux-tu l'utiliser en complément du VD alarme avancée.

j'ai installé ce module, mais je ne sais pas encore comment je vais l'utiliser. Pourquoi retenir un code pour une action alors que rien n’empêche d'agir directement sur le module concerné.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

en fait, le gros problème du VD alarme avancée, c'est qu'il n'y a pas de désactivation par pin code.

Là  je suis en train de voir avec MoicPhil pour l'intégration du VD security Virtual Keyboard dans le VD Alarme Avancée.

ça marche à  peu près, mais il faut entrer les 4 chiffres très rapidement et ça ne fonctionne pas à  tous les coups.

 

Idéalement, je voudrais pouvoir, en appuyant sur le bouton désarmer, aller sur le Pin Code du panneau Alarme, mais ça ne fonctionne pas.

Lorsqu'on désarme en LUA un module ou une scène protégée par pin code, ça les désarme directement sans afficher l'écran Pin code.

 

La seule façon d'afficher la demande Pin code, c'est de déclencher une alarme.

J'aimerai faire un détecteur virtuel pour lequel on pourrait lui donner un statut (armé,normal, en alerte) pour pouvoir le mettre en "armé en alerte" lors de l'appui sur le bouton "désarmer", ça permettrait d'aller sur la demande du pin code.

Autre possibilité, un FGS sur l'entrée filaire d'un FGK101, ça permettrait aussi de créer une alarme.

 

Bref, c'est pas simple 

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...
  • 1 an après...
×
×
  • Créer...