QuickApp GCE Electronics IPX800 v4 - EcoDevice RT2 Version 1.20   Présentation :   Ce QuickApp permet de piloter les 2 produits suivants du fabricant français GCE Electronics :   IPX800 v4


  EcoDevice RT2

    Remarques :   Un même QuickApp ne peut pas piloter 2 produits différents, il faut donc importer 2 fois le QuickApp pour piloter un IPX800v4 et un EDRT2 (ou bien 2 IPX800v4 distincts) Un seul QuickApp peut piloter un IPX800v4 ou un EDRT2 avec toutes leurs extensions branchées derrière (cependant toutes les extensions ne sont pas encore supportées dans la version actuelle) C'est un QuickApp assez complexe, qui permet de piloter des appareils assez complexes (l'IPX800 à lui tout seul est presque une box domotique), avec de très nombreuses possibilités de configuration. Tout n'est pas encore supporté, et il peut subsister des bugs...     Installation du QuickApp :   Importer le QuickApp (fichier fqa) de façon habituelle sur la box Home Center 3, puis changer les paramètres suivants dans l'onglet Variables :     Protocol : protocole à utiliser, normalement : http (le mode direct sur socket TCP n'est pas encore disponible) Address : adresse IP du NAS, par exemple : 192.168.1.1 Port : port de communication, normalement : 80 API_Key : clé API configurée, par exemple : apikey Refresh : intervalle de rafraichissement des informations en secondes, par exemple : 60 (il n'est pas forcément judicieux de baisser cette valeur, car la suite du tuto explique comment configurer la remontée instantanée des changements d'état en mode push)  
Configuration du QuickApp :   C'est la partie la plus complexe, car il faut associer chaque module enfant à créer dans la HC3 avec les différentes entrées/sorties de l'appareil IPX800/EDRT. Chaque module enfant prendra donc la valeur (propriété value) correspondant à l'état de l'entrée/sortie physique ou virtuelle, qu'elle soit analogique ou numérique (improprement appelé digital, terme anglais, dans la doc officielle) En complément, si l'on dispose de pinces ampèremétriques (tores), on peut ajouter la mesure de puissance en Watts (propriété power) et de consommation en kWh (propriété energy) sur chaque module enfant concerné. Très pratique pour toutes les sorties de type relai.   Ne modifier que le contenu du fichier config :     CONFIG       : obligatoire : table    : Tableau contenant toute la configuration des modules enfants à créer avec leur association aux différentes entrées sorties de l'IP800 v4 ou EcoDevice RT2
    device     : obligatoire : table    : Déclaration du module enfant à créer
    name     : obligatoire : string   : Nom du module enfant
    type     : obligatoire : string   : Type du module enfant parmi les valeurs suivantes : BinarySensor | MotionSensor | DoorSensor | WindowSensor | GateSensor | RainDetector | TemperatureSensor | HumiditySensor | LightSensor | MultilevelSensor | PowerSensor | PowerMeter | BinarySwitch | LightSwitch | EnergyMeter | WaterCounter | GazCounter | RollerShutter | FilPilote | Teleinfo
    unit     : facultatif  : string   : Unité de mesure du module     options  : facultatif  : table    : Options spécifiques pour Teleinfo sur EDRT2
    value      : obligatoire : table    : Définition de l'entrée sortie sur l'appareil GCE IPX800 v4 ou EDRT2
    command  : obligatoire : string   : Commande de l'API, parmi les valeurs suivantes : Get | Index | DIndex | Price | DPrice
    argument : obligatoire : string   : Argument de l'API, parmi les valeurs suivantes : A | VA | C | D | VI | PW | R | VO | VR | S | P | T | XTHL | XENO | TI | FP
    pin      : obligatoire : string   : Nom exact du port d'entrée/sortie retourné par l'API, par exemple "R1", "A2", "D3", "C4", "VR1-2", ...
    type     : facultatif  : string   : Type du capteur prédéfini parmi les valeurs suivantes (applicable aux entrées analogiques) : "SHT-X3-Temp-TC5050" | "SHT-X3-SH100" | "SHT-X3-Light-LS100" | "TC100" | "X400-TC100" | "XTHL-Temp" | "XTHL-Hum" | "XTHL-Light"
    formula  : facultatif  : function : Fonction permettant de calculer la valeur finale, typiquement pour les capteurs analogiques non prédéfinis par leur type, ou bien pour inverser l'état d'une valeur binaire
    power      : facultatif  : table    : Définition d'une entrée de comptage (tore) permettant d'ajouter la mesure de puissance (en Watts) au module enfant
    command  : obligatoire : string   : Commande de l'API, par exemple "Get"
    argument : obligatoire : string   : Argument de l'API, par exemple "VA", "S", ...
    pin      : obligatoire : string   : Nom exact du port d'entrée retourné par l'API, par exemple "VA17", "P1_SSP1", ...
    type     : facultatif  : string   : Type du capteur prédéfini parmi les valeurs suivantes : "X400-CT-10A" | "X400-CT-20A" | "X400-CT-50A" | "X400-CT-100A"
    formula  : facultatif  : function : Fonction permettant de calculer la valeur finale, typiquement pour les capteurs analogiques non prédéfinis par leur type
    energy     : facultatif  : table    : Définition d'une entrée de comptage (tore) permettant d'ajouter la mesure d'énergie (en kWh) au module enfant
    command  : obligatoire : string   : Commande de l'API, par exemple "Get"
    argument : obligatoire : string   : Argument de l'API, par exemple "C", ...
    pin      : obligatoire : string   : Nom exact du port d'entrée retourné par l'API, par exemple "C1", ...
    formula  : facultatif  : function : Fonction permettant de calculer la valeur finale, typiquement pour convertir les Wh en kWh     Pour explorer les noms des entrées/sorties disponibles (pin), se référer à la documentation officielle du Wiki GCE : API IPX800 v4 : https://wiki.gce-electronics.com/index.php?title=API_V4 API EcoDevices RT2 : https://wiki.gce-electronics.com/index.php?title=API_EDRT     Cas particulier : la Téléinfo sur l'EcoDevice. Ce module enfant est de type com.fibaro.energyMeter, et permet de remonter les 2 informations suivantes : puissance active (W) dans la propriété value, et énergie (kWh) dans la propriété energy (cette dernière propriété contient la somme de tous les index des différentes tranches horaires de l'abonnement en cours). Cependant il ne faut pas spécifier power et energy dans la ligne de configuration. La syntaxe comme donnée en exemple est correcte, en spécifiant pin = "EAST" (Energie Active Soutirée Totale) : {device = {name = "Téléinfo", type = "Teleinfo", options = {VG = "TELEINFO_Tarif"}}, value = {command = "Get", argument = "TI", pin = "EAST"}}, Note : cette ligne de configuration doit être recopiée telle quelle, quel que soit le mode de la téléinformation (standard/historique) ou le contrat d'abonnement (Base, HC/HP, Tempo, EJP, etc.).   Remarquez également le paramètre VG qui permet de stocker le tarif en cours (HC/HP) dans une variable globale, information qui peut être utilisée dans des scénarios. Celle-ci est créée automatiquement :  
Si vous disposez d'un compteur Linky en mode Standard, avec des panneaux photovoltaïques, il est également possible de récupérer l'injection, en spécifiant pin = "EAIT" (Energie Active Injectée Totale) : {device = {name = "Injection", type = "Teleinfo"}, value = {command = "Get", argument = "TI", pin = "EAIT"}},     Création des modules enfants :   Cliquer sur le bouton "Create Devices". Les modules enfants sont automatiquement créés dans l'interface.  Les appuis suivants sont inutiles, et sans danger, car les modules enfants ne seront pas créés plusieurs fois.       Configuration des événements Push :   Cette étape est facultative. Les événement Push permettant de remonter instantanément le changement d'état d'une entrée/sortie sans attendre au maximum 60 seconde que le QuickApp ne relise de lui-même la nouvelle valeur.L'idée est d'appeler la fonction push() de chaque module enfant identifié par son ID, en lui passant en argument la nouvelle valeur.   Exemples de configuration sur IPX800 v4 :   Pour un relai, ou de façon plus générale toutes les entrée/sortie de type numérique, c'est à dire prenant 2 valeurs binaires (ouvert/fermé, on/off, ...)   Dans la configuration des Périphériques, créer un Push : Entrer les informations suivantes : - Adresse IP de la HC3 - utilisateur et mot de passe (il est formellement déconseiller d'utiliser le compte admin, il faut créer un compte dédié sur la HC3 avec les droits d'accès uniquement aux modules enfants créés par le QuickApp) - URL ON : /api/callAction?deviceID=93&name=push&arg1=1 - URL OFF : /api/callAction?deviceID=93&name=push&arg1=0 Remplacer uniquement l'ID par celui de votre module enfant. Notez sur seul la valeur de l'argument change entre ces 2 URL.   Dans les Scénarios, créer une nouvelle Scène, avec une action ON/OFF :   Choisir le relai qui déclenche l'événement :   Choisir le Push créé précédemment :   Tester le bon fonctionnement. Le changement d'état de l'entrée/sortie sur l'IPX800 doit être répercuté immédiatement dans la box HC3, que ça soit sur l'interface Web ou bien l'application mobile. De plus, la zone de debug du QuickApp doit faire apparaitre un message similaire : [11.01.2021] [21:38:20] [DEBUG] [QA_IPX800_46]: onAction: {"args":[1],"deviceId":93,"actionName":"push"}
[11.01.2021] [21:38:20] [TRACE] [QA_IPX800_46]: Digital Output R1 #93 Néon établi R1 value changed from false to true     Pince ampèremétrique, ou de façon générale toute entrée analogique (la pince ampèremétrique branchée sur l'extension X400-CT est un cas particulier qui est reconnue comme une entrée analogique virtuelle) Les URL à saisir sont un peu plus particulières, car on va passer 2 arguments : la valeur proprement dite de l'entrée analogique, ainsi que l'attribut "power" : - URL ON : /api/callAction?deviceID=93&name=push&arg1=$VA17&arg2=power - URL OFF : /api/callAction?deviceID=93&name=push&arg1=$VA17&arg2=power Cette fois-ci les 2 URL sont identiques, il faut juste remplacer l'ID et l'identifiant de l'entrée analogique   Dans les Scénarios, créer une nouvelle Scène, avec une action ON/OFF :   Choisir l'entrée analogique, avec les 2 seuils haut et bas qui déclenchent l'événement :   Choisir le Push créé précédemment :   Tester le bon fonctionnement. Par exemple en couplant un Push pour le changement d'état du relai comme décrit plus haut, et un push pour le passage de la consommation au dessus du seuil (47 W dans mon exemple), le log affiche les 2 événements qui s'enchainent instantanément : [11.01.2021] [21:38:20] [DEBUG] [QA_IPX800_46]: onAction: {"args":[1],"deviceId":93,"actionName":"push"} [11.01.2021] [21:38:20] [TRACE] [QA_IPX800_46]: Digital Output R1 #93 Néon établi R1 value changed from false to true [11.01.2021] [21:38:21] [DEBUG] [QA_IPX800_46]: onAction: {"args":[558,"power"],"deviceId":93,"actionName":"push"} [11.01.2021] [21:38:21] [TRACE] [QA_IPX800_46]: Digital Output R1 #93 Néon établi R1 power changed from 0.0 to 192.0     Graphiques Téléinfo sur NAS :   Teaser       Changelog :   v1.00 : Janvier 2021 Version initiale v1.10 : Mars 2021 [IPX800] Correction de l'inversion des volets roulants [IPX800] Ajout des formules pour la sonde TC-100 (capteur de température) [IPX800/EDRT2] Ajout du support de l'extension X-THL (sonde de température/humidité/luminosité) [IPX800/EDRT2] Ajout du support de l'extension X-4FP (fil pilote) [EDRT2] Ajout du support des abonnements TEMPO et EJP [EDRT2] Ajout du support du compteur Linky en mode téléinfo standard [EDRT2] Ajout du support des commandes "DIndex", "Price" et "DPrice" v1.20 : Janvier 2022 Lorsque le QuickApp parent est désactivé (disabled), les enfants sont également désactivés automatiquement, et un message figure sous l’icône (log) => et donc exclus de DomoCharts Amélioration de l'état de nœud mort (dead) lors d'un problème de communication réseau Le QuickApp répond aux sollicitations de réveil (wakeUpDeadDevice) Ajout des nouveaux types EnergyMeter (com.fibaro.energyMeter) et PowerMeter (com.fibaro.powerMeter) Le type PowerSensor (com.fibaro.powerSensor) est déprécié par Fibaro et ne devrait plut être utilisé (mais il est toujours fonctionnel, comportement identique au nouveau type PowerMeter) Le type Teleinfo est maintenant de type "com.fibaro.energyMeter" afin d'être configurable comme Compteur d’énergie principal dans les paramètres de la HC3 Le type Teleinfo ne remonte plus la puissance apparence (en VA) dans sa propriété value (de toute façon c'était une information peu utile) Le type Teleinfo remonte l'index d'énergie (en kWh) dans sa propriété "value", et la puissance active (en W) dans sa propriété "power". Le type Teleinfo supporte l'injection dans le cas où le compteur Linky est paramétré en mode Standard Correctifs et améliorations divers     Téléchargement :   Nouvelle installation : importer le fichier suivant pour créer un nouveau QuickApp : GCE_v1.20.fqa   Mise à jour : copier/coller le contenu des fichiers suivants dans le QuickApp existant : Fichier main : GCE v1.20 - Main.lua Fichier GCE : Library - GCE v1.21.lua Fichier tools : Library - tools v2.20.lua