{"id":2435,"date":"2013-12-06T00:43:41","date_gmt":"2013-12-05T23:43:41","guid":{"rendered":"http:\/\/play.with.free.fr\/?p=2435"},"modified":"2021-07-02T19:25:43","modified_gmt":"2021-07-02T18:25:43","slug":"fhem-module-teleinfo","status":"publish","type":"post","link":"http:\/\/play.with.free.fr\/index.php\/fhem-module-teleinfo\/","title":{"rendered":"FHEM : module TELEINFO de lecture de compteur ERDF"},"content":{"rendered":"<p><a href=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/fhem.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2042 alignright\" title=\"fhem\" src=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/fhem.png\" alt=\"\" width=\"120\" height=\"132\" \/><\/a><a href=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/compteur-EDF-ancien.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1937 alignleft\" title=\"compteur EDF ancien\" src=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/compteur-EDF-ancien.jpg\" alt=\"\" width=\"136\" height=\"116\" \/><\/a>Le logiciel libre <a title=\"FHEM\" href=\"http:\/\/fhem.de\" target=\"_blank\" rel=\"noopener\">FHEM<\/a> est actuellement le moteur de <a title=\"Ce que je fais avec FHEM\" href=\"http:\/\/play.with.free.fr\/index.php\/tag\/fhem\/\" target=\"_blank\" rel=\"noopener\">mes exp\u00e9riences domotiques<\/a>, sur lequel j&rsquo;int\u00e8gre progressivement de nouvelles fonctionnalit\u00e9s. Sauf, jusqu&rsquo;\u00e0 pr\u00e9sent, le suivi de mes compteurs \u00e9lectriques (dans un <a href=\"http:\/\/play.with.free.fr\/index.php\/suivi-de-consommation-electrique-avec-telinfuse-et-openenergymonitor\/\">premier article<\/a>, j&rsquo;ai d\u00e9crit comment j&rsquo;utilise le programme Linux\u00a0 <a title=\"Syst\u00e8me de fichier pour acc\u00e9der au compteur \u00e9lectrique\" href=\"http:\/\/code.google.com\/p\/teleinfuse\/\" target=\"_blank\" rel=\"noopener\">teleinfuse<\/a> et <a title=\"emoncms\" href=\"http:\/\/openenergymonitor.org\/emon\/emoncms\" target=\"_blank\" rel=\"noopener\">emoncms<\/a> pour exploiter les informations d&rsquo;un compteur \u00e9lectrique ERDF \u00e9quip\u00e9 d&rsquo;une interface <a title=\"T\u00e9l\u00e9info\" href=\"http:\/\/www.planete-domotique.com\/blog\/2010\/03\/30\/la-teleinformation-edf\/\" target=\"_blank\" rel=\"noopener\">t\u00e9leinfo<\/a> pour \u00e9tablir des tableaux de bord sympathiques sur le site <a href=\"http:\/\/www.emoncms.org\" target=\"_blank\" rel=\"noopener\">www.emoncms.org<\/a>, et dans un <a href=\"http:\/\/play.with.free.fr\/index.php\/installation-emoncms-sur-serveur-mutualise-ovh\/\">un deuxi\u00e8me<\/a> comment l&rsquo;auto-h\u00e9berger sur OVH.)<\/p>\n<p>Je souhaitais pouvoir exploiter les informations de ces compteurs sous FHEM. Par exemple :<\/p>\n<ul>\n<li>pour me rappeler en sortant de chez moi que j&rsquo;ai oubli\u00e9 d&rsquo;\u00e9teindre la lumi\u00e8re quelque part, ce qui est malheureusement un classique &#8230;<\/li>\n<li>faire des simulations de co\u00fbts avec un autre type d&rsquo;abonnement, en reprogrammant le sous-compteur qui est \u00e0 ma main pour pouvoir exploiter les informations de p\u00e9riode tarifaire &#8230;<\/li>\n<\/ul>\n<p>J&rsquo;ai donc \u00e9crit un petit module FHEM (32_TELEINFO.pm) qui va me permettre d&rsquo;exploiter ces infos, en adaptant le code de deux autres modules : 15_CUL_EM.pm g\u00e8re des compteurs d&rsquo;impulsion et 32_SYSSTAT.pm lit les stats Linux&#8230; : merci \u00e0 leurs auteurs respectifs rudolfkoenig et justme1968.<\/p>\n<h2>Principe<\/h2>\n<p>Le module va utiliser le syst\u00e8me <a href=\"http:\/\/play.with.free.fr\/index.php\/suivi-de-consommation-electrique-avec-telinfuse-et-openenergymonitor\/#teleinfuse_accs_aux_infos_tlinfo_en_mode_fichier\">teleinfuse d&rsquo;acc\u00e8s aux infos t\u00e9l\u00e9info en mode fichier<\/a>. \u00c7a permet de simplifier l&rsquo;\u00e9criture du module qui va lire p\u00e9riodiquement les valeurs de compteurs dans des fichiers, plut\u00f4t que de devoir se mettre \u00e0 l&rsquo;\u00e9coute d&rsquo;un port s\u00e9rie. Par ailleurs, je peux de cette mani\u00e8re continuer \u00e0 utiliser les scripts d&rsquo;alimentation d&rsquo; emoncms d\u00e9j\u00e0 \u00e9crits, en attendant de le faire via FHEM &#8230;<\/p>\n<h2>Installation<\/h2>\n<p>Le fichier <a href=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/32_TELEINFO.pm_.txt\">32_TELEINFO.pm<\/a> doit \u00eatre copi\u00e9 dans \/opt\/fhem\/FHEM.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/32_TELEINFO.pm_.txt\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-2532\" title=\"telecharger\" src=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/telecharger-300x193.jpg\" alt=\"\" width=\"300\" height=\"193\" \/><\/a><\/p>\n<h2 style=\"text-align: left;\">Utilisation<\/h2>\n<h3>Pr\u00e9alable<\/h3>\n<p>Le module utilisant les infos r\u00e9colt\u00e9es par teleinfuse, il faut lancer teleinfuse avant FHEM :<\/p>\n<pre># teleinfuse \/dev\/ttyUSB0 \/mnt\/teleinfo-maison -o allow_other<\/pre>\n<p>Cette commande permet de monter dans le r\u00e9pertoire \/mnt\/teleinfo-maison un syst\u00e8me de fichier Fuse qui contient les infos relatives aux diff\u00e9rentes informations du compteur.<\/p>\n<h3>D\u00e9finition du compteur dans FHEM<\/h3>\n<p>La d\u00e9finition de compteur la plus simple permet r\u00e9aliser un polling toutes les 60 s des valeurs t\u00e9l\u00e9info :<\/p>\n<p>\/opt\/fhem\/fhem.cfg :<br \/>\n<code>define teleinfo_maison TELEINFO \/mnt\/teleinfo-maison<\/code><\/p>\n<p>Il est possible de limiter la fr\u00e9quence de polling \u00e0 laquelle on interroge teleinfuse pour r\u00e9cup\u00e9rer les informations . Par exemple, pour le faire toutes les 5 mn :<\/p>\n<p><code>define teleinfo_maison TELEINFO \/mnt\/teleinfo-maison<\/code> 300<\/p>\n<p>Si on veut r\u00e9cup\u00e9rer les valeurs de consommation en esp\u00e8ces sonnantes et tr\u00e9buchantes il faut pr\u00e9ciser les valeurs de co\u00fbt (en euros) de son fournisseur. Par exemple pour un abonnement EDF tarif bleu option base, avec un compteur de 45A (\u00e0 l&rsquo;heure o\u00f9 j&rsquo;\u00e9cris : 13,29 c\/kWh et 14,29 \u20ac d&rsquo;abonnement par mois) :<br \/>\n<code>attr teleinfo_maison cost-BASE 0.1329<br \/>\nattr teleinfo_maison basicFeePerMonth 14.29<\/code><\/p>\n<h3><a href=\"http:\/\/www.erdfdistribution.fr\/medias\/DTR_Racc_Comptage\/ERDF-NOI-CPT_02E.pdf\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-2472 alignright\" title=\"Donn\u00e9es T\u00e9l\u00e9info en monophas\u00e9\" src=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/T\u00e9l\u00e9info_donn\u00e9es.png\" alt=\"\" width=\"428\" height=\"428\" srcset=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/T\u00e9l\u00e9info_donn\u00e9es.png 428w, http:\/\/play.with.free.fr\/wp-content\/uploads\/T\u00e9l\u00e9info_donn\u00e9es-300x300.png 300w, http:\/\/play.with.free.fr\/wp-content\/uploads\/T\u00e9l\u00e9info_donn\u00e9es-150x150.png 150w, http:\/\/play.with.free.fr\/wp-content\/uploads\/T\u00e9l\u00e9info_donn\u00e9es-50x50.png 50w, http:\/\/play.with.free.fr\/wp-content\/uploads\/T\u00e9l\u00e9info_donn\u00e9es-175x175.png 175w\" sizes=\"(max-width: 428px) 100vw, 428px\" \/><\/a>Initialisation et cas d&rsquo;erreur possibles<\/h3>\n<ul>\n<li>Si le montage teleinfuse n&rsquo;est pas effectif au d\u00e9marrage, le device FHEM TELEINFO n&rsquo;est pas cr\u00e9\u00e9. Les erreurs sont affich\u00e9es dans la log FHEM.<\/li>\n<li>S&rsquo;il y a une erreur teleinfuse (ex: mauvaise liaison s\u00e9rie) \u00e0 l&rsquo;initialisation ou en fonctionnement, la valeur de \u00ab\u00a0state\u00a0\u00bb donne l&rsquo;erreur.<\/li>\n<li>L&rsquo;ensemble des valeurs t\u00e9l\u00e9info est remont\u00e9e, si le statut est \u00ab\u00a0online\u00a0\u00bb<\/li>\n<\/ul>\n<h3>En r\u00e9gime de croisi\u00e8re<\/h3>\n<h4>Valeurs t\u00e9leinfo<\/h4>\n<p>Un \u00e9v\u00e9nement est g\u00e9n\u00e9r\u00e9 pour chacune des valeurs d&rsquo;information de compteur (voir le tableau ci-joint tir\u00e9 du paragraphe 2.3 du <a title=\"Sorties de t\u00e9l\u00e9-information client des appareils de comptage \u00e9lectroniques utilis\u00e9s par ERDF (PDF \u2013 Version 4 \u2013 01\/07\/2010)\" href=\"http:\/\/www.erdfdistribution.fr\/medias\/DTR_Racc_Comptage\/ERDF-NOI-CPT_02E.pdf\" target=\"_blank\" rel=\"noopener\">document de r\u00e9f\u00e9rence ERDF<\/a>) Sauf pour l&rsquo;\u00e9v\u00e9nement ADPS qui n&rsquo;est \u00e9mis une fois que lorsque la puissance consomm\u00e9e d\u00e9passe la puissance souscrite. Seule diff\u00e9rence par rapport au tableau, les index sont exprim\u00e9s en kWh (avec\u00a0 3 d\u00e9cimales) et pas en Wh.<\/p>\n<p>De nombreuses valeurs sont statiques -adresse du compteur-\u00a0 ou ne changent que lors d&rsquo;une reconfiguration du compteur -options tarifaire, intensit\u00e9 souscrite etc.-. Il est possible de limiter le nombre d&rsquo;\u00e9v\u00e9nements r\u00e9p\u00e9titifs avec\u00a0 les <a href=\"http:\/\/fhem.de\/commandref.html#event-on-change-reading\" target=\"_blank\" rel=\"noopener\">attributs event-on-change-reading et event-on-update-reading<\/a> . Par exemple, si on ne veut remonter que les valeurs d&rsquo;intensit\u00e9 et de puissance instantan\u00e9e \u00e0 chaque polling, et ne g\u00e9n\u00e9rer un \u00e9v\u00e9nement pour les autres indicateurs que lorsqu&rsquo;ils change :<br \/>\n<code><br \/>\nattr teleinfo_maison event-on-change-reading .*<br \/>\nattr teleinfo_maison event-on-update-reading IINST,PAPP<\/code><\/p>\n<h4>Valeurs calcul\u00e9es<\/h4>\n<p>A chaque polling des valeurs t\u00e9l\u00e9info, on calcule<\/p>\n<ul>\n<li>la puissance moyenne sur la p\u00e9riode (P_avg_&lt;polling&gt;)<\/li>\n<li>l&rsquo;\u00e9nergie consomm\u00e9e sur la p\u00e9riode (&lt;index&gt;_cum_&lt;polling&gt;)<\/li>\n<\/ul>\n<p>Chaque d\u00e9but de journ\u00e9e sont calcul\u00e9es :<\/p>\n<ul>\n<li>les informations de consommation du jour pr\u00e9c\u00e9dent en kWh (&lt;index&gt;_cum_day) et en euros (&lt;index&gt;_cost_day)<\/li>\n<li>la valeur de compteur en d\u00e9but de journ\u00e9e\u00a0 (&lt;index&gt;_cost_day) :<\/li>\n<\/ul>\n<pre>2013-12-05_00:00:45 teleinfo_maison BASE_cum_day: 11.475\r\n2013-12-05_00:00:45 teleinfo_maison BASE_start_day: 17765.302\r\n2013-12-05_00:00:45 teleinfo_maison BASE_cost_day: 1.525<\/pre>\n<p>Idem en chaque d\u00e9but de mois pour les valeurs mensuelles.<\/p>\n<h4>Affichage dans FHEM<\/h4>\n<p>On peut rendre l&rsquo;affichage plus sympa en ajoutant une icone :<\/p>\n<pre><a>attr\u00a0<code>teleinfo_maison <\/code> icon<\/a> measure_power_meter<\/pre>\n<p>De base, c&rsquo;est le statut du dispositif teleinfo qui est affich\u00e9 ( &lsquo;online&rsquo; si tout va bien&#8230;). Si on pr\u00e9f\u00e8re afficher les valeurs d&rsquo;intensit\u00e9 et de puissance apparente, on peut ajouter la ligne suivante (pour du monophas\u00e9 en abonnement EDF de base) :<br \/>\n<code>attr teleinfo_maison stateFormat P: P_avg_60s W jour: BASE_cum_day kWh \/ BASE_cost_day \u20ac<\/code><\/p>\n<p><a href=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2539\" title=\"FHEM_teleinfo\" src=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo.png\" alt=\"\" width=\"722\" height=\"77\" srcset=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo.png 722w, http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo-300x32.png 300w, http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo-500x53.png 500w, http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo-270x29.png 270w\" sizes=\"(max-width: 722px) 100vw, 722px\" \/><\/a><\/p>\n<h3>Logs et graphes<\/h3>\n<p>Installer <a href=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/teleinfo.gplot_.txt\">teleinfo.gplot<\/a> dans \/opt\/fhem\/www\/gplot<\/p>\n<p>Par exemple, pour loguer les \u00e9v\u00e9nements sous forme de fichier texte et afficher la puissance moyenne<\/p>\n<pre>define FileLog_teleinfo_maison FileLog .\/log\/teleinfo_maison-%Y-%m.log teleinfo_maison\r\nattr FileLog_teleinfo_maison logtype text,teleinfo\r\ndefine weblink_teleinfo_maison SVG FileLog_teleinfo_maison:teleinfo:CURRENT\r\nattr weblink_teleinfo_maison alias \"Consommation electrique\"<\/pre>\n<h3><a href=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo_puissance.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2535\" title=\"FHEM_teleinfo_puissance\" src=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo_puissance.png\" alt=\"\" width=\"732\" height=\"173\" srcset=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo_puissance.png 732w, http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo_puissance-300x71.png 300w, http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo_puissance-500x118.png 500w, http:\/\/play.with.free.fr\/wp-content\/uploads\/FHEM_teleinfo_puissance-270x64.png 270w\" sizes=\"(max-width: 732px) 100vw, 732px\" \/><\/a><\/h3>\n<h2>Remarque<\/h2>\n<p>C&rsquo;est une premi\u00e8re version qui fonctionne dans mon environnement (abonnement de base monophas\u00e9) et qui devrait fonctionner avec d&rsquo;autres types d&rsquo;abonnements (y compris triphas\u00e9). Merci de me remonter les bugs (et les corriger si possible!) si vous l&rsquo;utilisez &#8230;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" loading=\"lazy\" class=\"alignleft  wp-image-2042\" style=\"border: 0px currentColor; margin-right: 5px; margin-left: 5px;\" title=\"fhem\" src=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/fhem.png\" alt=\"\" height=\"66\" width=\"60\"> <img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-1937\" title=\"compteur EDF ancien\" src=\"http:\/\/play.with.free.fr\/wp-content\/uploads\/compteur-EDF-ancien.jpg\" alt=\"\" width=\"68\" height=\"58\" \/>Relev\u00e9 des informations de consommation \u00e9lectrique d&rsquo;un compteur ERDF t\u00e9l\u00e9info dans FHEM, logiciel libre de domotique.<\/p>\n","protected":false},"author":2,"featured_media":1937,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_vp_format_video_url":"","_vp_image_focal_point":[]},"categories":[110,38],"tags":[136,121,111],"_links":{"self":[{"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/posts\/2435"}],"collection":[{"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/comments?post=2435"}],"version-history":[{"count":0,"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/posts\/2435\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/media\/1937"}],"wp:attachment":[{"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/media?parent=2435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/categories?post=2435"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/play.with.free.fr\/index.php\/wp-json\/wp\/v2\/tags?post=2435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}