Récupérer facilement tous les modules HC2/HCL dans Jeedom. EasyHC2

hc2_jeedom

J’utilise plusieurs protocoles domotiques, jusqu’au aujourd’hui je me servais de #FHEM comme passerelle domotique. Le système et puissant mais vraiment pas facile a apprivoiser, je perdais trop de temps pour la configuration. Alors je me suis dit, allons voir de coté de #JEEDOM. Il gère les commandes Http alors je peux exploiter les API de #Fibaro et cerise sur le gâteau, il peux également être commandé par ses propres API. Que du bonheurs.

Coté #Jeedom l’importation des modules est facile mais trop longe, pffff (plus de 500 objets dans la HC2). En regardant de plus prêt je m’aperçois que Jeedom gère aussi le Json et les scripts, alors pourquoi pas exploiter ça a mon avantage et de créer un script qui m’importe mes modules HC2 facilement et rapidement.

Le script EasyHC2 est né !

  1. Installation
  2. Importation des modules par type
  3. Liste des Taches Disponible:
  4. Solution de rafraîchissement régulier et instantané
  5. Téléchargement

Installation:

Il suffit de télécharger le script via le Plugin > Programmation > Script > Market

installation_script_1

Utilisation:

  • Plugin > Programmation > Script > Ajouter
  • Donner lui un nom (ex:Lampe Salon)
  • Commandes
  • Ajouter une commande script
  • Sélectionner le script HC2.php précédemment téléchargé
  • Ajouter login de la HC2, Mot de passe et le ID_HC2 du module séparé par un espace
  • Ajouter une tache en fonction de type de module et vos besoins
  • Attribuer un Template

Importation des modules par type:

Interrupteurs / Variateurs

lumières interrupteur variateur

lumières interrupteur variateur

 

Affichage d »état

Nom: Etat (de votre choix)
Type script: Script
Type: Info + Binaire
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Etat

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=Etat

interupteur_etat jeedom hc2

Affichage de l’Etat

Affichage boutons ON OFF

Nom: On ou Off
Type script: Script
Type: Action
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=On

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=On

ou

/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=Off

interupteur_on_off interupteur_etat jeedom hc2

Affichage bouton ON OFF

Affichage de la Consomation (W)

Nom: Etat (de votre choix)
Type script: Script
Type: Info + Numérique
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Power

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=Power

interupteur_on_off interupteur_etat jeedom hc2

Affichage Power

 

Températures

temperatures

Températures

Affichage de la Température

Nom: Tmp (de votre choix)
Type script: Script
Type: Info + Numérique
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Etat
Divers: °C

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=Etat

température jeedom

Température

Humidité

humidite

Humidité

Affichage Humidité

Nom: Hum (de votre choix)
Type script: Script
Type: Info + Numérique
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Etat
Divers: %

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=Etat

humidite

Humidité

Luminosité

luxmetre

Luxmetre

Affichage Luminosité

Nom: Lux(de votre choix)
Type script: Script
Type: Info + Numérique
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Etat
Divers: Lux

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=Etat

luxmetre_config

Luxmetre configuration

 

Détecteur de mouvement

Détecteur de mouvement

Détecteur de mouvement

Affichage Etat de Détecteur de Mouvement

Nom: Mvt (de votre choix)
Type script: Script
Type: Info + Binaire
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Etat

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=382 tache=Etat

Détecteur de Mouvement

Détecteur de Mouvement

Affichage Etat Armement de Détecteur de Mouvement

Nom: Armé (de votre choix)
Type script: Script
Type: Info + Binaire
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Armed

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=382 tache=Armed

Etat Armement Detecteur de mouvement

Etat Armement Detecteur de mouvement

Affichage de bouton Arm Disarm

Nom: Arm ou Disarm
Type script: Script
Type: Action
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Arm

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=Arm

ou

/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=215 tache=Disarm

arme_desarme_detecteur

Arme_Desarme_Detecteur

Volets roulants

volet

Volet

Affichage d »état

Nom: Etat (de votre choix)
Type script: Script
Type: Info + Binaire
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Etat

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=242 tache=Etat

volet_etat

Volet Etat

Affichage de variateur

Nom: Var (de votre choix)
Type script: Script
Type: Action + Cursor
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=#slider#

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=242 tache=#slider#

volet_variateur

Volet Variateur

Affichage de boutons Open Close STOP

Nom: Open ou Close ou STOP
Type script: Script
Type: Action
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=0

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=242 tache=100

ou

/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=242 tache=0

ou

/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=242 tache=Stop

volet_boutons

Volet Boutons

 

Détecteur d’ouverture

detecteur-ouverture

détecteur-ouverture

Affichage Etat de Détecteur d’ouverture

Nom: Etat (de votre choix)
Type script: Script
Type: Info + Binaire
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Etat

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=22 tache=Etat

detecteur-ouverture-etat

detecteur-ouverture-etat

Affichage Armement de Détecteur d’ouverture

Nom: Armée (de votre choix)
Type script: Script
Type: Info + Binaire
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Armed

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=22 tache=Armed

detecteur-ouverture-etat

détecteur-ouverture-état

Affichage de bouton Arm Disarm

Nom: Arm ou Disarm
Type script: Script
Type: Action
Requête: /var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=MotDePasse device=ID_module_HC2 tache=Arm

Exemple:
/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=22 tache=Arm

ou

/var/www/html/core/php/../../plugins/script/core/ressources/hc2.php IP=ip_de_HC2 login=admin mdp=12345678 device=22 tache=Disarm

detecteur-ouverture-boutons

détecteur-ouverture-boutons

 

Liste des Taches Disponible:

  • Nom -> Nom de Module
  • Etat -> Etat de Module (Ouvert/Fermé – Armé/Désarmé – Allumé/Eteint ….)
  • Power -> Consommation énergétique
  • Armed -> Etat de armement des modules de détection de ouverture/mouvement
  • Type -> Le type d’action a exécuter:
    • On -> Actionne interrupteur
    • Off ->  Des-actionne interrupteur
    • #slider# -> Variateur de 0 à 100%
    • 0 -> Fermeture volet ou  extinction interrupteur à variation
    • 100 -> Ouverture volet ou  allumage interrupteur à variation
    • Stop -> Arrêt d’ouverture ou fermeture de volets
    • Arm -> Armement de détecteur ouverture/mouvement
    • Disarm -> Des-armement de détecteur ouverture/mouvement

Attention: Pour Armement / Des-armement des détecteurs ouverture/mouvement le code PIN n’est pas pris en compte vous devait le désactiver dans la HC2 pour le module concerné.

Scénario de réveil toutes les minutes:

Pour obtenir le rafraîchissement régulière de l’état des modules HC2 dans Jeedom je vous conseil de créer un scénario qui le declanche toutes les minutes par exemple.

scénario jeedom hc2

scénario jeedom hc2

Pour les module plus sensible comme détecteur d’ouverture ou de mouvement je vous conseil de déclencher un trigger dans la HC2 et utiliser les API HTML de Jeedom pour changer l’état instantanément.

Exemple de script LUA qui envoi la commande de Rafraîchissement au détecteur de mouvement Jeedom

1
2
3
4
5
6
7
8
9
10
--[[
%% properties
XX value
%% globals
--]]
 
local mvt_device = XX;
if (( tonumber(fibaro:getValue(mvt_device, "value")) > 0 )  then
http:request("http://"..IP_JEEDOM..":"..Port_JEEDOM.."/core/api/jeeApi.php?apikey=8vCeCfxxxxxxxxxxxxxxxgp&type=cmd&id=360");
end
--[[
%% properties
XX value
%% globals
--]]

local mvt_device = XX;
if (( tonumber(fibaro:getValue(mvt_device, "value")) > 0 )  then
http:request("http://"..IP_JEEDOM..":"..Port_JEEDOM.."/core/api/jeeApi.php?apikey=8vCeCfxxxxxxxxxxxxxxxgp&type=cmd&id=360");
end

Exemples de PuNiSHeR sur le forum Jeedom

les retours d’état d’un interrupteur

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--[[
%% properties
16 value
16 dead
%% globals
--]]
 
local LumSalonID = 16;
 
local Ip = fibaro:getGlobalValue("DomoIp");
local Port = fibaro:getGlobalValue("DomoPort");
 
local http = net.HTTPClient()
 
LumStatus = fibaro:getValue(LumSalonID, 'dead');
 
if LumStatus == "1" then
   fibaro:wakeUpDeadDevice(LumSalonID);
   fibaro:debug("Lumiere Salon - Reveil du Noeud Mort")
   fibaro:sleep(3 * 1000);
end
 
local LumSalon = fibaro:getValue(LumSalonID, 'value');
 
fibaro:debug("Value Lumiere Salon = " ..LumSalon)
 
if (LumSalon > "0") then
   http:request("http://"..Ip..":"..Port.."/core/api/jeeApi.php?apikey=sExxxxxxxxxxxxxxxxxVit&type=virtual&id=11&value=1");
   fibaro:debug("Envoi de la Commande On - Lumiere Salon")
else
   http:request("http://"..Ip..":"..Port.."/core/api/jeeApi.php?apikey=sExxxxxxxxxxxxxxxxxVit&type=virtual&id=11&value=0");
     fibaro:debug("Envoi de la Commande Off - Lumiere Salon.")
end
--[[
%% properties
16 value
16 dead
%% globals
--]]

local LumSalonID = 16;

local Ip = fibaro:getGlobalValue("DomoIp");
local Port = fibaro:getGlobalValue("DomoPort");

local http = net.HTTPClient()

LumStatus = fibaro:getValue(LumSalonID, 'dead');

if LumStatus == "1" then
   fibaro:wakeUpDeadDevice(LumSalonID);
   fibaro:debug("Lumiere Salon - Reveil du Noeud Mort")
   fibaro:sleep(3 * 1000);
end

local LumSalon = fibaro:getValue(LumSalonID, 'value');

fibaro:debug("Value Lumiere Salon = " ..LumSalon)

if (LumSalon > "0") then
   http:request("http://"..Ip..":"..Port.."/core/api/jeeApi.php?apikey=sExxxxxxxxxxxxxxxxxVit&type=virtual&id=11&value=1");
   fibaro:debug("Envoi de la Commande On - Lumiere Salon")
else
   http:request("http://"..Ip..":"..Port.."/core/api/jeeApi.php?apikey=sExxxxxxxxxxxxxxxxxVit&type=virtual&id=11&value=0");
     fibaro:debug("Envoi de la Commande Off - Lumiere Salon.")
end

les retours d’état pour la consommation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
--[[
%% properties
171 power
%% globals
--]]
 
if (fibaro:countScenes() > 1) then
   fibaro:debug("Scène déjà en cours.");
   fibaro:abort()
else
    local SubID = 171;
    local ConsoSub = fibaro:getValue(SubID, "power");
    
    local Ip = fibaro:getGlobalValue("DomoIp");
    local Port = fibaro:getGlobalValue("DomoPort");
    
    local http = net.HTTPClient();
    
    http:request("http://"..Ip..":"..Port.."/core/api/jeeApi.php?apikey=sExxxxxxxxxxxxxxxxxVit&type=virtual&id=1789&value="..ConsoSub);
    fibaro:debug("Envoi de la Conso Subwoofer = "..ConsoSub..".");
end
--[[
%% properties
171 power
%% globals
--]]

if (fibaro:countScenes() > 1) then
   fibaro:debug("Scène déjà en cours.");
   fibaro:abort()
else
    local SubID = 171;
    local ConsoSub = fibaro:getValue(SubID, "power");
    
    local Ip = fibaro:getGlobalValue("DomoIp");
    local Port = fibaro:getGlobalValue("DomoPort");
    
    local http = net.HTTPClient();
    
    http:request("http://"..Ip..":"..Port.."/core/api/jeeApi.php?apikey=sExxxxxxxxxxxxxxxxxVit&type=virtual&id=1789&value="..ConsoSub);
    fibaro:debug("Envoi de la Conso Subwoofer = "..ConsoSub..".");
end

Si vous avez de idées d’amélioration n’hésitez pas de me faire part.

 

Laisser un commentaire