Mail à date

Forums Serveur WES Installation & Configuration Mail à date

  • Ce sujet contient 4 réponses, 2 participants et a été mis à jour pour la dernière fois par Gaby-69, le il y a 4 années.
  • Post
    Gaby-69
    Participant

      Bonjour,

      Je cherche le moyen de pouvoir envoyer un mail de ma conso à une date précise (1 fois par mois et 1 fois par an) avec le seul WES ?

      Merci pour votre aide

      Cdt

       

      0
      0
    Vous lisez 3 fils de discussion
    • Replies
        cdlog2
        Modérateur

          Bonjour,

          Il me semble que vous aviez déjà ouvert une discussion sur ce sujet : https://www.cartelectronic.fr/blog/?topic=envoyer-mail-a-une-date-fixe/#post-10648

          Comme le WES ne permettait pas et ne permet toujours pas de réaliser votre demande, on vous avait suggéré de passer par une solution externe ! Mais votre réponse :

           » C’est justement ce que je veux éviter, d’avoir recourt à un système extérieur !! »

          Il est assez facile à travers un Script ou ajouter dans un Script exisitant d’une système externe (Jeedom, Domoticz .. etc) de réaliser votre demande. Puisque vous utilisez déjà une solution externe ! Pourquoi refuser d’utiliser votre Domoticz pour réaliser cette fonction comme vous le faites pour d’autres fonction, voir vos réponses dans ce fil de discussion :

          « https://www.cartelectronic.fr/blog/?topic=mesure-charge-decharge-batterie-pv/#post-10588 »

          Si besoin d’aide, je suis à votre disposition.

          Cdt

           

           

           

          0
          0
          cdlog2
          Modérateur

            Bonjour,

            Si cela vous intéresse je vous présente ici un exemple de modifs à faire dans votre Script LUA de votre DOMOTICZ afin de vous permettre de tester depuis le WES la date anniversaire de facturation du TIC1 ainsi que de remonter à Domoticz la valeur de la consommation Totale KWH de l’année courante au fil de l’eau.

            En complément un Flag booléen est remonté à Domoticz afin de vous informer du passage de la date anniversaire à 00h01h pour un éventuel envoie de MAIL par l’appli Domoticz

            Ces Modifs du Script LUA Domoticz sont Compatible avec les dernières MAJ WES V 0.84A4 et WES V0.84A10. Elles sont réalisées par rapport aux données d’un compteur LINKY en MONO avec un contrat tarifaire et Option Heure Creuse / Heure Pleine.

            Si vous avez un contrat ENEDIS avec une Option autre que HC/HP ou bien votre Compteur est en Triphasé, alors il faut modifier un peu ce script. Faites moi le savoir.

            Je vous joins en pièce jointe le fichier contenant les Modifs à réaliser. Ne pas copier les éléments depuis le Blog car certains caractères comme les guillemets sont remplacés par des caractères ascii différents.

            Ci dessous un Groupe de TAG à rajouter sans espace dans votre DATA.CGX. Permet la récupération de la date de facturation anniversaire configurée dans la du TIC1 du WES et de la date courante, ainsi que les valeurs de consommation Total KWH et coût du TIC 1 de l’année en cours. Compatible DATA.CGX MAJ WES V 0.84A4 et WES V0.84A10.

            t <TIC1_anniversaire>
            c cd1 <dateanniv>%02d/%02d</dateanniv>
            c h d <datenow>%02d/%02d</datenow>
            c h h <timenow>%02d:%02d:%02d</timenow>
            t </TIC1_anniversaire>
            t <TblanTIC1>
            t <![CDATA[
            c ac1
            t ]]>
            t </TblanTIC1>

            Début des Modifs à réaliser dans votre Scripts d’origine LUA Domoticz

            —————————————————————————————
            — Modifs de Script LUA DOMOTICZ compatible DATA.CGX version WES V 0.84A4 et WES V0.84A10

            ——————————————————————————
            — Nouveaux Identifiant Obj Domoticz à rajouter en début de Script LUA à la suite des autres Identifiants

            idx_flag_anniv  = 300      — FLAG true/false. test date anniversaire. Valeur = 1 si on est à la date anniversaire sinon Valeur = 0
            idx_totkwh = 301           — Valeur de la consommation Total en KWH de l’année courante

            — Fin de la personnalisations des Identifiants IDX

            —————————————————————————————————————-
            — Nouvelle Fonction GetValeurTableauXml à ajouter dans le Script LUA WES à la suite et juste après les fonctions existantes
            — Compatible DATA.CGX version WES V 0.84A4 et  WES V0.84A10

            — Retourne la Valeur d’un flux XML type Tableau HTML relative à un Index dans le Tableau HTML
            — 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 dans le tableau HTML
            ———————————————————
            function GetValeurTableauXml(pXml, pXmlNoeud, pItem)

            local Tabl = XML_Parse_TAG(pXmlNoeud, pXml)  — Recup du Bloc TAG <pXmlNoeud> …. </pXmlNoeud>
            if Tabl == nil then
            print (« XML error – TAG NOT found »)
            return 0
            end

            — suppression des caractères espaces et textes parasites.
            Tabl= Tabl:gsub( » align=right », «  »)
            Tabl= Tabl:gsub(« <tr class=’A0′> », «  »)
            Tabl= Tabl:gsub(« </td> », «  »)
            Tabl= Tabl:gsub(« </tr> », «  »)
            Tabl= Tabl:gsub(« \n », «  »)

            — récupération de la valeur du N° Item d’un enfant TAG <TD>
            local Tagtd = split(Tabl, « <td> »)     — creation de la List des Tags enfant <td>
            local len = getn(Tagtd)               — nb élement dans la liste
            if pItem > len then                   — test si le n° enfant <td> dmé hors Liste
            print (« XML error – Index TAG enfant trop grand »)
            return 0
            end
            local valeur = Tagtd[pItem]           — récup de la valeur du tag enfant <td> souhaitée
            return valeur
            end

            ———————————————————————————————————-
            — Ajout des nouveaux éléments dans la zone qui Implémente toutes les valeurs WES dans la Array commandArray
            ————————————————————————————————————

            — Récupération de la date anniversaire TIC configuré dans le WES (jour+mois) ainsi que la date courante (jour+mois)
            — Comparaison des dates et si les dates concident alors récupération des valeurs KWH consommé du TIC1 depuis
            — la date anniversaire et force le FLAG envoie MAil flag_anniv = true = 1


            date_annivTic = XML_Parse_Value(« dateanniv »,XML_string)           — recup de la date anniversaire jj/mm
            date_now = XML_Parse_Value(« datenow »,XML_string)                  — recup de la date courante jj/mm
            time_now = XML_Parse_Value(« timenow »,XML_string)                  — recup de l’heure actuelle hh:mm:ss
            flag_anniv = 0                                                    — force le Flag test anniversaire par defaut à false = 0


            — Recup des valeurs consommées total Année KWH Heure Creuse et Heure Pleine du TIC1 à la date d’anniversaire

            KwAnHP =  GetValeurTableauXml(XML_string, « TblanTIC1 », 2)     — KwAnHP = valeur total KWH HP index 2 dans tableau HTML WES
            KwAnHC =  GetValeurTableauXml(XML_string, « TblanTIC1 », 5)     — KwAnHC = valeur total KWH HC index 5 dans tableau HTML WES
            totkwh = KwAnHP + KwAnHC                                      — totkwh = Calcul cumul total KWH Année : KW HP + KW HC


            — enregistre la valeur TOT KWH année dans Domoticz à l’identifiant idx_totkwh pour info

            commandArray[idx_totkwh] = {[‘UpdateDevice’] = idx_totkwh..’|0|’..totkwh}


            — Test si on est à la date anniversaire de facturation TIC

            if (date_annivTic == date_now) then                               — comparaison des dates anniversaire TIC et date actuelle

            — recup de l’heure pour tester le début de la journée du jour anniversaire

            tabtime = split(time_now, « : »)                                  — separe l’heure, minute et seconde dans une liste
            if (tabtime[0] == « 00 » and tabtime[1] == « 01 ») then             — test si on est en début de journée 00h01
            seconde = tonumber(tabtime[2])                               — recup de la seconde courante depuis la liste [time_now] en valeur numérique

            — ICI on teste le créneau horaire en valeur seconde pour envoyer le mail et éviter d’en envoyer plusieurs en même temps
            — Le créneau en seconde tester ci-dessous doit être adapté à la fréquence d’envoie de ce Script en seconde au WES
            — Si ce Script est envoyé au WES toutes les secondes alors le test peut se faire sur un créneau compris entre 2 secondes

            if seconde > 0 and seconde < 3  then                          — test si on est dans le début créneau horaire des secondes compris entre 0 > < 3
            flag_anniv = 1                                             — Flag test anniversaire = Date Anniv + créneau horaire => entre 00:01:01 et 0:01:02 du jour « J »
            end
            end
            end

            ———————————————————
            — mise à jour du Flag test anniversaire facturation TIC1 à l’identifiant Domoticz idx_flag_anniv
            — valeur 0 pas OK. valeur 1 = Date Anniversaire et heure début journée OK >> Poss envoie eMail de la valeur idx_totkwh

            commandArray[idx_flag_anniv] = {[‘UpdateDevice’] = idx_flag_anniv..’|0|’..flag_anniv}

            ——- FIN DES MODIFS ——————

            Cdt

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

              Re: Correction des lignes Tabl= Tabl:gsub par Tabl= Tabl.gsub. Fichier corrigé joint

               

              Attachments:
              You must be logged in to view attached files.
              0
              0
              Gaby-69
              Participant

                Merci @cdlog2 pour vos réponses.

                Mais si je rétiaire cette demande, c’est que l’utilisateur du future WES ne veut pas plusieurs machines…

                Je suis donc à la recherche d’un système simple (le WES pourrait faire l’affaire, si cette possibilité était intégrée)

                Je vais questionner @Nicolas pour un devis !

                Bonne fin de WE

                Cdt

                 

                0
                0
            Vous lisez 3 fils de discussion
            • Vous devez être connecté pour répondre à ce sujet.