cdlog2

Forum Replies Created

Affichage de 15 réponses de 841 à 855 (sur un total de 1,620)
  • Replies
    cdlog2
    Modérateur

      RE: Quand je relie vos anciens Post, je comprend que votre Bus 1Wire est composé de câbles à deux fils et que vous fonctionnez en mode Parasite ? Ces paires uniques sont t’elle torsadés ?

      Le Mode Parasite, n’est pas le meilleur mode surtout si vous avez un Bus 1Wire câblé en étoile avec de longue distance. Vous risquez d’avoir des Pbs de fonctionnement comme actuellement lors d’extension de nouveaux composants. Certaines sondes, voir cartes à Relais 1Wire, pourraient ne plus répondre comme il faut, s’il n’y a pas de résistance de 4,7k placé en Pull-Up pour équilibrer le BUS, connectée entre le signal 1W et le 5volt en bout des lignes.

      Avez vous récemment rajouté des sondes ou tout autre composant 1Wire sur votre BUS ? Avez vous installé un ou plusieurs Capteur d’humidité sur votre BUS ?. Le 5 volt est recommandé pour alimenter ces petits boîtiers.

      Vous utilisez à priori des prises RJ12 serties pour câbler vos sondes. Utilisez vous des multi-prises RJ12 pour raccorder toutes vos sondes sur le Bus. Est t’il possible d’y avoir de mauvais contact si pour une raison quelconque vous avez touché au Bus lors de travaux annexes ces derniers temps ?

      Cdt

       

      0
      0
      cdlog2
      Modérateur

        RE : Autre Hypothèse : Il suffit d’avoir un seul Composant 1Wire défectueux, qui tombe en panne et perturbe le signal 1Wire, pour mettre la panique  sur le BUS Global.

         

        0
        0
        cdlog2
        Modérateur

          Bonjour @Nicolas,

          C’est moi qui est préconisé à @philou15 de faire la Mise à jour de son WES qui été en version V0.83C.

          On sait très bien que cela n’a rien à voir avec les Pbs des Sondes 1Wire de @philou15, mais comme il a des Pbs, Autant en profiter pour mettre son WES à niveau avec la dernière version qui est beaucoup plus stable.

          Y a t’il quelque chose à redire ?

           

          0
          0
          cdlog2
          Modérateur

            Juste une hypothèse !

            Personnellement j’habite la campagne, dans une maison en pierre totalement rénovée. Malgrés les diverses isolations, il m’arrive parfois en été de constatez que de tout petits intrus à moustaches, réussissent à pénétrer chez moi depuis les aérations de la toiture. Heureusement, elles ne résistent à l’odeur du beurre de cacahuète que je place dans des pièges au grenier !.

            Je ne suis jamais envahie, juste une ou deux à chaque saison, mais ces petites souries des champs peuvent se multiplier rapidement si on les laisse vivre leur vie. Ce n’est pas tant ces mignones qui posent problème, mais je sais qu’à défaut de trouver de la nourriture, elles peuvent s’attaquer à certains câbles à leur goût.

            Si un des câbles du bus 1Wire est abïmé par ces bestioles, vous pourriez avoir des pbs tel que vous l’évoquez avec vos sondes 1Wire. Si le 5volt est mis en contact avec le signal 1W dans un câble d’une des branches du Bus, L’ensemble des liaisons 1Wire seront désabilisés. Cela explique peut être qu’en mode parasite votre équipement en USB détecte bien votre BUS.

            Mais à priori vous n’avez pas un court circuit entre le GND et le 5volt vue que certaines sondes sont néanmoins détectées par le WES.
            Si vous habitez comme moi la campagne, il est possible que vous soyez squatté par un de ces petits rongeurs !?

            Une autre hypothèse, c’est que vous ayez un câble 1Wire entérré dans une buse pour alimenter une dépendance distante. Comme il a pas mal plu dans certaines régions de la France, possible qu’une remonté d’humidité provoqué par capillarité modifie l’impédance du BUS à cet endroit.

            Je ne sais pas comment est câblé votre BUS 1 Wire, mais à priori vous avez plusieurs départs depuis un point central ce qui évoquerait un câblage en étoile. la déconnéxion provisoire de chaque départ devrait permettre de trouver la/les branche(s) qui pose(nt) problème.

            Pour terminer le circuit qui interface le bus 1Wire dans le WES est un composant DS2482-100 qui est une interface I2C to 1-Wire Bridge. Ce circuit n’est pas en principe fragile, mais je ne sais pas si un 5 volt connecté pendant une longue durée sur son signal OutPut 1Wire pourrait l’endommager. Je ne sais pas non plus si Nicolas à interfacé la sortie de ce circuit avec des MosFets.

            Si vous connectez seulement une seule Sonde directement en sortie du 1Wire du WES (sans autre câble du Bus) et qu’elle soit toujours reconnue lors de Scan, alors vous pouvez déjà éliminer l’hypothèse d’une malfonction depuis le WES.

            Cdt

             

            0
            0
            cdlog2
            Modérateur

              Bonjour,

              Cela peut venir de plusieurs choses !

              Etes vous sûr de n’avoir fait aucune modification dans la configuration du WES peut avant ces Pbs ? Modif Prog, Enregistrement de Config ou Ajout nouveaux élements ?

              Avez vous constatez d’autres problèmes hormis ceux de vos sondes ? Avez vous les même Pbs avec des Cartes Relais 1Wire si vous en avez ?
              Vos autres Capteurs: Pinces, Pulses, etc présentent t’ils des PBs de configurations, Perte des Nom symboliques ?
              Le WES est t’il à la bonne Heure et Date ?

              Avez vous eu de l’orage et/ou coupure électrique ?
              Avez vous autorisé l’accès à votre WES depuis Internet ?

              La config des Sondes est sauvegardée dans le fichier S1WIRE.CFG situé dans le Dossier CFG du WES. Lorsque vous éditez ce fichier (bloc-Notes, NotePad ..) est t’il vide ? Dans ce fichier normalement vous devriez trouver les Adresses ROM et Noms des Sondes que vous aviez sauvegardés. si vous n’avez pas fait de sauvegarde depuis ! Voici une vue partielle de mon propre fichier :

              ACT=1
              CSV=0
              28-4A-5A-A3-4-0-0-33-0-0.0-Mitigeur
              28-21-BC-A5-4-0-0-47-0-0.0-Dep. ECS
              28-8F-6E-A3-4-0-0-DC-1-0.0-Retour PAC
              28-C8-53-A3-4-0-0-44-1-0.0-Dep Radiat

              Si ce fichier est vide maintenant et surtout si vous n’avez pas fait d’enregistrement des Sondes depuis vos dysfonctionnements, Cela peut venir de la Carte SD ! C’est à travers ce fichier que le WES retrouve les Infos et Noms des Sondes après un Reboot.

              Vos problèmes peuvent aussi avoir pour cause :

              Pb d’alimentation ?, mesurez la tension du WES si vous avez un Voltmètre et vérifiez si cela respecte la tension normalement fournie par son Alim ?
              Cela peut venir d’une faiblesse de la Pile bouton au lithium CR1220 3V 36mAh situé sur la Carte PCB du WES ?.
              Cela peut aussi venir de la Carte SD si d’autres fichiers ont perdus des infos alors que vous n’avez fait aucun enregistrement depuis ?.
              Peut probable, mais cela peut être dû suite un accès malveillant si la CNX du WES est autorisé en fTP depuis l’Extérieur (Internet) ?

              Pas facile de deviner la raison de vos dysfonctionnement ! sans un minimum de vérifications !

              Profitez de mettre votre WES à Jour avec la dernière MAJ WES V0.84A10. Elle est beaucoup plus stable que la Version V0.83C actuellement chargée dans votre WES.

              Cdt

              0
              0
              cdlog2
              Modérateur

                Il faut avoir la même valeur comme référence afin de comparer.

                Oublier le Data cgx Jeedom !?

                Dans votre data_tic.cgx agencer les deux lignes ensemble provisoirement.

                c aT1 <CONSO_ANNEE>%.03f</CONSO_ANNEE>
                c aT1 <CONSO_ANNEE_DECI>%d</CONSO_ANNEE_DECI>

                Ensuite lancer la requête depuis votre navigateur : 192.168.0.x/data_tic.cgx
                Comme cela vous pourrez comparez les 2 valeurs rendus.

                CONSO_ANNEE_DECI devrait être le nombre ENTIER de CONSO_ANNEE.

                Si dans Jeedom les Infos affichées sont différentes, alors le PB est du côté Jeedom

                0
                0
                cdlog2
                Modérateur

                  ==> %s => valeur attendue => format String  » 0123456789  »
                  ==> %d => valeur attendue => nombre Absolu ENTIER ( 0123456789 , pas de décimale)
                  ==> %02d => valeur attendue => nombre Absolu ENTIER limité à 2 chiffres (0 <-> 99, pas de décimale)
                  ==> %f => valeur attendue => nombre Décimal FLOTTANT  (0.0, 123456789,1234….)
                  ==> %.02f => valeur attendue => nombre Décimal FLOTTANT avec 2 chiffres après la virgule (0.00, 123456789.12)
                  ==> %.03f => valeur attendue => nombre Décimal FLOTTANT avec 3 chiffres après la virgule (0.000, 123456789.123)

                  0
                  0
                  cdlog2
                  Modérateur

                    Bonjour @Richard,

                    Pour répondre à votre question, pourquoi ne pas avoir utilisé le Terme « LireValeur » au début du NOM de la Fonction que j’ai nommé : SetJeedomIdxValue.

                    La réponse est simple, cette fonction ne lit aucune Valeur et ne fait qu’enregistrer une Valeur, passé en argument, dans un Virtuel Jeedom Identifié par un n° ID fourni aussi comme argument. J’aurais pu lui donner le NOM : EnregistreUneValeurDansUnIdentifiantJeedom

                    Pourquoi utiliser l’anglais comme langue ?
                    1er : La langue anglaise est compréhensible de tous les Programmeurs du monde entier ce qui n’est pas vraie pour le Français ou tout autres Langues. C’est la Langue communément Utilisée par tous les Programmeurs.
                    2eme : Les termes et raccourcies en anglais sont plus courts à écrire que leurs homologues écrits en Français ou tout autre langue

                    Les Noms que vous donnez aux Fonctions, hormis ceux existantes dans les librairies des API de Base, sont seulement des Noms Symboliques pour référencer votre Fonction lorsque vous l’écrivez. Vous pouvez lui donner le Nom que vous voulez. Le but malgré tout est de pouvoir décrire de façon sommaire ce que fait la Fonction de par son NOM Symboliques.

                    Prenez la Fonction lireValeurXml qui existe de base dans votre Script. Lorsque l’on interpréte le NOM de cette fonction, on suppose que la fonction Lit une Valeur XML ???.

                    Hors cette Fonction fait deux choses. En effet elle Lit la Valeur d’un TAG d’un Flux XML puis elle enregistre cette Valeur dans un Virtuel Jeedom Identifié par un N° ID.

                    Moi j’aurais donné à cette Fonction le NOM Symbolique : GetXmlTagValueAndSetVirtualID, ce qui décrit de façon plus compréhensible ce que fait réellement la Fonction.

                    Quelque soit le NOM donné à une Variable ou à une Fonction, le But est de respecter dans le Programme lors de leur utilisation, Le NOM ainsi que la Caste tel que défini.

                    Cdt

                    0
                    0
                    cdlog2
                    Modérateur

                      Re : Complément : Vous ferez attention à bien donner le même NOM défini dans votre fichier CGX spécifique qui identifie le Tag Parent du Tableau XML TIC1, avec le NOM du Tableau XML fourni en argument lors des Appels des Fonctions du Script pour en extraire les Infos : 

                      Extrait du résultat de votre CGX que vous avez fourni dans votre 1er Post :

                      <TblanTIC1>
                      <tr class=’A0′><td>Année HP</td><td align=right>4808</td><td align=right>733</td></tr> <tr class=’A0′><td>Année HC</td><td align=right>3549</td><td align=right>404</td></tr>
                      </TblanTIC1>

                       

                      Contenu de votre Script avec les appels pour en extraire les Infos du Tableau XML TIC 1

                      //# TblanTIC1 Kwh HP / HC et Coût TIC1
                      //############################################################################

                      // Ajout MODIF DU 09 Aout 2021 ////
                        // CALCUL TOTAL KW ANNEE = SOMME KW AN HP + KW AN HC

                      $KwAnHP =  GetValeurTableauXml($xml, ‘TblanTICA1‘, 2);    // valeur KW HP    >>> TblanTICA1  pris en Exemple à vos Ligne Active
                      $KwAnHC =  GetValeurTableauXml($xml, ‘TblanTICA1‘, 5);    // valeur KW HC   >>>  TblanTICA1 pris en Exemple à vos Ligne Active
                      $TotKwAn = $KwAnHP + $KwAnHC;                                         // $TotKwAn = Calcul total KW Année : KW HP + KW HC
                      SetJeedomIdxValue($TotKwAn, 1234);                                         // Assigne la Valeur $TotKwAn (total KW Année) à l’Identifian IDX 1234 Jeedom

                      lireValeurTableauXml($xml, ‘TblanTICA1‘, 2, 253, 0);    // valeur KW HP    >>>>  ICI VOUS UTILISEZ ‘TblanTICA1‘ ??
                      //lireValeurTableauXml($xml, ‘TblanTIC1’, 3, 1507, 0);    // valeur Coût HP    >>>>  ICI VOUS UTILISEZ ‘TblanTIC1’     ??
                      lireValeurTableauXml($xml, ‘TblanTICA1‘, 5, 254, 0);    // valeur KW HC    >>>>  ICI VOUS UTILISEZ ‘TblanTICA1‘ ??
                      //lireValeurTableauXml($xml, ‘TblanTIC1’, 6, 1904, 0);    // valeur Côut HC   >>>>  ICI VOUS UTILISEZ ‘TblanTIC1’     ??

                      Si vous regardez bien ! Je fourni le même NOM ‘TblanTICA1’ dans mon exemple pour référencer le Tableau XML du TIC1 que celui que vous utilisez dans vos Lignes Actives (ceux non commentées) de : lireValeurTableauXml(…..), de votre fichier Script Scenario-TIC.txt que vous m’avez joint.

                      Mais le NOM du Tag  qui fait référence dans votre fichier CGX donné en résultat dans votre 1er Post est <TblanTIC1>

                      Soit c’est le Nom est <TblanTICA1> ou bien <TblanTIC1> dans votre fichier CGX, mais ce n’est pas possible de mélanger les deux NOM dans les appels depuis votre Script.

                      Je vous laisse mettre de l’ordre dans les Noms fournis en référence. Modifier aussi l’Identifiant 1234 que j’ai utilisé pour envoyer à Jeedom le résultat du calcul Total Kw Année :  SetJeedomIdxValue($TotKwAn, 1234);

                      Cdt

                      0
                      0
                      cdlog2
                      Modérateur

                        RE : correction : Une Fonction en PHP s’écrit : function suivi du Nom Fct (..,…) {……}

                        Votre Script est écrit en PHP et non en C, je ne suis pas encore réveillé !

                        Cdt

                        0
                        0
                        cdlog2
                        Modérateur

                          Bonjour,

                          J’ai précisé que l’ajout ( la copie ) de mes 2 nvelles Fonctions se fait à la suite des 3 fonctions existantes.

                          Une Fonction en C ou CPP s’écrit : function suivi du Nom Fct (..,…) {……}

                          J’ai rajouté ces deux Nvelles Fct. à la suite des 3 Fcts existantes ainsi que l’exemple d’appel, dans votre fichier TXT joint « Modif-Scenario-TIC.txt »

                          Par contre comme je n’ai pas le contenu de votre Fichier DATA_tic.CGX avec le Code Clé Cgx  » Total KW Année »  qui pose PB, pourriez vous le transmettre (en format archive ZIP ) pour @Nicolas  afin qu’il comprenne de quoi vous parlez.

                          Vous donnez le résultat du CGX lu depuis votre navigateur mais @Nicolas n’a pas votre fichier CGX spécifique pour voir le Code Clé qui nécessite une correction dans son mode de calcul  ( KW HP + HC ) !

                          Cdt

                           

                          Attachments:
                          You must be logged in to view attached files.
                          0
                          0
                          cdlog2
                          Modérateur

                            RE : Petite correction : l’Argument $pId dans la Fonction  function SetJeedomIdxValue($valeur, $pId) doit être $pId et non $pID comme écrit précédemment.

                            Je joint le fichier TXT corrigé

                            Attachments:
                            You must be logged in to view attached files.
                            0
                            0
                            cdlog2
                            Modérateur

                              Bonjour @Richard

                              En attendant que @Nicolas corrige le Bug sur la Fct clé CGX Total Année KW qui doit être la somme de KW HP + KW HC au lieu de KW HP seul

                              Vous pouvez provisoirement faire ce Calcul directement dans Jeedom
                              Il suffit de rajouter dans votre Script WES les deux fonctions ci-dessous à la suite des fonctions existantes :

                              // FONCTIONS EXISTANTES
                              function getWesXml($pUser, $pWesIP, $pDataPage)
                              function lireValeurXml($pXml, $pXmlNoeud, $pXmlAttribut, $pId, $pUnite)
                              function lireValeurTableauXml($pXml, $pXmlNoeud, $pItem, $pId, $pUnite)

                              // NOUVELLES FONCTIONS A RAJOUTER JUSTE EN DESSOUS A LA SUITE

                              /*
                              # Retourne la Valeur d’un flux XML type Tableau HTML relative à un Index dans le Tableau
                              # Paramètres:
                              # – $pXml: contient l’ensemble du document XML à lire.
                              # – $pXmlNoeud: contient le nom du noeud parent XML à lire.
                              # – $pItem: contient le n° Index du TAG à lire  (NOUVEAU)
                              */
                              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;
                              }
                              }

                              /*
                              # Permet d’assigner directement une Valeur à un IDX jeedom
                              # – $valeur: Valeur à stocker
                              # – $pId: Identifiant du virtuel Jeedom dans lequel la valeur de l’attribut XML doit être stockée.
                              */
                              function SetJeedomIdxValue($valeur, $pID) {

                              $cmd=cmd::byId($pId);
                              $cmd->setValue($valeur);
                              $cmd->event($valeur);
                              }

                              // VERS FIN DU FICHIER

                              //# Temperatures
                              //############################################################################
                              lireValeurXml($xml, ‘temp’, ‘SONDE1’, 1507, 0);
                              lireValeurXml($xml, ‘temp’, ‘SONDE2’, 1508, 0);
                              //lireValeurXml($xml, ‘temp’, ‘SONDE3’, 1899, 0);
                              //lireValeurXml($xml, ‘temp’, ‘SONDE4’, 1900, 0);
                              //lireValeurXml($xml, ‘temp’, ‘SONDE5’, 1901, 0);
                              //lireValeurXml($xml, ‘temp’, ‘SONDE6’, 1902, 0);
                              //lireValeurXml($xml, ‘temp’, ‘SONDE7’, 1903, 0);
                              //lireValeurXml($xml, ‘temp’, ‘SONDE8’, 1904, 0);
                              //############################################################################

                              //# TblanTIC1 Kwh HP / HC et Coût TIC1
                              //############################################################################
                              //
                              // AJOUT DU CALCUL TOTAL KW ANNEE  = SOMME DE KW An HP + KW An HC
                                $KwAnHP =  GetValeurTableauXml($xml, ‘TblanTIC1’, 2);    // Récupère la valeur de KW Année HP
                                $KwAnHC =  GetValeurTableauXml($xml, ‘TblanTIC1’, 5);    // Récupère la valeur de KW Année HC
                                $TotKwAn = $KwAnHP + $KwAnHC;                            // $TotKwAn = Calcul total KW Année égal somme de : KW HP + KW HC
                                SetJeedomIdxValue($TotKwAn, 1234);                       // Assigne la Valeur $TotKwAn (total KW Année) à l’Identifiant IDX 1234 Jeedom

                              lireValeurTableauXml($xml, ‘TblanTIC1’, 2, 1899, 0);    // valeur KW HP
                              //lireValeurTableauXml($xml, ‘TblanTIC1’, 3, 1901, 0);    // valeur Coût HP
                              //lireValeurTableauXml($xml, ‘TblanTIC1’, 5, 1903, 0);    // valeur KW HC
                              //lireValeurTableauXml($xml, ‘TblanTIC1’, 6, 1904, 0);    // valeur Côut HC

                              //#############################################################################

                              Attention :  Vous le savez maintenant, le Blog transforme les caractères simple et double cote par des caractères visuel similaire mais qui pose pb en Language C

                              Je vous joint un fichier TXT avec les deux fonctions à rajouter dans votre Script et un exemple d’appels à ces nouvelles fonctions comme ci-dessus

                              Cdt

                              Attachments:
                              You must be logged in to view attached files.
                              0
                              0
                              cdlog2
                              Modérateur

                                Pour Info : Lien vers la description de la nvelle MAJ WES V 084A9 déposé par Nicolas en téléchargement :

                                https://www.cartelectronic.fr/blog/?topic=mise-a-jour-0-84a9/#post-10898

                                 

                                0
                                0
                                cdlog2
                                Modérateur

                                  Juste pour INFO, Je ne sais pas si vous l’avez vu,

                                  Nicolas à déposé une nouvelle MAJ WES V 0.84A9  en téléchargement.

                                  0
                                  0
                                Affichage de 15 réponses de 841 à 855 (sur un total de 1,620)