Forum Replies Created
- Replies
-
- 30 septembre 2022 à 16 h 37 min
- in reply to: Compatibilité WES v2 – DS2450
Bonjour,
Comme l’a précisé Nicolas, le DS2450 n’est pas intégré en lecture comme composant 1wire dans le WES.
Les seuls composants 1Wire pris en charge par le WES sont:Les DS18b20 : Lecture des sondes de températures
Les DS2408 : Intégrés dans les cartes à 8 Relais 1Wire
Les DS2438 : Mais uniquement programmé côté WES pour Lire le Hardware des modules Température, Humidité et lumière vendu sur le site.
La connexion d’un DS2438 sur le Bus 1Wire du WES sera de façon implicite reconnu par le WES comme un module : Temp. Hum. et Lum. et les valeurs seront intégrés comme étant une extension dans la Page des Températures.L’utilisation d’un module Sonoff pourrait effectivement faire l’affaire, mais je ne connais pas de module Sonoff capable de lire un bus 1Wire.
D’autant plus que si vous souhaitez connecter vos DS2450 sur le Bus 1Wire du domicile, vous aurez forcément un conflit entre deux Serveurs Maitres 1Wires (WES et Sonoff) qui veulent accéder sur le même Bus 1Wire ou sont raccordés Vos DSxxxx (1Wires esclave)Mais que voulez vous activer côté WES par vos requêtes HTTP ?
Les seuls données dans le WES qui pourraient être modifiés aux valeurs de vos capteurs envoyés par requêtes sont les VAR.
Par Requêtes vous pouvez activer des Etats de Relais, Modifier des Etats de Switchs, Modifiers des Valeurs de VAR mais impossible de forcer la valeur d’une entrée Analogique ou celle d’une SONDE !Si vous modifié la valeur d’une VAR par requête, vous ne pourrez pas utiliser cette VAR comme Source Directe dans la programmation du WES, mais uniquement indirectement via une Source qui peut être comparée à la valeur de cette VAR !
Par contre, vous pouvez définir des scénarii dans le ESP pour activer par exmemple un Relais ou un Switch en fonction de valeurs lues d’un Capteur du Sonoff.
Si vous êtes un peu bricoleur, je vous propose une petite carte PCB à souder que j’avais développé en 2017 à base d’un ESP8266 et qui fonctionne comme ces modules Sonoff.
Cette petite carte de 5cm x 6,5cm est capable de lire 8 entrées Analogique, 1 Bus 1Wire (64 Dsxxx de tous Type), 1 Capteur Infra rouge (permet d’activer des Cdes via des télécommandes lambda) et toutes les Données issues des Capteurs peuvent être envoyées par requêtes HTTP vers n’importe quel Serveur comme le WES et autres comme Jeedom, Domoticz, Eedomus
II suffit de définir l’IP du Serveur à cibler ainsi que le format des requêtes à envoyer tel que vous le souhaitez.
Vous pouvez bien sur créer des scénarii en fonctions des Valeurs de Capteurs et requêtes HTTP à envoyer.Ma petite carte dispose donc d’une connexion pour lire un Bus 1Wire et peux être raccordé sur le même Bus 1Wire de votre domicile en parrallèle avec le WES.
En effet côté Soft, j’analyse par interruption le signal descendant 1Wire du BUS, afin de voir si un autre Serveur Maitres 1Wire (ex: WES) occupe le Bus 1Wire. Donc vous ne pouvez pas avoir de conflit, grâce à cette gestion, entre la gestion du Bus 1Wire de ma carte et la gestion 1Wire du WES.
Le serveur WES est prioritaire en accès au Bus 1Wire.Ma carte prend en charge le Bus 1Wire commun uniquement lors des silences des accès 1Wire du WES (soit dans les intervalles des 30s pour les Sondes et environs 600ms pour toutes action sur carte à Relais). Ma carte peut Scruter le Bus 1Wire lors des silences du WES avec des Tempos cyclique de l’ordre de 800ms.
L’alimentation 5 volt de ma carte est externe (500mA). Le 3v3 du ESP est crée en interne de la carte.
Ma carte dispose d’un DIP Switch qui permet de lui attribuer une adresse reconnaissable dans les requêtes HTTP.
Donc vous pouvez mettre en Service 256 de ces Petites Cartes dans votre système. Chacun ayant bien sur les mêmes Capteurs.
Pratique pour créer des BUS 1Wire par connexion WIFI, ou allumer la lumière d’une pièce via une télécommande lambda.Trouvez joint le Schéma de ma Carte ainsi que la Carte avec Ses composants.
Si cela vous intéresse je peux vous fournir un PCB de ma Carte nue à souder (Composants à montés en surface CMS) ainsi que le Programme INO qui peut être personnaliser à vos besoins avant de le Télécharger en tant que Firmware dans le ESP, via l’Editeur IDE Arduino.
Cdt
Attachments:
You must be logged in to view attached files.00- 28 septembre 2022 à 14 h 04 min
- in reply to: WESV1_vers_WESV2
Bonjour,
Je suppose que vous avez fait un Reset du WES et bien Effacé le cache de votre navigateur après la copie de ces dossiers Graph/xxx
Avez vous aussi copié l’intégral des dossiers Graph/TIC et Graph/PCE pour 2022 ?
Si vous avez changé avec la nouvelle MAJ, votre config TIC (ex: ajout 2eme CPT ou Chg type de Contrat) ou la config PCE (ex: ajout de Pinces ou chg mode Conso/Prod), alors le format des nouveaux fichiers historique DAT auront changés par rapport à vos anciens fichiers historique DAT qui ne seront donc plus compatible avec votre nouvelle config et ne seront plus lisible dans les Graphs.
Les fichiers DAT des historiques sont décryptés par rapport à la Config actuelle du WES.
Par contre les fichiers CSV seront toujours lisible car lu en externe depuis votre PC.
Cdt
00- 26 septembre 2022 à 10 h 16 min
- in reply to: TIC Pulses 433 V2 , pas d'infos production
Bonjour,
Les Compteurs Linky ne sont pas paramétrés par ENEDIS, pour sortir les infos de Production de la TIC si vous n’avez pas de Contrat de Revente de votre Production avec eux.
En mode autoconsommation, les infos de la Production ne sont pas tranmises en sortie des TIC.
Cdt
00- 21 septembre 2022 à 1 h 24 min
- in reply to: Accès cloud cartelectronique api wifitic
Bonjour,
La Doc d’installation et paramétrage du WifiTic est téléchargeable depuis le lien visible en bas de page du produit : https://www.cartelectronic.fr/index.php?controller=attachment&id_attachment=63
Je ne connais pas d’autre Doc pour ce produit !
Cdt
00- 20 septembre 2022 à 21 h 42 min
- in reply to: Mise à jour 0.85 beta03 Mail par compte WES
Bonsoir,
Merci pour vos essais, cela confirme ce que j’ai remarqué chez moi.
Nicolas pourra mieux cibler le problème côté Serveur WES.Les interfaces annexes de la gestion Mails sont Ok de leur Côté.
Cordialement
Christian00- 20 septembre 2022 à 18 h 05 min
- in reply to: Mise à jour 0.85 beta03 Mail par compte WES
Bonsoir,
J’ai aussi corrigé le fait que les caractères accentués du message des mails était codés UTF8 à la réception des Mails.
Maintenant tous ces caractères accentués s’affichent correctement côté Boite de Réception des Mails.Par contre je constate une dernier BUG chez moi, que Nicolas va regarder de son côté.
Chez Moi (à vérifier si le PB existe chez vous) Si dans le texte d’un MAIL à envoyé par une ligne programme du WES,
se trouve la lettre ‘ à ‘ (A accent grave) alors ce mail n’est pas envoyé par le WES !!,
Si vous remplacer cette lettre ‘ à ‘ par simplement la lettre ‘ a ‘ alors plus de Pb le mail est bien expédié par le WES.Vérifier et Tester l’envoie chez vous si vous avez dans un de vos mails, cette lettre accentuée ‘ à ‘ dans le texte d’un de vos Mails.
Cdt
00- 20 septembre 2022 à 12 h 07 min
- in reply to: Mise à jour 0.85 beta03 Mail par compte WES
Bonjour,
Je viens de rajouter, pour les mails envoyés par compte WES, le Corp du message dans l’Objet du mail, comme cela est avec les envoies mails par SMTP.
Est ce que cela vous convient ainsi ? Doit on rajouter autre chose ?
Cdt
Christian
00- 19 septembre 2022 à 0 h 37 min
- in reply to: Integration WES dans Home assistant
RE : Parfois je me demande ?, en reprenant à mon compte le fameux Slogan de la Pub DUC..S, À quoi ça sert que l’on se déc….sse !
00- 16 septembre 2022 à 8 h 44 min
- in reply to: Integration WES dans Home assistant
RE : Le Blog par sécurité refuse de joindre le Fichier perso.cgx
Je vous le joins à nouveau, mais avec l’extension du fichier en .TXT
Vous devez renommer le fichier perso.txt par perso.cgx avant de le copier dans la racine de la SD de votre WES
Attachments:
You must be logged in to view attached files.00- 16 septembre 2022 à 8 h 38 min
- in reply to: Integration WES dans Home assistant
Bonjour,
Comme vous n’êtes pas précis et ne donnez pas le n° du compteur Impulsion de votre Compteur GAZ
et vous ne dites pas de qu’elle puissance en W consommé sagit t’il: TIC ??, Pince ??, Pulse ??Je vous donne juste un exemple pour lire quelques info de votre Compteur GAZ en supposant qu’il s’agit du Compteur à Impulsion n° 1 dans le WES
Je joins 1 fichier PERSO.CGX à copier dans la Racine de la Carte Mémoire SD du WES et le fichier d’un Script Home Assistant, non testé, mais qui devrait répondre à vos besoins pour lire les infos du Cpt Pulse 1
Contenu du fichier PERSO CGX fourni en pièce jointe
t <?xml version= »1.0″ encoding= »UTF-8″?>
t <data>
#
# Compteur Impulsions
t <impulsion>
#
# Compteur 1
c pp1 <PULSE1>%d</PULSE1>
c pIU1<INDEX1>%.03f</INDEX1>
c pIJ1<INDEXJ1>%.03f</INDEXJ1>
c pIM1<INDEXM1>%.03f</INDEXM1>
c pIA1<INDEXA1>%.03f</INDEXA1>
#
# Compteur 2
c pp2 <PULSE2>%d</PULSE2>
c pIU2<INDEX2>%.03f</INDEX2>
c pIJ2<INDEXJ2>%.03f</INDEXJ2>
c pIM2<INDEXM2>%.03f</INDEXM2>
c pIA2<INDEXA2>%.03f</INDEXA2>
#
# Compteur 3
c pp3 <PULSE3>%d</PULSE3>
c pIU3<INDEX3>%.03f</INDEX3>
c pIJ3<INDEXJ3>%.03f</INDEXJ3>
c pIM3<INDEXM3>%.03f</INDEXM3>
c pIA3<INDEXA3>%.03f</INDEXA3>
#
# Compteur 4
c pp4 <PULSE4>%d</PULSE4>
c pIU4<INDEX4>%.03f</INDEX4>
c pIJ4<INDEXJ4>%.03f</INDEXJ4>
c pIM4<INDEXM4>%.03f</INDEXM4>
c pIA4<INDEXA4>%.03f</INDEXA4>
#
# Compteur 5
c pp5 <PULSE5>%d</PULSE5>
c pIU5<INDEX5>%.03f</INDEX5>
c pIJ5<INDEXJ5>%.03f</INDEXJ5>
c pIM5<INDEXM5>%.03f</INDEXM5>
c pIA5<INDEXA5>%.03f</INDEXA5>
#
# Compteur 6
c pp6 <PULSE6>%d</PULSE6>
c pIU6<INDEX6>%.03f</INDEX6>
c pIJ6<INDEXJ6>%.03f</INDEXJ6>
c pIM6<INDEXM6>%.03f</INDEXM6>
c pIA6<INDEXA6>%.03f</INDEXA6>
#
t </impulsion>
#
t </data>
.Exemple de Script homeval, fourni en pièce jointe, pour lire les Info du Cpt GAZ
(Attention ne pas copier ce script depuis le blog, les chars guillemets ne sont pas OK car transformés par le Blog)sensor:
– platform: rest
name: weshomeval
resource: http://IP-DE-VOTRE-WES/perso.cgx
method: GET
authentication: basic
username: RENTRER ICI VOTRE LOGIN-WES
password: RENTRER ICI VOTRE MOT-PASSE-WES
json_attributes_path: « $.data »
json_attributes:
– « impulsion »
value_template: ‘OK’
– platform: template
sensors:
wescpt1pulse :
friendly_name: wes_cpt1_pulse
device_class : gaz
unit_of_measurement: ‘m3’
value_template: >-
{{ states.sensor.weshomeval.attributes[« impulsion »][« PULSE1 »] | int }}
wescpt1indexactuel :
friendly_name: wes_cpt1_index_actuel
device_class : gaz
unit_of_measurement: ‘Idx’
value_template: >-
{{ states.sensor.weshomeval.attributes[« impulsion »][« INDEX1 »]| float }}
wescpt1indexdebjour :
friendly_name: wes_cpt1_index_debut_jour
device_class : gaz
unit_of_measurement: ‘Idx’
value_template: >-
{{ states.sensor.weshomeval.attributes[« impulsion »][« INDEXJ1 »]| float }}
wescpt1indexdebmois :
friendly_name: wes_cpt1_index_debut_mois
device_class : gaz
unit_of_measurement: ‘Idx’
value_template: >-
{{ states.sensor.weshomeval.attributes[« impulsion »][« INDEXM1 »]| float }}
wescpt1indexdebannee :
friendly_name: wes_cpt1_index_debut_annee
device_class : gaz
unit_of_measurement: ‘Idx’
value_template: >-
{{ states.sensor.weshomeval.attributes[« impulsion »][« INDEXA1 »]| float }}En espérant que cela vous aide à mieux comprendre l’usage des CGX du WES
Cdt
Attachments:
You must be logged in to view attached files.00- 14 septembre 2022 à 19 h 56 min
- in reply to: Integration WES dans Home assistant
bonjour o0larry0o
Est ce qu’à la lecture de mon Précédent Post #12477, vous comprenez mieux l’interaction des fichiers CGX avec les fichiers HTM du WES.
Normalement dans ce Blog, on ne gère pas le Blog des autres, même si le WES est le sujet de la discussion. Mais je vais faire une petite exception pour vous et juste reprendre un exemple de l’autre Blog qui vous pose problème. Je suppose que vous faites référence à cet extrait de Code dont j’en ai copié juste le début pour explication :
Au début de ce Code on lance une requête WES sur le fichier homeval.cgx
Si vous tapez votre propre requête http://login-wes:password-wes@IP-WES/WEBPROG/CGX/homeval.CGX
depuis votre navigateur vous verrez ce que récupère cette requête HTTP.Si la requête réussi, on demande de créer des références Array sur tous les Nodes trouvés ayant pour nom <array>, <bssw>, <java>, <html>
platform: rest
name: weshomeval
resource: http://192.168.1.80/WEBPROG/CGX/homeval.CGX
method: GET
authentication: basic
username: admin
password: wes
json_attributes_path: « $.form »
json_attributes:
– « array »
– « bssw »
– « java »
– « html »
value_template: ‘OK’Exemple avec le Node <html> >> on cherche tous les Nodes <html>, dans le résultat de la requête sur Homeval.cgx, On va en trouver 11 ensembles de Node au nom <html>…</html> donc on va créer un Tableau sur ces 11 références > node-html [10] (on commence à l’Index 0)
Editez le fichier Homeval.cgx de votre WES et vous pourrez trouver ces 11 Nodes soit 11 lignes ayant le Nom du Tag <html>….</html>
Ensuite on va tester ou récupérer les Valeurs lues dans les TAG <value> affectés à chaque Node <html> ou , array, bssw, java.
Dans l’exemple du bout de Code extrait ci-dessous on veut récupérer la Valeur contenue dans le Tag <value> du 5eme Nodes <html> trouvé dans le le résultat de la requête sur le fichier homeval.cgx.
Ce qui revient à récupérer le 5éme Node depuis le array node-html [6]. n’oubliez pas que l’index 0 de l’array existe donc le 5eme Node est en réalité l’Index 6 de l’Array html[6]
Il se fait que ce 5éme Nodes <html> ou 6eme index de l’Array html[6] fait référence à la ligne :
c Tn1 <html><id>TICtarif_1</id><value>%s</value></html> de Homeval.cgx
dont la valeur reçu par la requête Homeval.CGX du WES est chez moi à cette heure :<html>
<id>TICtarif_1</id>
<value>H. Pleines</value>
</html>Et dans ce Node <html> on trouve le ID « TICtarif_1″ qui défini dans la page INDEX.HTM (si Widget Tic) ou TICVAL.HTM l’endroit ou l’on doit renter l’information contenue dans le tag <value> à savoir le champs >> la Période en cours du TIC 1 dont les valeurs peuvent prendre
« H. Creuses » ou « H. Pleines. »Le bout de programme qui suit veut changer l’état d’un Booléen nommé « wes_tarif_HC » soit en true(1) en false(0) suivant la comparaison qui est faite dans le contenu de la <value> pour vérifier si le texte lu est ‘H. Creuses’
Donc le Code ci-dessous récupère le 5éme Node <html> et teste la <value> H. Creuses et en fonction positionne une référence »wes_tarif_HC » à la valeur 1 ou 0 (true/false) suivant le résultat de la comparaison faite.
– platform: template
sensors:
wesheurecreuseraw :
value_template: >-
{{ states.sensor.weshomeval.attributes[« html »][5][« value »] }}
wesheurecreuse :
friendly_name: wes_tarif_HC
value_template: >-
{% if states(‘sensor.wesheurecreuseraw’) == ‘H. Creuses’ %}
1
{% else %}
0
{% endif %}Voila tout le reste fonctionne à l’identique. Mais je peux vous dire que la personne qui à programmé ce Code, ne doit pas connaître le WES et le fichier DATA.CGX.
Car s’il avait fait une simple requête sur le DATA.CGX qui se trouve à la racine de la carte SD du WES, au lieu de le faire sur HOMEVAL.CGX, qui peut changer de structure lors de prochaine MAJ WES, ce qui n’est pas vraie pour le DATA.CGX, Cette personne se serait moins creusé les neurones pour récupérer la plus part des Infos qu’il teste ou récupère dans son CODE.
Si vous avez un contrat Enedis Heure creuse et heure pleine, alors lancez une requête sur le DATA.CGX
http://login:password@ipwes/DATA.CGX
Et vous trouverez immédiatement le TAG > <PTEC>H. Pleines</PTEC> qui vous donne l’info rendu par votre Compteur TIC.
Pas besoin de compter le nombre de Node <html> etc, etc. Il suffit de pointer immédiatement sur le TAG <PTEC> dans le résultat de la requête WES sur le DATA.CGX pour trouver ‘info. Chaque valeurs du WES ont un TAG Spécifique que vous pouvez lire et en extraire la valeur pour traitement.
Donc pas besoin de calculer sur quel n° de Node <html> se trouve la bonne info que je souhaite traiter !??. On pointe direct sur le bon <TAG> dans le DATA.CGX
Voila pour expliquer la réponse de Nicolas à votre question !
Regardez le fichier data.cgx les autres fichiers sont formatés pour l’interface web du WES.
Cdt
Christian
00- 14 septembre 2022 à 12 h 34 min
- in reply to: Integration WES dans Home assistant
RE: ATTENTION , Ce Blog change certains caractères par d’autres visuellement similaire.
Exemple, Tous les guillemets placés dans un texte de ce BLOG sont modifiés par un Char similaire en Visuel.
Si vous faites une Copie d’une des Fonctions ou Bloc CGX présentées dans mon précédent Post, sachez qu’il faut reprendre et remplacer tous ces faux guillemets simple ou double côte visible dans le Texte, par de vraie guillemet tapé depuis votre clavier.
Cdt
00- 14 septembre 2022 à 11 h 54 min
- in reply to: Integration WES dans Home assistant
Bonjour,
La majorité des Infos du WES peuvent être récupérées par requête HTTP sur le fichier DATA.CGX. < http://login:motpasse@ip-wes/data.cgx >
Le Serveur WES renvoie une suite de <TAG>valeur</TAG> dont la valeur contient l’Infos ciblée.Il suffit depuis un Script propre à votre Interface Domotique de créer une Fonction afin de récupérer dans le résultat rendu de la requête DATA.CGX, la Valeur relative au nom d’un TAG de ce DATA.CGX.
Exemple de fonction en PHP
/*
# Retourne la Valeur d’un flux XML type TAG
# Paramètres:
# – $pXml: contient l’ensemble du document XML à lire.
# – $pXmlNoeud: contient le nom du noeud Parent XML à lire.
# – $pXmlAttribut: contient le nom de l’attribut XML à lire.
*/
function GetValeurXml($pXml, $pXmlNoeud, $pXmlAttribut) {
try {$valeur = $pXml->getElementsByTagName($pXmlNoeud)->item(0)->getElementsByTagName($pXmlAttribut)->item(0)->nodeValue;
return $valeur;} catch (Exception $e) {
log::add(« WES », « INFO », « XML erreur on Id: ».$pId. »: ».$e->getMessage(), « »);
return 0:
}
}/*
# exemple d’appel à cette function GetValeurXml pour récupérer depuis Tampon XML, reçu par une requête GET sur le DATA.CGX du WES,
# l’attribut <SONDE1> du Noeud Parent <TEMP>
*/
$Sonde1 = GetValeurXml($xml, ‘TEMP’, ‘SONDE1’); // On récupère la valeur de la Sonde1 depuis le XML reçu du DATA.CGXParfois on ne trouve pas une info spécifique dans le fichier DATA.CGX, mais cette Info est lisible dans une Page HTM Lambda. On peut éventuellement trouver comment est généré cette Info dans cette Page HTM. La plus par des valeurs CGX sont identifiable par un nom ID= »xxxx » dans le HTM, La plus part du Temps, vous pouvez facilement trouver le ID d’une valeur qui vous intéresse dans cette Page HTM.
Faire un clic droit sur la Valeur dans la Page HTML concernée, puis si vous utilisez Firefox par exemple, vous cliquer sur Inspecter.
La Console du Navigateur va s’ouvrir et vous verrez la ligne HTM concernée mise en sélection (bleu) Il suffit de chercher le ID= »xxxx » dans cette ligne.Puis ensuite pour Trouver les fichier CGX qui sont lus par la Page HTML, il suffit d’ouvrir le fichier HTML de la Page concernée, depuis un Editeur de Texte (Bloc-Notes, autres ..) et vous descendez dans le fichier HTM jusqu’à trouver : <script type= »text/javascript »>
Juste en dessous ou pas loin, vous trouvez 2 parfois 3 lignes qui vous permet de trouver les Fichier CGX utilisés pour gérer cette Page HTMExemple pour le fichier TICGRAPH.HTM
<script type= »text/javascript »>
var ticgraph = new periodicObj(« WEBPROG/CGX/TICGRAPH.CGX »);
var ticconso = new periodicObj(« WEBPROG/CGX/TICCONSO.CGX »);Un des CGX sert à créer les Textes de base de la Page HTM et l’autre CGX est lancé périodiquement suivant une Tempo, afin de récupérer les Valeurs des divers champs du HTM
Donc vous avez le Nom de l’ID du champs de la valeur que vous souhaité et qui est générée dans la Page HTM et vous connaissez les fichiers CGX utilisées dans cette Page, Il suffit de trouvez cet ID dans les CGX du HTM pour trouvez la Ligne avec le Code Clé CGX qui sera interprété par le Serveur WES pour remplir à l’emplacement du %(?) dans la ligne, la Valeur associé au Code clé et l’ID du HTM.
Donc ayant le Code Clé du Serveur WES qui renvoie cette Valeur que vous souhaitez par requête, il vous suffit de créer votre Propre fichier ex: PERSO.CGX à placé dans la racine de la carte mémoire SD du WES,
Vous avez le Code Clé de l'<ID> lu depuis le fichier CGX du HTM (exemple de Code Clé « c Xs1″ ) il vous suffit maintenant de formater votre propre ligne dans votre fichier PERSO.CGX comme vous le souhaitez, par exemple : c Xs1 <MON -ID> %(?) </MON -ID>
Vous pourrez ensuite récupérer votre Valeur souhaitée pour intégration, en cherchant votre <MON -ID> dans le résultat de la Requête que vous lancée au Serveur WES , sur votre fichier PERSO.CGX : http://login:motpasse@ip-wes/PERSO.CGX.
Bon voila, je vous ai expliqué comment trouver la majorité des Code Clé du Serveur WES fin de récupérer une valeur lambda souhaitée.
Par ailleurs pour simplifier les écritures programme pour les HTM, mais complexcifier un peu la mécanique décrite précédemment, le Serveur WES peut parfois générer en interne du Code HTM qui sera placé dynamiquement dans une Page HTM qui est en visuel. Vous pouvez trouvez des Code Clé CGX qui vous retourne une Array XML formatée en Tableau html (<tr><td> etc…)
Effectivement dans certains fichiers CGX, le WES Formate depuis le Serveur, une Array au format d’un Tableau XML HTML
Ce tableau html est ensuite inséré directement dans la Page HTM à l’endroit ou ce trouve un ID= »xxxxx » défini dans le HTMExemple: Insertion du bloc TIC1, qui se trouve en dessous le graph de la Page TICGRAPH.HTM, et qui reçoit les valeurs Conso kWh et Coût >> jour, mois et Année sous forme de tableaux HTML récupéré par une requête sur le fichier TICGRAPH.CGX
La déclaration id= »CPT1_table1″ défini dans le fichier TICGRAPH.HTM l’endroit ou va se placer le Tableau : <table class= »table table-hover table-condensed » id= »CPT1_table1″></table>
La déclaration des Codes Clé CGX pour demander au Serveur WES de formater ce tableau HTM TIC1 (conso coût, jour mois année) via le fichier TICGRAPH.CGX :
t <html><id>CPT1_table1</id><value><![CDATA[
t <colgroup><col></col><col class= »bg-info »></col><col id= »COUL1″></col></colgroup>
t <tr><th id= »CONPROD1″ /><th style= »text-align:center »>kWH</th>
t <th><span id= »GAINCOUT1″/> <span class= »money »/></th></tr>
c jc1
c mc1
c ac1
c tc1
t ]]></value></html>Et enfin le résultat du Tableau HTML, rendu par la requête CGX au Serveur WES, relatif au Code Clé CGX :
<table class= »table table-hover table-condensed » id= »CPT1_table1″><colgroup><col><col class= »bg-info »><col id= »COUL1″ class= »bg-warning »></colgroup><tbody><tr><th id= »CONPROD1″>Consommation</th><th style= »text-align:center »>kWH</th><th><span id= »GAINCOUT1″>Coût</span> <span class= »money »>€</span></th></tr><tr><td>Jour HP</td><td align= »right »>8.4</td><td align= »right »>1.47</td></tr>
<tr><td>Jour HC</td><td align= »right »>6.7</td><td align= »right »>0.88</td></tr>
<tr><td>Mois HP</td><td align= »right »>66</td><td align= »right »>11.7</td></tr>
<tr><td>Mois HC</td><td align= »right »>34</td><td align= »right »>3.6</td></tr>
<tr class= »A0″><td>Année HP</td><td align= »right »>2922</td><td align= »right »>485</td></tr>
<tr class= »A0″><td>Année HC</td><td align= »right »>2329</td><td align= »right »>292</td></tr>
<tr class= »P0″ style= »display: none; »><td>Période HP</td><td align= »right »>2881</td><td align= »right »>480</td></tr>
<tr class= »P0″ style= »display: none; »><td>Période HC</td><td align= »right »>2292</td><td align= »right »>289</td></tr>
</tbody></table>On retrouve dans la réponse du CGX, le id= »CPT1_table1″ qui est déclaré en dur côté TICGRAPH.HTM
C’est à cette endroit dans le HTML ou sera inséré ce Tableau HTML.
Comme ce Tableau HTM ainsi rendu est un peu fouillis on peut via les Code Clé CGX, séparer les Infos JOUR, MOIS et ANNEE pour plus de clarté et cela permet de récupérer les INFO de façon plus lisible depuis une Fonction à déclarer dans votre Script Domotique.
Je vais mettre ci-dessous un exemple de fonction écrit en PHP pour récupérer Un à Un les divers data Reçus.
Mais auparavant on va faire en sorte d’éclater ce tableau CPT1_table1 par 3 Tableaux >> JOUR, MOIS et ANNEE pour plus de clartéLes Commandes CGX ci-dessous peuvent être incérer dans votre Fichier PERSO.CGX pour récupérer le ou les Tableaux qui vous intéresse. Il faut coller dans votre PERSO.CGX sans Espace, peut importe placé ou dans le fichier (Attention, pas de ligne vide et la fin de Tous les fichiers CGX doivent se terminer par un point ‘.’) Vous pouvez documenter une ligne en utilisant un » # » en début de commentaire.
# AJOUT du Tableau HTML TIC Conso coût JOUR
t <html><TbljrTIC1>
t <![CDATA[
c jc1
t ]]>
t </TbljrTIC1></html>
#
#
# AJOUT du Tableau HTML TIC Conso coût MOIS
t <html><TblmoTIC1>
t <![CDATA[
c mc1
t ]]>
t </TblmoTIC1></html>
#
#
# AJOUT du Tableau HTML TIC Conso coût ANNEE
t <html><TblanTIC1>
t <![CDATA[
c ac1
t ]]>
t </TblanTIC1></html>
#Si vous regardez bien j’ai déclaré 3 TAG CGX, TbljrTIC1, TblmoTIC1, TblanTIC1, un TAG pour identifier chacun des 3 tableaux,
chaque TAG permettant de Cibler par une Fonction PHP par Exemple, chaque Tableaux HTML qui seront crée comme résultat de la requête PERSO.CGX envoyé au WES.Le résultat rendu par le Serveur WES par rapport à ces Codes Clé CGX :
<html>
<TbljrTIC1>
<tr><td>Jour HP</td><td align=right>8.1</td><td align=right>1.42</td></tr> <tr><td>Jour HC</td><td align=right>6.7</td><td align=right>0.88</td></tr>
</TbljrTIC1>
</html><html>
<TblmoTIC1>
<tr><td>Mois HP</td><td align=right>66</td><td align=right>11.6</td></tr> <tr><td>Mois HC</td><td align=right>34</td><td align=right>3.6</td></tr>
</TblmoTIC1>
</html><html>
<TblanTIC1>
<tr class=’A0′><td>Année HP</td><td align=right>2922</td><td align=right>485</td></tr> <tr class=’A0′><td>Année HC</td><td align=right>2329</td><td align=right>292</td></tr>
</TblanTIC1>
</html>Chaque valeur à récupérer pour chacun des 3 Tableaux HTML ce trouve entre des TAG <TD>valeur<TD>
Si j’éclate le 1er Tableau nommé TbljrTIC1 (Data JOURS) on retrouve de façon plus lisible les divers info rendus<tr>
<td>Jour HP</td>
<td align=right>8.1</td>
<td align=right>1.42</td>
</tr>
<tr>
<td>Jour HC</td>
<td align=right>6.7</td>
<td align=right>0.88</td>
</tr>On trouve dans le 1er <TD> ou bien à l’Index 0 de l’array du Tableau HTML la valeur « Jour HP »
On trouve dans le 2eme <TD> ou bien à l’Index 1 de l’array du Tableau HTML la valeur « 8.1 » qui est le Nb Kwh Jour heure plaine
On trouve dans le 3eme <TD> ou bien à l’Index 2 de l’array du Tableau HTML la valeur « 1.42 » qui le coût Jour heure plaine
On trouve dans le 4eme <TD> ou bien à l’Index 3 de l’array du Tableau HTML la valeur « Jour HC »
On trouve dans le 5eme <TD> ou bien à l’Index 4 de l’array du Tableau HTML la valeur « 6.7 » qui est le nb Wh Jour heure creuse
On trouve dans le 6eme <TD> ou bien à l’Index 5 de l’array du Tableau HTML la valeur « 0.88 » qui est le coût Jour heure pleineDonc il suffit de créer une Fonction ex: PHP, dans votre Script Domotique qui puisse récupérer depuis un Tableau html nommé, dans notre exemple TbljrTIC1, un des indexs de l’Array Tableau HTM.
On doit en 1er lieu filtrer du Tableau tout les char et mot ce qui ne servent pas de façon à ne garder que
<td>Jour HP</td> >> Index 0 de l’array
<td>8.1</td> >> Index 1 de l’array
<td>1.42</td> >> Index 2 de l’array
<td>Jour HC</td> >> Index 3 de l’array
<td>6.7</td> >> Index 4 de l’array
<td>0.88</td> >> Index 5 de l’arrayVoici un exemple de fonction PHP qui fait ce travail
/*
# Retourne la Valeur d’un flux XML type Tableau HTML relatif à un Index dans ce Tableau
# Paramètres:
# – $pXml: contient l’ensemble du document XML à lire.
# – $pXmlNoeud: contient le nom du noeud parent XML à lire.
# – $nItem: contient le n° Index du TAG <td> à lire
*/
function GetValeurTableauXml($pXml, $pXmlNoeud, $pItem) {
try {// récupération de la zone XML parent du tableau HTML
$Tabl = $pXml->getElementsByTagName($pXmlNoeud)->item(0)->nodeValue;// suppression des caractères espaces et textes parasites.
$Tabl= str_replace( » align=right », « », $Tabl);
$Tabl= str_replace(« <tr class=’A0′> », « », $Tabl);
$Tabl= str_replace(« </td> », « », $Tabl);
$Tabl= str_replace(« </tr> », « », $Tabl);
$Tabl= str_replace(« \n », « », $Tabl);// récupération de la valeur du N° Item d’un enfant TAG <TD>
$Tagtd = explode(« <td> », $Tabl);
$valeur = $Tagtd[$pItem];
return $valeur;} catch (Exception $e) {
echo « Erreur Exception lireValeurTableauXml = « .$e->getMessage();
return 0;
}
}Voici comment on appelle cette fonction en PHP
// Exemple Récupération de valeurs issues de Tableau type XML/HTML
//##################################################################
//
// récup du tableau TbljrTIC1 la valeur Kwh et coût HP JOUR$KwJourHP = GetValeurTableauXml($xml, ‘TbljrTIC1’, 1); // valeur KW HP TIC1
$CoutJourHP = GetValeurTableauXml($xml, ‘TblanTIC1’, 1); // valeur Coût HC TIC1Voila, Voila, un peu détaillé, peut être un peu compliqué pour certain, comment vous pouvez récupérer les Infos de ces Tableaux XML formaté HTML (Array comme vous les cité)
ATTENTION: Si vous créé vos PROPRE FICHIER CGX, C’est uniquement sous votre responsabilité si cela induit des erreurs dans votre WES. Toujours faire un Backup de la carte SD du WES avant de bricoler dedans.
En Dehors du fichier DATA.CGX tel que défini par défaut, qui restera compatible pour toutes les MAJ future du WES,
Nicola peut à discrétion modifier les Codes Clè utilisés actuellement pour une version WES donnée, dans les fichier CGX propriétaire de ses fichiers HTM pour gérer les Pages du wEBPar rapport aux prochaines MAJ WES, si votre script PERSO.CGX ne fonctionne plus correctement après, cela sera à vous et uniquement à vous de chercher à régler votre problème; Cela peut être un Code Clé qui à été changé, ou bien l’Usage d’un Tableau XML HTM d’une Page qui est supprimé et remplacé ar de nouveaux code pour afficher les Infos de la Page
En aucun cas @Nicolas ou moi même pouvons être responsable, de dysfonctionnement éventuel, si vous faites des modifs ou rajouter des fichiers CGX Perso dans la carte SD ou modifiez des CGX existant du WES.
Cdt
Christian
00- 13 septembre 2022 à 4 h 36 min
- in reply to: Téléinfo 2 compteurs USB et compteur Legrand 004681
Bonjour,
J’ai cherché les Docs PDF de votre modèle de compteurs 004681 de Legrand.
Pour pouvoir configurer votre compteur il faut communiquer avec lui par le biais de la liaison Modbus RS485
Autrement les réglages par défaut sont :Pulse weight: 10Wh par pulse
Pulse width: 100 msIl faut donc paramétrer vos compteurs côté WES :
Type de compteur = Electrique
Type d’impulsion =Electronique 20ms
Unité de mesure = kWh
Nombre d’impulsion par unité = 100Cela donne >> 100 pulses pour 1 kWh <==> 100 pulses pour 1000Wh <<donc>> 1000Wh / 100pulses ==> 10Wh par pulse
Ou bien >> 10Wh par pulse >> donne >> 1000Wh / 10Wh => 100 pulses pour 1000Wh <==> 100 pulses pour 1 kWhCdt
00- 10 septembre 2022 à 16 h 12 min
- in reply to: connaitre si serveur a eu une coupure de courant
RE: Si vous avez un moment, envoyez moi un mail à testmail@lesutiles.fr. Je suis dispo cet après midi.
Je vous répondrez et vous communiquerais mon n° de Téléphone pour que vous puissiez m’appeler afin que l’on gère votre PB plus facilement que depuis le Blog.
Cdt
00