MAM78 Posté(e) le 13 novembre 2020 Signaler Posté(e) le 13 novembre 2020 (modifié) IPX Device Manager Préambule : Vous trouverez ci-dessous le nouveau Virtual Device visant piloter un device d'un IPX800 ou tout autre module pilotable avec des requêtes HTTP. Le VD permet d'intégrer de nombreux modes paramétrables de type On / Off et pilotables selon un timer programmable en mode automatique ou manuel. Le projet exploite l'API mise à disposition par GCE à l'adresse suivante : http://gce.ovh/wiki/index.php?title=API_V4 A l'origine de projet, je cherchais une solution pour mettre en marche une sirène connectée à un relais du l'IPX800 V4. Mais du coups, ce VD peut être utilisé pour activer et désactiver n'importe quels : sorties relais de l'IPX800V4 et des extensions entrées et sorties virtuelles entrées analogiques virtuelles extensions pilotant les volets roulants extensions Fils Pilotes extensions X-DIMMER pour piloter vos lumières compteurs thermostats volets roulants Enocean actionneurs Enocean Il est également totalement adaptable pour gérer tous types de devices pilotables par des requêtes HTTP. Le Projet : Le but du projet consiste à (pour le moment) : pouvoir activer ou désactiver un device selon des requêtes HTTP programmer un minuteur qui détermine une durée d'activation du device et sa désactivation automatique une fois le temps écoulé. permettre d'avoir plusieurs modes d'activation pour un même device (moduler les durées, agir sur les paramètres du device, ...) pouvoir choisir les désignation des états affichées (Arrêt/Marche, On/Off, Allumé/Eteint, ...) et selon la langue que vous souhaitez. pour afficher les icônes correspondantes aux différents modes définis Quelques exemples de modes. Mise en marche d'une sirène d'alarme pour une durée déterminée Activer l'arrosage automatique pour une durée déterminée Allumer une lumière pour une durée déterminée Activer un chauffage pour une durée déterminé ... Vos idées/suggestions sont le bienvenues Pré-requis : Disposer d'un IPX800 V4 ou tout autre module pilotable par requête HTTP Installation : Télécharger et installer le Virtual Device ci-dessous (sa dernière version) Configuration : Du Virtual Device : Dans l'onglet Avancé du VD importé, il convient de : De nommer votre VD (ex. : Sirène Alarme) à votre convenance De désigner la pièce où est situé votre device Modifier les icônes de chaque bouton pour les faire correspondre à l'état du Device. Ne pas oublier de sauvegarder Cf. image ci-dessous : Configurer dans le bouton btUpdate votre VD pour configurer les différents modes (celui avec la fusée) : C'est ce bouton qui s'occupe de piloter vos différents modes : Renseigner les paramètres indiqués ci-dessous : Dans la structure HTTP_Device : ["Name"] = "IPX800 V4", ["IP"] = "192.168.0.50", ["Port"] = "80", ["LoginAuth"] = false, ["User"] = "xxx", ["PSW"] = "yyy", ["URI"] = "/api/xdevices.json?key=ZZZ&", ["Id"] = "R1", ["OnValue"] = 0, ["Commande"] = "" Name = désignation de votre Device. Utilisé uniquement pour les messages dans les logs. Port = port réseau pour accéder à l'API de votre DeviceIP = adresse ID pour accéder à l'API de votre Device LoginAuth = Indicateur true / false pour préciser s'il faut utiliser l'APIKEY où le login et le mot de passe pour accéder à l'API de votre Device User = login d'accès à l'API de votre Device PSW = mot de passe d'accès à l'API de votre Device URI = Lien URI (URL) d'accès à l'API de votre Device ZZZ = votre Clé APIKEY personnelle (pour un IPX800 V4). Par défaut c'est : apikey Id = Désigne votre device (exemple : "R2" pour désigner le relais n° 2 de l'IPX800 V4, VI2 pour un Virtual Input, ...). Utilisé pour vérifier l'état du device. OnValue = Désigne la value de votre device lorsqu'il est On (exemple : 0 pour désigner le relais est normalement Ouvert pour une sirène, Pour un arrosage ce sera 1 pour normalement fermé). Commande = A ne pas renseigner. Utilisé lors de l'exécution du code pour prendre la valeur contenue dans la variable HTTP_DeviceCommande de la structure ModeParams selon le mode sélectionné. Les variables ci-dessous : local Mode_IconOff = 1128 -- The turn off icon local Mode_IconOn = 1127 -- The turn on icon local Mode_StatusOff = "Arrêt" -- Désignation utilisée pour représenter le mode Off. Mettre valeur que la même variable présente dans le Main Loop. local Mode_StatusOn = "Marche" -- Désignation utilisée pour représenter le mode On local ModeIdGetValue = 1 à mettre en cohérence avec les données de la structure ModeParams local ModeIdOff = 2 à mettre en cohérence avec les données de la structure ModeParams local ModeIdOn = 3 à mettre en cohérence avec les données de la structure ModeParams Dans la structure ModeParams : Exemple pour le mode Off. ["Id"] = ModeIdOff, ["ActionMode"] = Mode_StatusOff, ["ActionDesc"] = "Arrêt de la sirène", ["HTTP_DeviceCommande"] = "ClearR=001", ["HTTP_Action"]= "SetValue", ["timer"] = "--:--", ["icon"] = Mode_IconOff }, Id = identifiant du mode pouvant prendre une valeur de 1 à N. Vous pouvez également indique la variable ModeIdOff ou ModeIdOn ActionMode = Désignation courte que sera affichée dans le label (lblState et lblMode). Vous pouvez également renseigner les variables Mode_StatusOff ou ModeStatusOn ActionDesc = Désignation longue qui sera renseignée dans l'objet log (cf. fonction fibaro:log) ainsi que dans la log du bouton btUpdate à chaque changement de mode HTTP_DeviceCommande = Chaine de commande ajoutée à l'URI pour commander l'API de votre Device et exécuter le mode correspondant. Pour un Device de type Relais, il convient d'utiliser les commandes : SetR=002, ClearR=002, Get=R) Voir documentation de l'API IPX800 V4. Attention d'inverser les valeurs SetR avec ClearR selon que vous utilisez un Device normalement Ouvert ou normalement fermé. HTTP_Action = Désigner si la commande correspond à une fonction SetValue ou GetValue. GetValue est utilisé pour récupérer l'état actuelle d'un Device sur l'IPX timer = Désigner si la durée durant laquelle le Device reste en mode On (Marche). "--:--" correspond au mode arrêt. "" (vide) permet de désigner que le mode on reste permanent jusqu'à ce qu'un autre mode soit exécuté ou que le timbre soit modifié. icon = Désigner l'ID de l'icône correspondant au mode définit. Vous pouvez également indique la variable Mode_IconOff ou Mode_IconOn Voici un exemple de la structure ModeParams avec 2 modes additionnels. local ModeParams = { { ["Id"] = ModeIdGetValue, ["ActionMode"] = "Valeur actuelle", ["ActionDesc"] = "Reccupération de la valeur actuelle de l'Entrée Virtuelle sur l'IPX", ["HTTP_DeviceCommande"] = "Get=R", ["HTTP_Action"]= "GetValue", ["timer"] = "--:--", -- Not used in this case ["icon"] = "" -- Not used in this case }, { ["Id"] = ModeIdOff, ["ActionMode"] = Mode_StatusOff, ["ActionDesc"] = "Arrêt de la sirène", ["HTTP_DeviceCommande"] = "SetR=01", ["HTTP_Action"]= "SetValue", ["timer"] = "--:--", ["icon"] = Mode_IconOff }, { ["Id"] = ModeIdOn, ["ActionMode"] = Mode_StatusOn, ["ActionDesc"] = "Mise en marche de la sirène (sans minuteur)", ["HTTP_DeviceCommande"] = "ClearR=01", ["HTTP_Action"]= "SetValue", ["timer"] = "", ["icon"] = Mode_IconOn }, { ["Id"] = 4, ["ActionMode"] = Mode_StatusOn, ["ActionDesc"] = "Mise en marche de la sirène pendant une minute", ["HTTP_DeviceCommande"] = "ClearR=01", ["HTTP_Action"]= "SetValue", ["timer"] = "01:00", ["icon"] = Mode_IconOn }, { ["Id"] = 5, ["ActionMode"] = Mode_StatusOn, ["HTTP_DeviceCommande"] = "ClearR=01", ["HTTP_Action"]= "SetValue", ["ActionDesc"] = "Mise en marche de la sirène pendant 2 minutes", ["timer"] = "02:00", ["icon"] = Mode_IconOn } } Ne pas oublier de sauvegarder Configurer les différents boutons correspondant aux différents mode : Pour chacun des boutons (Marche / Arrêt) ainsi que les différents modes additionnelles (derniers boutons du VD), il convient de modifier la variable : local ModeId = 3 ModeId = Identifiant du mode. Il doit correspondre au contenu de la variable Id de la structure ModeParam présente dans le bouton "btUpdate" Assigner au bouton l'icône correspondant au mode définit. Cela évite les changements d'affichage des logos. Nota : Vous pouvez ajouter autant de bouton que vous le souhaitez en respectant les principes ci-dessus et en les ajoutant à la fin du VD. Configurer le Main Loop du VD : Modifier la valeur de la variable ci-dessous. local Mode_StatusOff = "Arrêt" -- Désignation utilisée pour représenter le mode Off. Mettre valeur que la même variable présente dans le bouton btUpdate Utilisation du VD : Vous pouvez tout simplement cliquer sur l'un des boutons correspondant au mode que vous souhaitez exécuter. Il s'arrêtera lorsque vous cliquerez le bouton "btON" (Arrêt) ou une fois le timer terminé si programmé. Avant de cliquer sur le bouton "btON" (Marche), vous pouvez paramétrer le Timer en utilisant les boutons haut et bas (minutes et secondes). Ce qui aura pour effet de définir une durée d'exécution. Durant l'exécution d'un mode, vous avez la possibilité d'en lancer un autre mode. il se substituera au précédent. Vous pouvez évidement commander le VD depuis une scène ou un autre VD en simulant un clic sur le bouton correspondant au mode souhaité. Préalablement à la simulation du clic sur le bouton correspondant au scenario voulu, vous pouvez également renseigner le Label lblTimer avec une durée (au format mm:ss) pour définir une durée d'exécution de celui-ci Par exemple : vous pouvez utiliser GEA pour lancer un scénario tout en utilisant le timer. Exemple : % properties 243 ui.lblEtat.value -- Si la valeur de la variable Global "PA_Mode" est égale à "Jour" (Alarme activée) -- Si la valeur du label "lblEtat" du VirtualDevice numéro 243 est = à "Arrêt" (la sirène est arrêtée) -- Assigne la valeur "01:00" au label lblTimer du VD 326 -- Appui sur le bouton 1 du VD 326 pour activer la sirène d'alarme pour 1 minutes GEA.add({{"Global", "PA_Mode", "Jour"}, {"Label", 243, "lblEtat", "Marche"}}, -1, "Détection présence devant porte garage", {{"Label", 326, "lblTimer", "01:00"}, {"VirtualDevice", 326, 12}}, "Détection devant porte garage, activation de la sirène d'alarme") Versions : V1.0.0 : du 13/11/2020 -> Intialisation du projet V1.1.0 : du 15/11/2020 -> Ajout du paramètre du paramètre "Id" dans la structure HTTP_Device. Voir explication ci-dessus. V1.2.0 : du 15/11/2020 -> Ajout du paramètre du paramètre "OnValue" dans la structure HTTP_Device. Voir explication ci-dessus. V1.3.0 : du 15/11/2020 -> Ajout d'une variable Mode_StatusOff dans le Main Loop. Voir explication ci-dessus. Evolutions à venir : A voir selon vos suggestions Dernière version du VD : Sirène_Alarme.vfib Modifié le 15 novembre 2020 par MAM78 3
MAM78 Posté(e) le 15 novembre 2020 Auteur Signaler Posté(e) le 15 novembre 2020 Nouvelle version V1.2.0 : Ajout d'une variable "OnValue" pour pouvoir préciser quelle est la valeur du Device lorsqu'il est en position ON (marche). Précision dans la documentation sur la configuration d'une Device selon qu'il est en position normalement Ouvert ou normalement Fermé. Nota : N'ayant pas HC3 pour le moment je continue de créer des VD et Scènes pour nos HC2 en attendant l'achat d'une HC3. Je pense que nous sommes encore nombreux à utiliser nos HC2, du coup je partage
MAM78 Posté(e) le 15 novembre 2020 Auteur Signaler Posté(e) le 15 novembre 2020 (modifié) Comme j'aime bien mes icônes pour l'arrosage goutte à goutte et Sprinkler, je les partage A voir sur fond noir. Elles rendent encore mieux Modifié le 15 novembre 2020 par MAM78
MAM78 Posté(e) le 15 novembre 2020 Auteur Signaler Posté(e) le 15 novembre 2020 Nouvelle version V1.3.0 : du 15/11/2020 -> Ajout d'une variable Mode_StatusOff dans le Main Loop. Voir explication dans la documentation.
Messages recommandés