Forum Replies Created
- Replies
-
- 2 juin 2021 à 14 h 12 min
- in reply to: installation linky et valeur compteur production
Re: ATTENTION Correction
La ligne modifié avec ajout de l’Option MAX (valeur 3000 dans l’exemple) :
axis: { x: { type: ‘category’ , tick: { fit: false }},y:{ max:3000, label:{ text:’Puissance en ‘+unit,position:’inner-middle’}}},
00- 2 juin 2021 à 14 h 03 min
- in reply to: installation linky et valeur compteur production
Bonjour,
La Valeur MAX des graphiques, soit la Valeur MAX en Ordonnée Y (vertical du graph), est calculée automatiquement lors de la construction du Graphique au Regard de la Plus Grande Valeur à afficher en Abscisse X (horizontal du Graph).
Par contre on peut bloquer cette Valeur MAX à un Seuil FIXE à l’aide d’une Option que l’on défini avant la construction du Graphique et quelques soit les Valeurs à afficher.
Attention, si cette Option MAX est défini et si cette Valeur devient à un moment inférieure à des valeurs de pointes à afficher en Abscisse X, dans ce cas la hauteur de ces points sera tronquée dans le Graphique.
Si vous souhaitez malgré tout ajouter cette Option MAX et fixer la limite MAX des graphiques TIC, vous devez modifier le fichier ticgraph.htm à la ligne 207 pour la version WES 0.84A4 ainsi que le fichier ticgraph.html à la ligne 200 si votre WES est chargé avec la version 0.84A4 à double site.
La ligne d’origine :
axis: { x: { type: ‘category’ , tick: { fit: false }},y:{label:{text:’Puissance en ‘+unit,position:’inner-middle’}}},La ligne modifié avec ajout de l’Option MAX (valeur 3000 dans l’exemple) :
axis: { x: { type: ‘category’ , tick: { fit: false }},y:{label:{ max:3000, text:’Puissance en ‘+unit,position:’inner-middle’}}},Il faut vider le cache du navigateur après modification du (des) fichier(s) pour que votre navigateur prenne en compte la modif.
Cdt
00- 2 juin 2021 à 4 h 00 min
- in reply to: Nouveau venu
Bonjour,
Vous pouvez exposer vos problèmes sur le Blog si vous le désirez.
Vous pouvez aussi contacter directement Nicolas : contact@cartelectronic.fr, qui est plus à même pour répondre à toutes vos questions.
Cdt
00- 25 mai 2021 à 17 h 03 min
- in reply to: Acces WES derrière modem 4G – Solution
Bravo @Fred9274, je vois que vous avez enfin trouvé la bonne config Site To Site via le Cloud du produit. Je reviendrai vers vous si un jour j’ai besoin de reproduire votre Config via un accès 4G ou 5G.
De même je n’ai pas d’intérêt à promouvoir ce Produit.
Mais Histoire de remettre une couche sur ce produit qui est tout petit (Dim. en mm 55, 55, 20) il est facilement portable lors de déplacement et permet les connections via son WIFI intégré. Il est configurable comme n’importe quel Routeur (point d’accès ou répéteur Wifi, serveur DHCP, VPN etc), Fonctionne sous Linux en Open Source et on peut facilement accéder et modifier le firmware via SSH ou FTP.
Cet appareil Intègre toutes les interfaces VPN connus. La Cerise ! est que la Sté octroie Gratuitement pour chaque appareil acheté, un accès DynDNS ainsi qu’un accès direct VPN via le Cloud de la Sté, qui peut être utilisé pour accéder depuis l’Extérieur directement à votre BOX FAI ou bien sûr vers ce Mini-Routeur via un accès 4G ou 5G ou en utilisant la connexion USB intégrée au routeur comme point d’entré associé à un Tel. Portable en 4G ou 5G. On peut raccorder une Disque Dur Externe ou une carte MicroSD via la Cnx USB !
Voici le site technique de ce gl-inet : https://docs.gl-inet.com/en/3/setup/mini_router/first-time_setup/
Ceux qui paye pour avoir un accès à un service DynDNS pour leur accès direct à leur BOX ont tout intérêt à acheté cet appareil pour faire des économie vue le prix de vente, env. 25€, de ce Mini Routeur.
Après il faut voir ? La sté GL-iNet est Site Chinois qui gère leur propre Cloud VPN !
Cdt
00- 23 mai 2021 à 21 h 05 min
- in reply to: Modif fichier .CGX perso
On commence à saturer ce Blog avec une discussion qui sort de son cadre. Je vous propose de poursuivre cette discussion directement par mail.
Si vous rencontrez encore des difficultés avec cette nouvelle Fonction, envoyez moi un mail sur : testmail@lesutiles.fr
C’est une boite mail provisoire que j’ai ouvert dans un de mes Serveurs, pour permettre d’envoyer encore des Mails depuis le WES, pour les personnes qui sont bloqués avec leur propre Serveur de messagerie qui n’accepte plus l’envoie de Mail non TLS
Prévenez moi sur ce blog si vous m’envoyez un Mail. Je vous répondrez en retour de Mail.
Cdt
00- 23 mai 2021 à 20 h 07 min
- in reply to: Modif fichier .CGX perso
Re: Quand je dit : « Récupérer mon fichier que j’ai Posté en archive; Vous y trouvez la fonction à copier tel qu’elle dans votre Script JEEDOM WES ainsi que la manières de récupérer les infos de ces Code Clés un peu spéciaux. «
EXPLICATION DE : Vous y trouvez la fonction à copier tel qu’elle dans votre Script JEEDOM:
Cela veut dire >> Vous COPIEZ LA FONCTION lireValeurTableauXml(……..) {…} dans le même fichier avec les autres Fonctions de Votre Script PHP que vous utilisez déjà pour récupérer les valeurs du DATA.CGX ou fichier CGX personnalisés.
Vous aurez donc 2 FCT pour lire les valeurs dans votre SCRIPT , l’une est celle d’origine : lireValeurXml(….){….} et la nouvelle lireValeurTableauXml(…) {…}
C’est à vous de faire appel à la bonne fonction pour lire les valeurs des TAG suivant leur format :
lireValeurXml($xml, ‘impulsion’, ‘PULSE1’, 1459, 0); ==>> pour lire les valeurs des TAG Classiques
lireValeurTableauXml($xml, ‘TblanTIC1’, ‘td’, 1, 1459, 0); ==>> pour lire la valeur choisi par le n° de RANG d’un TAG <td> contenu dans le résultat CGX Type Tableau HTML. Le 1er <td>=Rang 0 , le 2eme <td>=Rang 1, le 3eme <td>=Rang 2 , etc etc….
Résultat Code Cgx « c ac1 » = Structure Tableau HTML
<TblanTIC1>
<tr class=’A0′><td>Année HP</td><td align=right>4034</td><td align=right>611</td></tr> <tr class=’A0′><td>Année HC</td><td align=right>2849</td><td align=right>326</td></tr>
</TblanTIC1>Une fois remis en forme :
<TblanTIC1>
<tr class=’A0′>
<td>Année HP</td> 1er <td> = Rang 0
<td align=right>4034</td> 2eme <td> = Rang 1
<td align=right>611</td> 3eme <td> = Rang 2
</tr>
<tr class=’A0′>
<td>Année HC</td> 4eme <td> = Rang 3
<td align=right>2849</td> 5eme <td> = Rang 4
<td align=right>326</td> 6eme <td> = Rang 5
</tr>
</TblanTIC1>// ligne pour récupérer la valeur KW HP du TIC 1
lireValeurTableauXml($xml, « TblanTIC1″ , « td » , 1 , 1232 , 0); // Rang Item 1 = 2eme Tag <td>
// ligne pour récupérer la valeur Cout HP du TIC 1
lireValeurTableauXml($xml, « TblanTIC1″ , « td », 2 , 1233 , 0); // Rang Item 2 = 3eme Tag <d>// ligne pour récupérer la valeur KW HP du TIC 1
lireValeurTableauXml($xml, « TblanTIC1″ , « td » , 4 , 1235 , 0); // Rang Item 4 = 5eme Tag <td>
// ligne pour récupérer la valeur Cout HP du TIC 1
lireValeurTableauXml($xml, « TblanTIC1″ , « td » , 5 , 1236 , 0); // Rang Item 5 = 6eme Tag <td>
00- 22 mai 2021 à 17 h 25 min
- in reply to: Modif fichier .CGX perso
Bonjour,
Récupérer mon fichier que j’ai Posté en archive; Vous y trouvez la fonction à copier tel qu’elle dans votre Script JEEDOM WES ainsi que la manières de récupérer les infos de ces Code Clés un peu spéciaux. Il vous faut aussi modifier votre fichier CGX comme décrit plus haut en rajoutant les TAG Parents dans la structure de Base de ces Codes. Je n’ai pas testé la fonction n’ayant pas JEEDOM. Si cela pose Pb faites un retour. Eviter les caractère avec accents pour nommer les Balise TAG parents.
En HTML, un tableau se construit ligne par ligne. Dans chaque ligne ( <tr> ), on indique le contenu des différentes cellules ( <td> ).
Schématiquement, un tableau se construit comme à la figure suivante. On a une balise de ligne ( <tr> ) qui englobe un groupe de cellules ( <td> )<table>
<tr>
<td>Carmen</td>
<td>33 ans</td>
<td>Espagne</td>
</tr>
<tr>
<td>Michelle</td>
<td>26 ans</td>
<td>États-Unis</td>
</tr>
</table>Les 3 Blocs que vous visualisez en bas de la Page Graph des TIC sont le résultat de 3 Tableaux écrit en HTML directement depuis le serveur qui est ensuite décodé et mis en forme par votre navigateur.
Cela veut dire, que pour construire la Page des Graphs TIC, Nicolas à préféré construire 3 Tableaux HTML avec les valeurs directement depuis le Serveur, qu’il envoie ensuite dans le fichier HTM pour affichage, plus tôt que d’envoyer pour chaque éléments des valeurs associés, dans un Tableau HTML vide qui serait écrit en dur dans le Fichier HTM comme pour la pluspart des autres Pages HTM.
Si Nicolas modifie lors d’une MAJ, s’il veut changer le format de ces Tableaux ou préfère utiliser des ID pour envoyer des valeurs CGX comme les autres Pages HTM directement dans des Tableaux écrit en Dur dans le fichier HTM, Votre fonction et l’indexation des éléments ne seront plus valide.
C’est le risque lorsque l’on sort des sentiers battus ! cela nécessite ensuite de reprendre toute la mécanique lors de MAJ et si Modif il y a ?!.
Cdt
00- 22 mai 2021 à 16 h 36 min
- in reply to: Modif fichier .CGX perso
Re: Pour éviter peut être d’avoir des Pbs avec l’usage de caractères accentués, n’utilisez pas ce type de caractère lors de la définition des noms des Tag Parent.
Vous pouvez par exemple personnaliser le TAG Parent pour le Code Clé « c ac1 » dans votre fichier CGX:
t <TblanTIC1>
t <![CDATA[
c ac1
t ]]>
t </TblanTIC1>bien sûr vous modifier l’appel à la fonction avec les bons paramètres : lireValeurTableauXml($xml, ‘TblanTIC1’, ‘td’, (x), x1234x, 0);
Les codes Clés pour récupérer les Valeurs HP/HC du Jour ou Mois sont respectivement « c jc1 » et « c mc1 ». De même vous devez les inscrire dans otre fichier CGX avec la même structure :
t <TbljrTIC1>
t <![CDATA[
c jc1
t ]]>
t </TbljrTIC1>t <TblmoTIC1>
t <![CDATA[
c mc1
t ]]>
t </TblmoTIC1>Le résultat des structures rendu avec ces Codes est identique à celui décrit pour le code « c ac1 ». donc la nouvelle fonction PHP est compatible pour lire ces éléments : lireValeurTableauXml($xml, ‘TbljrTIC1’, ‘td’, (x), x1234x, 0);
Pour personnaliser les infos du Compteurs 2 et 3, juste changer le n° du Code Clé : exemple « c ac2 » , « c jc2 » , « c am2 »
Attention : J’attire encore une fois votre attention sur le fait que l’usage de ces Codes n’est pas Officiel et que leur usage n’engage que votre responsabilité. Ces Structures et Code peuvent être modifiés à discrétion lors de future MAJ du WES.
Cdt
00- 22 mai 2021 à 14 h 33 min
- in reply to: Modif fichier .CGX perso
Re: J’ai Oublié de vous faire remarquer que je vous ai joints dans le Post précédent une archive avec la fonction à rajouter dans votre Script d’origine et les appels aux fonctions pour rentrer les infos dans JEEDOM
00- 22 mai 2021 à 14 h 31 min
- in reply to: Modif fichier .CGX perso
Bonjour,
Désolé pour le retard j’étais absent.
La fonction PHP lireValeurXml($pXml, $pXmlNoeud, $pXmlAttribut, $pId, $pUnite); de votre Script d’Origine permet de faire 3 choses :
– La 1ere est d’extraire depuis un fichier XML une liste de <TAG> enfant depuis le nom d’un <TAG> parent défini par $pXmlNoeud.
– La 2eme est de récupérer la Valeur d’un des <TAG> enfant, nommé par $pXmlAttribut, de la Liste des <TAG> précédemment isolées.
– La 3eme est d’enregistrer la Valeur de ce <TAG> enfant dans JEEDOM référencé par le N° d’identification $pId.Cela fonctionne bien lorsque le XML de référence est structuré avec cette logique :
<parent>
<enfant-1> Valeur </enfant-1>
<enfant-2> Valeur </enfant-2>
<enfant-3> Valeur </enfant-3>
</parent>Hors le résultat de ce Code CGX spécifique « c ac1 » ne renvoie pas la même structure :
<tr class=’A0′>
<td>Année HP</td>
<td align=right>4013</td>
<td align=right>608</td>
</tr>
<tr class=’A0′>
<td>Année HC</td>
<td align=right>2830</td>
<td align=right>324</td>
</tr>On constate d’une part qu’il n’y a pas dans le résultat de cette Zone CGX, de <TAG> parent et que tous les <TAG> enfant ont le même intitulé : <TD>. En plus on s’aperçoit qu’il y du texte parasite « align=right » dans la définition de certains <TAG> enfant : <TD align=right >
Donc en 1er on doit définir un <TAG> parent qui permet d’isoler cette zone du XML, comme on veut récupérer le tableau Année du TIC1 on peut lui donner ce nom » tableau_année_TIC1″ :
t <tableau_année_TIC1>
t <![CDATA[
c ac1
t ]]>
t </tableau_année_TIC1>Maintenant on peut récupérer cette zone XML en le ciblant avec le nom du TAG <tableau_année_TIC1>.
une 1ere FCT pour récupérer cette ZONE XML : $Tabl = $pXml->getElementsByTagName(« tableau_année_TIC1 »)->item(0)->nodeValue;la VAR $Tabl aura pour résultat la zone du XML :
<tr class=’A0′><td>Année HP</td><td align=right>4013</td><td align=right>608</td></tr> <tr class=’A0′><td>Année HC</td><td align=right>2830</td><td align=right>324</td></tr>Il reste maintenant à cibler les Valeurs enfants. mais on doit avant tout supprimer les textes parasites, l’espace et « align=right » des TAG <TD> enfant : On demande pour cela, par une fonction PH preg_replace, de supprimer l’ensemble de ce texte de la zone XML définie par $Tabl
$Tabl = preg_replace( » align=right », « », $Tabl);
le résulat de $Tenfant sera :
<tr class=’A0′>
<td>Année HP</td>
<td>4013</td>
<td>608</td>
</tr>
<tr class=’A0′>
<td>Année HC</td>
<td>2830</td>
<td>324</td>
</tr>Il nous reste maintenant de cibler chaque TAG <TD> enfant pour récupérer chaque valeur. Comme ces enfants ont le même nom de TAG <TD> on doit cibler chaque enfant par son n° de Rang.
// On va cibler le N° Item(x) pour récupérer la valeur de chaque TAG <TD> enfant :
$TexteHP = $Tabl->getElementsByTagName(« td »)->item(0)->nodeValue; // 1er Tag <TD> enfant
$valkwHP = $Tabl->getElementsByTagName(« td »)->item(1)->nodeValue; // 2eme Tag <TD> enfant
$valcoutHP = $Tabl->getElementsByTagName(« td »)->item(2)->nodeValue; // 3eme Tag <TD> enfant
$TexteHC = $Tabl->getElementsByTagName(« td »)->item(3)->nodeValue; // 4eme Tag <TD> enfant
$valkwHC = $Tabl->getElementsByTagName(« td »)->item(4)->nodeValue; // 5eme Tag <TD> enfant
$valcoutHC = $Tabl->getElementsByTagName(« td »)->item(5)->nodeValue; // 6eme Tag <TD> enfantIl ne reste qu’a enregistrer les Infos qui nous intéresse dans les identifiants JEEDOM
$cmd=cmd::byId(xx1231xx);
$cmd->setValue($valkwHP);
$cmd->event($valkwHP);$cmd=cmd::byId(xx1232xx);
$cmd->setValue($valcoutHP);
$cmd->event($valcoutHP);
$cmd=cmd::byId(xx1234xx);
$cmd->setValue($valkwHC);
$cmd->event($valkwHC);$cmd=cmd::byId(xx1236x);
$cmd->setValue($valcoutHC);
$cmd->event($valcoutHC);Mais pour que ces fonctions soit portable pour d’autre type de ZONE CGX équivalent on va regrouper l’ensemble dans une même Fonction PHP :
/*
# Lecture d’une valeur d’un flux XML type Tableau HTML et mise à jour de l’objet virtuel de JEEDOM
# 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 enfant XML à lire.
# – $nItem: contient le n° enfant du TAG à lire (NOUVEAU)
# – $pId: Identifiant du virtuel Jeedom dans lequel la valeur de l’attribut XML doit être stockée.
# – $pUnite: Divise la valeur par ce chiffre si $pUnite est >à zéro.
*/
function lireValeurTableauXml($pXml, $pXmlNoeud, $pXmlAttribut, $pItem, $pId, $pUnite) {
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= preg_replace( » align=right », « », $Tabl);
// récupération de la valeur du N° Item d’un enfant TAG <TD>
$valeur = $Tabl->getElementsByTagName($pXmlAttribut)->item($pItem)->nodeValue;
if ($pUnite > 0)
$valeur = $valeur / $pUnite;$cmd=cmd::byId($pId);
$cmd->setValue($valeur);
$cmd->event($valeur);
} catch (Exception $e) {
log::add(« WES », « INFO », « XML erreur on Id: ».$pId. »: ».$e->getMessage(), « »);
}
}// ligne pour récupérer la valeur KW HP du TIC 1
lireValeurTableauXml($xml, ‘tableau_année_TIC1’, ‘td’, 1, x1234x, 0); // 2eme Tag <TD> enfant// ligne pour récupérer la valeur Cout HP du TIC 1
lireValeurTableauXml($xml, ‘tableau_année_TIC1’, ‘td’, 2, x1234x, 0); // 3eme Tag <TD> enfant// ligne pour récupérer la valeur KW HP du TIC 1
lireValeurTableauXml($xml, ‘tableau_année_TIC1’, ‘td’, 4, x1234x, 0); // 5eme Tag <TD> enfant// ligne pour récupérer la valeur Cout HP du TIC 1
lireValeurTableauXml($xml, ‘tableau_année_TIC1’, ‘td’, 5, x1234x, 0); // 6eme Tag <TD> enfantVoila, Remplacer les x1234x par vos ID identifiant JEEDOM. c’est à tester je ne peux pas le faire de mon côté !
Attention certain caractères comme le Guillement double et simple cotes sont modifiés par ce Blog. donc corriger chaque Guillement dans la fonction.Cdt
Attachments:
You must be logged in to view attached files.00- 21 mai 2021 à 13 h 13 min
- in reply to: Modif fichier .CGX perso
Bonjour,
Désolé mais ces infos CGX sont gérées un peu différemment de ce que vous connaissez. C’est le fichier TICGRAPH.CGX qui vous intéresse.
Toutes les infos de cette page sont construit avec des Codes Clé CGX qui formatent des Tableaux HTML prérempli par le Serveur.Le Code clé qui vous intérresse est :
t <![CDATA[
c ac1
t ]]>Il faut absolument respecter la mise en forme CGX avec ces 3 lignes qui définissent que c’est un Tableau qui est attendu au Serveur.
Le résultat isolé de ce Code Clé me donne ceci par envoie de la requête depuis un fichier CGX de test :
<tr class=’A0′><td>Année HP</td><td align=right>8706</td><td align=right>1418</td></tr> <tr class=’A0′><td>Année HC</td><td align=right>5230</td><td align=right>633</td></tr>
Si je mets cette ligne en forme cela donne ceci :
<tr class=’A0′>
<td>Année HP</td>
<td align=right>8706</td>
<td align=right>1418</td>
</tr>
<tr class=’A0′>
<td>Année HC</td>
<td align=right>5230</td>
<td align=right>633</td>
</tr>On retrouve bien les valeurs Kwh et Coût pour les HP et HC. Si vous souhaitez récupérer ces infos, il vous faut en extraire les valeurs depuis votre Script Jeedom ou Domiticz.
Cdt
00- 20 mai 2021 à 1 h 08 min
- in reply to: Perte infos dans Cpt Impulsion
RE : pour être plus précis :
IL >> INDEX Actuel correspond à l’Indexs IJ + la SOMME des Consos Horaires passés du JOUR Courant depuis 00h01.
00- 20 mai 2021 à 0 h 43 min
- in reply to: Perte infos dans Cpt Impulsion
Bonsoir,
IA >> INDEX début ANNEE, date anniversaire Symbolique, correspond Théoriquement à la valeur de l’Index lue sur le Capteur à la Date Anniv. Mais on peut faire partir cet Index à la valeur 1 ou à n’importe qu’elle valeur selon l’Usage. C’est l’Index de Base des calculs.
IM >> INDEX début MOIS correspond à la SOMME de toutes les Consos Cumulée avec IA (date anniv) jusqu’à la date du DERNIER JOUR du MOIS Précédent à 23h59.
IJ >> INDEX début JOUR correspond à la Valeur de l’Indexs IM + la SOMME des Consos des JOURS Passés du MOIS Courant. Si nous somme le J5 >> IJ5 = ( IM + IJ1 + IJ2 + IJ3 + IJ4 )
IL >> INDEX Actuel correspond à la Somme de tous les Indexs ( IA + IM + IJ ) + la SOMME des Consos Horaires passés du JOUR Courant depuis 00h01.
Cdt
00- 19 mai 2021 à 7 h 51 min
- in reply to: M2M ne fonctionne pas
Merci Nicolas pour la précision.
Cdt
00- 19 mai 2021 à 7 h 46 min
- in reply to: Perte infos dans Cpt Impulsion
Bonjour,
Vous trouvez vos infos dans les fichiers DAT du dossier GRAPH/PLS
Les fichiers 2021.DAT et 2021V.DAT vous donnes les consos globaux par MOIS excepté pour le mois en cours. Tous les dossiers ayant la lettre V correspondent aux historiques des Pulses 3 et 4 alors que les dossiers sans la lettre V correspondent aux historiques des Pulses 1 et 2.
Les fichiers 01.DAT, 02.DAT, 03.DAT, 04.DAT, 05.DAT vous donne le détails des Consos total JOUR par MOIS (01=janvier, 02=février, 03=mars, 04=avril, 05=mai) pour les Pulse 1 et 2. Les infos des Pulses 2 et 3 sont contenues dans les Fichiers avec la lettre V : 01V.DAT, 02V.DAT, etc.
les fichiers CSM vous donne comme les DAT les totaux JOUR avec le Coût. de même les fichiers avec la lettre V font références aux Pulses 2 et 3
Dans le dossier GRAPH/PLS/ vous trouvez les sous dossier 01, 02, 03, 04, 05. Ces dossiers correspondent au mois de 01=janvier, 02=février, 03=mars, 04=avril, 05=mai. Chacun de ces sous dossiers MOIS vous donne le détail des Consos Horaires par JOUR .
C’est à vous de faire la sommes des toutes ces consos pour retrouver la conso Total Année, Mois. Il suffit de repartir à l’envers avec les dernières Consos JOUR pour reconstruire les Indexs MOIS, ANNEE.
Bon courage !
Cdt
00