Actualités | Audio/Vidéo | Evènements | DIY | Domotique | Informatique | Maison | Mobile | Sécurité

Personnaliser son WES

Envoyer Imprimer PDF
Note des utilisateurs: / 7
MauvaisTrès bien 

La semaine dernière, je vous parlais du WES. Je suis en pleine découverte de ce nouveau produit Cartelectronic. Un des lecteurs (Okimi) qui a posté un commentaire sur mon dernier article, est venu me proposer ses exemples de code pour personnaliser le WES et récupérer ses informations depuis sa box de domotique qui est une Vera. Je vous propose donc de partager son expérience pour vous montrer une autre facette du WES.

  

Okimi a donc un WES pour sa maison. Il utilise : Téléinfo HC/HP, 2 pinces, 1 compteur impulsion chauffage, 10 sondes 1wire). Il en a même acheté un second pour équiper sa résidence secondaire (ce coup-ci avec une Téléinfo Tempo).

Nous avons vu lors de notre dernier article que le WES propose des fichiers XML pour récupérer les informations depuis une box de domotique. Mais là ou celà devient intéressant, c'est qu'on peut se créer son propre fichier XML en déposant un fichier .cgx à la racine du WES. Voici le fichier qu'Okimi utilise:

t <?xml version="1.0" encoding="utf-8" ?>
t <data>
t <info>
c g d <date>%02d/%02d/%02d</date>
c h h <time>%02d:%02d</time>
c h m <num_mes_ntp>%d</num_mes_ntp>
c v v <firmware>%s</firmware>
t </info>
t <tic1>
c e a <ADCO>%s</ADCO>
c T p <PTEC>%s</PTEC>
c i p <PAP>%d</PAP>
c Te1 <PEJP>%d</PEJP>
c Tc2 <HCHC>%s</HCHC>
c Tc1 <HCHP>%s</HCHP>
t </tic1>
t <impulsion>
c pp1 <PULSE1>%d</PULSE1>
c pd1 <DEBIT1>%.02f</DEBIT1>
c pIU1<actuel1>%.0f</actuel1>
c pCj1<consJ1>%.02f %s</consJ1>
c pCm1<consM1>%.03f %s</consM1>
c pCa1<consA1>%.03f %s</consA1>
t </impulsion>
t <pince>
c P W1 <WHPC1>%d</WHPC1>
c P P1 <VAPC1>%d</VAPC1>
c P W2 <WHPC2>%d</WHPC2>
c P P2 <VAPC2>%d</VAPC2>
t </pince>
t <temp>
c W0T0 <SONDE1>%.02f</SONDE1>
c W0T1 <SONDE2>%.02f</SONDE2>
c W0T2 <SONDE3>%.02f</SONDE3>
c W0T3 <SONDE4>%.02f</SONDE4>
c W0T4 <SONDE5>%.02f</SONDE5>
c W0T5 <SONDE6>%.02f</SONDE6>
c W0T6 <SONDE7>%.02f</SONDE7>
c W0T7 <SONDE8>%.02f</SONDE8>
c W0T8 <SONDE9>%.02f</SONDE9>
c W0T9 <SONDE10>%.02f</SONDE10>
c W1T0 <SONDE11>%.02f</SONDE11>
c W1T1 <SONDE12>%.02f</SONDE12>
c W1T2 <SONDE13>%.02f</SONDE13>
c W1T3 <SONDE14>%.02f</SONDE14>
c W1T4 <SONDE15>%.02f</SONDE15>
c W1T5 <SONDE16>%.02f</SONDE16>
c W1T6 <SONDE17>%.02f</SONDE17>
c W1T7 <SONDE18>%.02f</SONDE18>
c W1T8 <SONDE19>%.02f</SONDE19>
c W1T9 <SONDE20>%.02f</SONDE20>
t </temp>
t <relais>
c o E1 <rly1>%d</rly1>
c o E2 <rly2>%d</rly2>
t </relais>
t <entree>
c l E1 <in1>%d</in1>
c l E2 <in2>%d</in2>
t </entree>
t </data>


Si on appelle ce fichier maconfig.cgx. Vous pouvez ensuite le contrôler depuis votre box. Okimi utilise une vera et le script LUA suivant:

local function extractElement(tag, xml, default)
local pattern = "<"..tag..">(.-)</"..tag..">"
result = {}
for var in xml:gmatch(pattern) do
table.insert(result, var)
end
return result[1] or default
end

local status, rss = luup.inet.wget(WES .. "/maconfig.cgx", 10)

if (status == 0) then

--Téléinfo
local consoEDF = extractElement("PAP", rss, "N/A")
luup.variable_set(SrvId_EM, "Watts", consoEDF, 319)
luup.inet.wget (IPX800_A .. "/api/xdevices.json?info=" .. consoEDF .. " W")
local EDF_HC = extractElement("HCHC", rss, "N/A")
luup.inet.wget (IPX800_A .. "/protect/assignio/counter4.htm?num=6&cname=EDF+index+HC&counter=" .. EDF_HC)
local EDF_HP = extractElement("HCHP", rss, "N/A")
luup.inet.wget (IPX800_A .. "/protect/assignio/counter4.htm?num=7&cname=EDF+index+HP&counter=" .. EDF_HP)

--Compteur Impulsions
local INDEX_NEW = extractElement("actuel1", rss, "N/A")
luup.variable_set(SrvId_EM, "Index", INDEX_NEW, 365)
local CHAUF_RDC = round(extractElement("DEBIT1", rss, "N/A"),1)
luup.variable_set(SrvId_EM, "Watts", CHAUF_RDC, 365)


local var = "CurrentTemperature"
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE1", rss, "0.00"),1), 321)
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE2", rss, "0.00"),1), 322)
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE3", rss, "0.00"),1), 323)
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE4", rss, "0.00"),1), 324)
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE5", rss, "0.00"),1), 325)
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE6", rss, "0.00"),1), 326)
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE7", rss, "0.00"),1), 327)
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE8", rss, "0.00"),1), 328)
luup.variable_set(SrvId_TS, var, round(extractElement("SONDE9", rss, "0.00"),1), 329)

end

 

La variable WES est définie dans le fichier démarrage Lua et contient le chemin complet au WES (http://user:password@192.168.1.x).

Si vous allez sur le forum Touteladomotique.com, vous pourrez compléter cet article en utilisant une base de données SQL et des graphes pour suivre vos données. Suivez le sujet "Cosm/Pachube faisons mieux"

 

Vous aussi vous pouvez nous contacter pour partager votre expérience ...

Merci à Okimi.

 

Vous n'avez pas compris un point ? Vous vous posez une question ? Vous pouvez nous contacter via le bouton Assistance sur votre gauche. N'hésitez pas à demander un rendez-vous téléphonique avec Domotics.

Vous avez aimé cet article ? Vous pouvez le partager sur vos réseaux sociaux pour soutenir son auteur et l'encourager à écrire de nouveaux articles ...

 

Cet article vous est proposé par Domotics: Domotics habite dans la région Toulousaine. Il est ingénieur en informatique et électronicien amateur. La domotique est pour lui une passion qu'il pratique depuis 1999. En 2003, il décide de partager ses expériences sur le magazine et le forum de touteladomotique.com.

En 2014, il crée sa société de conseils en Domotique ID2domotique.com et sa boutique en ligne laboutiquededomotique.com. Profitez de l'expérience et l'expertise de Domotics en faisant appel à ses services. Les conseils sont gratuits ...

Mise à jour le Mardi, 02 Décembre 2014 22:09  

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Recherche

Newsletter ?

Bon Plan

Instagram

Publicité



Connexion