11522 views
 owned this note
Etude Matériel === Etude materiel pour mesure electrique et traitement numerique (API/datalogger/..) Cette documentation décrit les éléments pour l'installation de la [boxénergie sunshare](http://boxenergie.sunshare.fr) du projet de serious game libre (http://lejeu.sunshare.fr) **PAGE prototype** en environnement Nodered sur raspberry : http://demo.sunshare.fr # Objectif Explorer les solutions qui permettent de récupérer sur un raspberry ou sur un serveur externe la mesure de **la production et consommation électrique**, en vue d'une solution utilisable par le **grand public**, pour **moins de 100€** et un abonnement nul ou symbolique. L'exploitation en ligne est envisagée par le bus sémantique. La mesure physique s'effectue au compteur linky (téléinformation client), au tableau électrique (compteur à impulsion) et par l'onduleur (port de communication RS485). L'appel aux contributions est un article disponible ici : http://boxenergie.sunshare.fr ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_ac693406cdcb5b1884ee2764341dbd77.png =500x) Il y a plusieurs équipes travaillant sur le projet de boxenergie sunshare. - L'équipe 1 travaillant sur le shield : [sur github](https://github.com/AIREL46/SCAO/wiki/Shield-SunShare) et [plus bas](https://pad.lamyne.org/s/H1AyUjmI7#t%C3%A2che-2b--shield-%E2%80%9Csunshare%E2%80%9D-pour-raspberry-pi) - L'équipe 2 d'intégration et de visualisation (travaux présentés sur cette page) - L'équipe 3 travaillant sur le registre distribué : https://pad.lamyne.org/s/SJOv1IVlE# - d'autres équipes à constituer selon les avancées du projet (voir http://boxenergie.sunshare.fr) Le systeme à installer pourrait se faire avec un systeme raspbian a télécharger ou livré sur carte SD. Des applications de base de données et de visualisation sont disponibles. Une compatibilité avec appli domotique serait complémentaire avec OEM (open energy monitor), JEEDOM et/ou Domoticz, éventuellement KNX # Périmetre Le comptage électrique s'effectue à partir du compteur ENEDIS. Les solutions à partir de pinces ampèrmétriques (OEM par exemple) ont été écartées car l'index produit sera difficilement rendu vérifiable / contractuel. Un compteur à impulsion peut mesure la production et/ou la consommation totale. Choisir un sous-compteur certifié MID, à installer dans son tableau électrique proche du LINKY ou de l'onduleur. 35€ env. L'onduleur mesure l'énergie produite et dispose d'un port de communication. Les variables nécessaires à la construction du projet sont : - graphique d'énergie : Production (onduleur), Soutirage(LINKY), Injection(LINKY) - plage de tension réseau de la journée - point de consommation (n° PDL et login/localisation) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_c26ad2638ecb1ffddc8d54c8d70b2385.png) Le traitement du signal et la visualisation sont envisagés à partir des logiciels : - Node Red : https://nodered.org/ - Traitement de flux IoT. Nous avons finalement opté pour un traitement local de la donnée avec le dashboard nodered, et un traitement distant avec le cloud OVH qui permet de préfigurer un registre distribué. - postgresql et grafana pour la visualisation sur un serveur privé chez OVH. Un plugin grafana permet de simuler une 3D topographique en [couleur](http://docs.grafana.org/features/panels/heatmap/). ![](http://docs.grafana.org/img/docs/v43/heatmap_histogram_over_time.png =300x) La solution OVH metrics a été abandonnée car complexe à mettre en oeuvre et risquée (non déménageable) [lien](#solutions-de-visualisations-sur-serveur-central-ou-distribu%C3%A9-en-ligne) Une solution locale performante est aussi envisageable avec grafana et influxdb d'après [ce tuto](https://bentek.fr/influxdb-grafana-raspberry-pi/) ou [celui la](https://projetsdiy.fr/tutoriel-influxdb-installation-configuration-macos/). AUTRES SOLUTIONS ABANDONNEES (voir tout en bas) # Connexions ## Passage de cables, électricité Le cablage data (cable téléphonique blindé, 4 brins ou +) suit le cable électrique entre l'onduleur et le tableau général, il peut être posé par défaut à l'installation de l'onduleur facilement. Le compteur à impulsion peut être installé sur le tableau à l'onduleur ou au tableau général. Le compteur linky communique par défaut la TIC en mode HISTORIQUE, sans l'ensemble des paramètres. Pour passer en mode STANDARD, il faut contacter son fournisseur, qui informe ENEDIS (3j de délai chez ENEDIS). Les appareils mentionnés plus haut ne décodent pas le mode STANDARD. **!! très important :** l'absence de **blindage**, les borniers et raccords peuvent créer des interférences qui nuisent au signal TIC, RS85 ou impulsion. Un travail soigné est nécessaire. Branchement du linky : ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_509d40121f6d121073dc747b2a63bf35.png) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_dedae14be55614e55a28225f8566af32.png) Branchement de l'onduleur (port RS485) : ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_a1e9dfa96ceab3678b76a367dbe397f8.png =300x) Raccord du cable téléphonique sur la sortie TIC du linky (2 entrées sans serrage, fil rigide nécessaire, à reconnecter aux paires) - Jaune/Orange et Violet/Marron Raccord du cable téléphonique sur le sous-compteur impulsion - Blanc/Gris et Bleu/Transp Branchements sur les compteurs GCE ecodevice et LEGRAND ecocompteur->switch RJ45 ## Installation des périphériques ### IMPULSIONS en direct sur GPIO Carte du bus raspberry - merci à [ce tuto](https://arduino103.blogspot.com/2014/07/le-gpio-40-broches-du-raspberry-pi-b-et.html) : ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_0267b7eba42de1f0b62bce60db989a27.jpg) Schéma de connexion proposé plus haut, et photomontage : ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_f9850271b8d02346856996f68ab29564.png) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_433d2cfd8d7b1eaac1273bad47875a8a.png =400x) Script python à télécharger et installer : https://github.com/sanderjo/GPIO-counter Commande en console : `$sudo python /home/pi/GPIO-counter.py 24 /var/log/gpio24-counter.log debug` ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_62d1c103b75a360d4ce715f8a973addb.png) ### TIC #### TELEINFO USB de GCE ecodevice Le module GCE TIC->USB est compatible linux, il suffit donc de la brancher. Les drivers sont disponible sur la page FTDI [ftd2XX](https://www.ftdichip.com/Drivers/D2XX.htm) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_4051ef5f2e6fe56d0ee9fd9c96e15465.jpg =250x) Vérifier le branchement du FTDI `$lsusb` `Bus 001 Device 004: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)` Le flux TIC mode STANDARD peut être visualisé avec la commande : $`picocom -b 9200 -d 7 -p e -f n /dev/ttyUSB0` pour le mode HISTORIQUE (ne remonte pas l'index d'injection) : $`picocom -b 1200 -d 7 -p e -f n /dev/ttyUSB0` Quitter picocom avec Ctrl + "-a -q" ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_48c89a5924ac88818a0ce1c45166417e.png) #### PitInfo de CH2I ([charles hallard](http://hallard.me/pitinfov12/)) ![](http://hallard.me/blog/wp-content/uploads/2015/10/pitinfo.jpg =250x) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_0a2c95a0a74d774861b953bfefb5d2a1.png =250x) ```**!!** le PitInfo v2.0 ne décode pas la TIC en mode STANDARD. une résistance doit être modifiée. ``` ##### sur rPi v3, modifier le port serie le port série précédent /dev/ttyAMA0 pointe maintenant par défaut sur le bluetooth. le pointeur /dev/serial0 n'a pas été fonctionnel avec le test picocom. Pour lui réaffecter /dev/ttyAMA0 : '- à la fin de /boot/config.txt, ajouter "dtoverlay=pi3-disable-bt" Puis supprimer : **'console=serial0,115200'** dans /boot/cmdline.txt '- `sudo systemctl disable hciuart` et reboot '- (à tester) à la fin de /boot/config.txt, ajouter "dtoverlay=pi3-miniuart-bt" et "core_freq=250" Pour plus de détails, vous pouvez lire [ch. hallard](https://hallard.me/enable-serial-port-on-raspberry-pi/) et [the rPi's UART's](https://www.raspberrypi.org/documentation/configuration/uart.md) ou [framboise314](https://www.framboise314.fr/le-port-serie-du-raspberry-pi-3-pas-simple/) ou [openenergymonitor](https://openenergymonitor.org/forum-archive/node/12311.html) Cette extension est très prometteuse pour le shield....mais le signal n'est pas propre..... ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_74937bc3f3b81f212d1f20303e1b1fbe.png) Test pas plus concluant sur un raspberry pi B+, avec fils de connexion ou directement sur le GPIO : ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_5e69711beab08610c339d6d361d7ec8a.png =250x) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_950025e5d4bdaf6a6eabe5c557be21c6.png =300x) Rq : Qqn a identifié cette difficulté sur un modul consospy: « On peut voir que l'optocoupleur utilisé est un 6N138 qui ne tire parti que d'une alternance sur 2 du signal d'entrée ». Il propose de repasser le signal de 9600 à 1200 baud…..je ne vois pas l’intérêt, mais ca fonctionne http://morbret.monsite-orange.fr/page-59f35f96b4860.html. On peut peut être trouver un bon optocoupleur…... ### Raccordement de l'onduleur (RS485) Les onduleurs photovoltaiques ont un port de communication. La difficulté est qu'il est généralement non libre et qu'il y a de nombreux standards. Le choix du sous-compteur a impulsion a été fait pour contourner cette difficulté. On veut néanmoins tacher de rendre possible cette connexion à terme. L'onduleur de SunShare est un ABB PVI3.0, il est interrogeable avec auroramon (voir plus loin) #### Tests de connexion sur cartes pas trop chères : - sur gce tic-usb : non compatible selon GCE electronique - sur ch2i pitinfo (à faire) - avec carte RS485/USB (à faire) [ici](http://yourduino.com/sunshop2/index.php?l=product_detail&p=325) ou [ici](https://www.aliexpress.com/store/product/NEW-USB-TO-TTL-RS485-FTDI-Interface-Board-FT232RL-75176-Module-Free-shipping-J179/316387_862635965.html) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_beb19cda2e70fcfae0cbf58714d0adf9.jpg =300x) A compléter ..... voir aussi RS485, modbus, mbus, sunspec, auroramon et autres shields plus loin dans l'article ## Mise en service des logiciels sur raspberry ### Préalable sur les cartes SD La qualité de la carte SD est importante si elle doit être sollicitée par beaucoup d'écritures (base de données). C'est un point de vulnérabilité du raspberry. Une autre forme de mémoire serait un plus. ![](https://projetsdiy.fr/wp-content/uploads/2017/11/classes-10-u1-u3-v6-v90.jpg =300x) Source article [projetDIY](https://projetsdiy.fr/produit/bon-plan-carte-micro-sd-sdxc-64gb-classe-10-raspberry-pi3/) ### Commande à distance du Raspberry Pi Installation des raspberry, modification du hostname, installation de VNC->switch RJ45 La solution VNC par défaut n'est pas satifaisante (connection difficile avec Remmina sous xubuntu), on choisit tightvnc `sudo apt-get install tightvncserver` Et lancer la 1ere fois pour enregistrer le mot de passe : `tightvncserver :1` sans sudo. Refuser le mot de passe en lecture seule (choix 'n'). Pour le démarrage automatique : `sudo nano /etc/rc.local` Ajouter avant exit 0 : `/usr/bin/sudo -u pi tightvncserver :1 ` `sudo raspi-config;` `2 Network Options / N1 Hostname;` `5 Interfacing Options / P2 SSH;` `vncserver:1` `sudo apt-get install picocom` En cas de problème avec le mot de passe : `sudo vncpasswd` Ouverture de baux statiques et des ports sur la box Mise en place de redirection web ### Installation d'un serveur web pour une page de présentation tuto ici : https://raspbian-france.fr/installer-serveur-web-raspberry-lamp/ Installer apache et PHP. $sudo apt-get install apache2 $sudo chown -R pi:www-data /var/www/html/ $sudo chmod -R 770 /var/www/html/ $sudo apt install php php-mbstring $sudo rm /var/www/html/index.html $echo "<?php phpinfo(); ?>" > /var/www/html/index.php ### Node red sur RaspBerry Pi http://hallard.me/pitinfo/ Flow nodered du projet (mis a jour de temps en temps) : https://pad.lamyne.org/s/H19DsBlKm# #### Installer nodered (méthode recommandee) : Mettre a jour nodered sur raspberry pi et installation du menu "manage palette" (plugins) selon les recommandations du site [nodered.org:](https://nodered.org/docs/hardware/raspberrypi) `bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)` Autre méthode (graphique) : Node Red est installable facilement sur raspberry Menu Preferences / Recommended softwares ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_f7145de6e1dff0f23b08f6316599a6fd.png) Installer le menu de plugins de Nodered "Manage Palette" : `sudo apt-get install npm` (nb : pas toujours fonctionnel sur raspberry pi) Lancer node-red au démarrage : `sudo systemctl enable nodered.service` Installer les plugins : il faut utiliser la commande $sudo npm install NOM_DU_MODULE A installer `node-red-contrib-simplejs node-red-dashboard node-red-contrib-counter node-red-contrib-graphs node-red-node-serialport node-red-contrib-serialport-rs485 node-red-contrib-modbus node-red-contrib-serial-modbus node-red-contrib-influxdb node-red-contrib-mongodb node-red-contrib-statistics node-red-node-openweathermap` Autre manière d'installer NodeRed : ` curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash source .nvm/nvm.sh nvm install 8.11.3 npm install -g node-red pm2 start node-red --node-args="--max-old-space-size=64" --no-daemon` !! Sécuriser NODERED, pour éviter la prise de controle par l'exterieur : $ sudo npm install -g node-red-admin $ sudo npm install -g --unsafe-perm node-red $ node-red-admin hash-pw modifier le fichier : /home/pi/.node-red/settings.js {%youtube _cpqvUoR044%} https://www.youtube.com/watch?v=_cpqvUoR044 Node Red est accessible sur http://ip.du.pi:1880 Ci dessous la configuration pour récupérer la TIC avec le node SERIAL ou RS485 !! NB : la TIC sur nodered a saturé la SD du raspberry en une nuit (log du debug). il faut rapidemment désactiver le debug !! NB : Le log de nodered use rapidement les cartes SD d'après http://hallard.me (à approfondir) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_cc4cd8934bb5679b24af7146155059f7.png) Script javascript pour decoder la TIC en mode standard : [driver TIC](https://easydomoticz.com/forum/download/file.php?id=4270) https://easydomoticz.com/forum/viewtopic.php?t=5873&start=10#p49790 Fonctions javascipt avancées avec nodered : https://flows.nodered.org/node/node-red-contrib-simplejs Panneau et graphs avec nodered : https://flows.nodered.org/node/node-red-dashboard Tuto dashborad avec nodered : https://projetsdiy.fr/node-red-dashboard-interface-partie1/ Tuto graphs sur nodered : https://projetsdiy.fr/node-red-dashboard-partie2-afficher-gauges-graphiques-notifications-html/ autres modules : node-red-contrib-serialport-rs485, node-red-contrib-serial-modbus #### versions des flows nodered (à copier-coller su un Rpi) Flow nodered de Janvier 2019 : https://pad.lamyne.org/s/r1vgePdeV# Flox nodered de décembre 2018 : https://pad.lamyne.org/s/H19DsBlKm#` >>// Decodage trames LINKY mode STANDARD - www.sunshare.fr // Objectif script NodeRed // fichier décrivant la TIC Enedis-NOI-CPT_54E // ADSC 12 // DATE 13 // LTARF 16 // EAST 9 Wh // EAIT 9 Wh // URMS1 3 V //PREF 2 kVA // SINSTS 5 VA // PRM 14 // var domaine=url.substring(7,url.indexOf("/",7)); // var reel=parseFloat(chaine); //Déclaration d'un timestamp propre //var dateDiv = document.getElementById('divDate'); [.....]` #### Notes de développement nodered Convertir les chaines en nombres, parsing avec nodered (parseInt(), parseFloat() et autres) : `msg.payload = Math.round(msg.payload.svalue5) msg.payload = Number(msg.payload); return msg;` discussion de groupe [ici](https://groups.google.com/d/msg/node-red/aHUAKo3sruY/Ovbf-noEBAAJ) Variables globales avec Nodered `global.set("foo","bar"); // this is now available to other nodes And can then be read using .get var myfoo = global.get("foo"); // this should now be "bar"` Dates avec nodered : ` var d = new Date(year, month, day, hours, minutes, seconds, milliseconds); ` Executer un programme externe a partir de nodered : https://stackoverflow.com/questions/20643470/execute-a-command-line-binary-with-node-jS Dupliq/ cl objet en javascriptonerue unr ### GRAFANA et InfluxDB sur Raspberry Pi un moteur de dataviz opensource prometteur pour le projet : https://play.grafana.org Articles raspberry + nodered + mqtt + grafana : https://bentek.fr/mosquitto-node-red-raspberry-pi/ https://bentek.fr/influxdb-grafana-raspberry-pi/ ![](https://bentek.fr/wp-content/uploads/2017/11/Architecture_Mosquitto_Node-RED-1024x738.png =250x) Tuto sur projetsDIY influxDB : https://projetsdiy.fr/tutoriel-influxdb-installation-configuration-macos/#Installer_InfluxDB_sur_Raspbian_Stretch_pour_Raspberry_Pi influxDB+nodered : https://projetsdiy.fr/tutoriel-node-red-enregistrer-mesures-dht22-mysensors-influxdb/ Grafana : https://projetsdiy.fr/grafana-graphiques-installation-Upliq-mysensors-influxdb-partie1/ InfluxDB et MQTT selon Framboise314 : https://www.framboise314.fr/utiliser-le-protocole-mqtt-pour-communiquer-des-donnees-entre-2-raspberry-pi/ Incorporer grafana dans une page web : https://grafana.com/docs/reference/sharing/#embed-panel **Installer influxDB :** L'installation est fastidieuse, le tuto ci dessus (bentek) a fonctionné pour moi Valable pour influxDB et GRAFANA. Pour que influxdb se lance au démarrage / redémarrage du Raspberry Pi, tapez : ```javascript sudo systemctl start influxdb sudo systemctl enable influxdb sudo systemctl start grafana-server sudo systemctl enable grafana-server ``` Créer une base influxDB : ```javascript pi@sunhare:~ $ influx -precision rfc3339 // rfc3339 permet d'afficher les dates de maniere lisible Connected to http://localhost:8086 version 1.7.1 InfluxDB shell version: 1.7.1 Enter an InfluxQL query > CREATE DATABASE "bdd" > CREATE RETENTION POLICY "30days" ON "bdd" DURATION 30d REPLICATION 1 //30jours de conservation > CREATE USER "login" WITH PASSWORD "mot_de_passe!" > > SHOW DATABASES > USE "bdd" Using database bdd > SHOW MEASUREMENTS > SELECT * from Inject15 ``` ### Nodered sur Ubuntu Server https://techible.net/installing-node-red-on-ubuntu-18-04-server/ https://techible.net/autostart-node-red-on-ubuntu-server/ ### RS485 / MBUS / MODBUS Le raccord du port RS485 à l'onduleur est présenté en image au §Connexions. Les onduleurs ABB sont compatibles avec l'application partiellement open-source [AURORA](http://auroramonitor.sourceforge.net/) Norme interopérable pour onduleurs photovoltaïques (modbus) : https://sunspec.org/ #### aurora (ligne de commande) Il existe une librairie aurora sous linux en ligne de commande sous [ubuntu](http://manpages.ubuntu.com/manpages/cosmic/man1/aurora.1.html) Développement par [CURTRONICS](http://www.curtronics.com/Solar/AuroraData.html) : ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_6da9cdfddc256e0211a28ce9f078dfce.gif)![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_f8d9e5eabc70fd8aa0e5677e793dbe96.gif) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_bd59b519a7a4b3a910d0f7f4bacca564.gif) Téléchargement sur le site ci dessus. Installation en ligne de commande : `sudo apt-get install libgtk2.8-0 libwxgtk2.8-dev` `cd ./auroramon-1.9.3` `sudo make` `sudo make install` ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_527f9dca989544f1aa9393fa96a9c664.png) #### auroramonitor Il faut commencer par résoudre un problème de librairie identifié sur [sourceforge](https://sourceforge.net/p/auroramonitor/discussion/general/thread/7694bbd2/) et éviter une erreur : `$ ./auroramon` >Fatal Error: Mismatch between the program and library build versions detected. >The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6), >and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 1010,wx containers,compatible with 2.6). >Abandon Solution : Modifier le code dans *auroramon.h* avant le *wx-headerfiles* en ajoutant >_#undef __GXX_ABI_VERSION _#define __GXX_ABI_VERSION 1002 Pour l'installation, suivre ce [Tuto](http://www.monkeysandgorillas.com/index.php/2013/10/24/raspberry-pi-setup-to-monitor-aurora-pvi-5000-solar-inverter-part-3/) ` cd ./auroramon-1.07/src ./auroramon` Et ça marche .... ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_0c11358c232f7306a6a0d2089c7504d1.png) Reste à trouver le port sur lequel est branché l'extension RS485 > ...Can't find serial port /dev/ttyS0 # Tâche 2b : Shield "Sunshare" pour RASPBERRY Pi Cette solution doit être spécifiée plus en détail pour une création électronique. La réflexion a abouti à 1 carte électronique à mettre en place à terme : - Tâche 2b : un shield apposé en extension d'un Raspberry Pi pour la connexion simple des cables de communication (TIC client ENEDIS, impulsion, Modbus sur RS485) - partiellement ou totalement open-source, - ~~Tâche 2a : un concentrateur/sous compteur autonome type GCE Ecodevice après upgrade -non open source mais paramétrable,~~ (cette solution ne supporte pas linky en mode historique) - ~~Tâche 2c : une documentation d'extensions raspberry pi existantes pour faciliter l'installation - 100% open-source~~ Page détaillé de l'équipe 1 travaillant sur le shield : https://github.com/AIREL46/SCAO/wiki/Shield-SunShare Les opérations doivent être limitées pour éviter un processeur qui augmente le cout. Le traitement des données doit être envisagé sur le RASPBERRY. Les signaux à décoder doivent être spécifiés et les types de branchements. Le cryptage de donnée est unInflux enjeu important qui peut nécessiter des ressources et une consommation d'électricité. Le shield doit accueillir sur les broches GPIO : - 1 ou 2 bornier pour la TIC du linky en mode STANDARD - 9600 baud (2 pour des cas particuliers) - 1 à 3 borniers pour compteurs à impulsion - 1 bornier pour la com de l'onduleur en MBUS ou MODBUS sur RS485 L'utilisation du bus GPIO sur raspberry pourrait poser une difficulté de séparation des signaux. Seules les impulsions sont non controlables. On peut contacter LINKY (TIC) et l'onduleur ( RS485) une fois par 5 min pour les index. Le bus GPIO permet d'enregistrer des interrupteurs à imulsion (à approfondir). Logo proposé pour le shield : ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_5d595d2257f742ff30d2436c81ab828c.png =80x) EN OPTION : 1 protection des circuits et une garantie seraient intéressants. 1 solution ultra low-cost avec le raspberry Pi Zéro permettrait d'être encore moins cher. !! NB : la TIC sur nodered a saturé la SD du raspberry en une nuit (log du debug). Il faut être vigilant à stocker peu de données localement. (à évaluer) L'absence de processeur sur le shield limite les coûts et les signaux doivent être transmis au raspberry pour traitement. Inspiration : - Ch2i pitInfo (projet français de Charles Hallard) [ici](http://hallard.me/pitinfov12-light/) - 15€ - carte RS485/USB [ici](http://yourduino.com/sunshop2/index.php?l=product_detail&p=325) ou [ici](https://www.aliexpress.com/store/product/NEW-USB-TO-TTL-RS485-FTDI-Interface-Board-FT232RL-75176-Module-Free-shipping-J179/316387_862635965.html) - Le module GCE TIC->USB est compatible linux, il suffit donc de la brancher. - shield TIC rpidom YADOM [ici](https://yadom.fr/carte-rpidom.html) - 42€ - RASP_RS485 shield raspberry [ici](https://www.planete-domotique.com/extension-port-serie-rs485-pour-raspberry-pi.html) - solution sans fil CARTELECTRONIC : https://www.cartelectronic.fr/home/124-tic-pulses-433mhz.html ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_beb19cda2e70fcfae0cbf58714d0adf9.jpg =300x) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_4051ef5f2e6fe56d0ee9fd9c96e15465.jpg =250x) ![](https://yadom.fr/media/catalog/product/cache/5/thumbnail/600x600/9df78eab33525d08d6e5fb8d27136e95/r/p/rpidom22-2.jpg =150x) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_3d24ff7dc9669850e656901930ae4b6c.jpg) Les solutions les plus simpls observées sont à base d'optocoupleurs pour TIC et RS485 et en direct pour les impusions (voir [§Solution Maison](https://pad.lamyne.org/MYFghgJgHA7AjBAtAZgiJIAMrFQGxRSLABmMmccAnKCAEwRA?view#t%C3%A2che-2c--solution-maison)) Une connexion directe sur le GPIO du Pi est peut être envisageable, il faut alors trouver une solution pour capter toutes les impulsions et se connecter ponctuellement au TIC (linky) et au RS485 (onduleur). # Réflexions pour mémoire (antichronologique) ### Solutions de visualisations et de data #### OVH metrics : grafana et influxDB en ligne *A été abandonné car trop complexe à paramétrer* Une instance de influxDB et GRAFANA existe chez OVH, avec des services spécifiques à l'IoT (internet des objets). Ca pourrait etre beaucoup plus simple a utiliser et à maintenir. https://www.ovh.com/fr/data-platforms/metrics/ https://grafana.metrics.ovh.net/login #### Solutions de visualisations sur serveur central ou distribué (en ligne) La solution OVH metrics a été abandonnée car complexe à mettre en oeuvre et risquée (non déménageable) - InfluxDB et grafana en solution Cloud avec OVH metrics + grafana d'après [ce tutp](https://docs.ovh.com/gb/en/metrics/start-grafana/) Connexion en ligne : https://grafana.metrics.ovh.net/login #### Solutions de visualisations locales sur le raspberry Solutions abandonnées car la solution du dashboard nodered s'est avérée performante et que le cloud d'OVH permet de construire un registre distribué facilement. - Google Charts sur nodered : https://flows.nodered.org/node/node-red-contrib-googlechart - EmonCMS : https://emoncms.org/ - Solution open-source de visualisation de données énergie - Production directe d'une page web avec le graph en intro ~~- Jeedom : https://jeedom.com/ - Suite domotique open-source en français avec communauté active~~ ### TIC et EmonCMS http://hallard.me/teleinfo-emoncms/ Installation des librairies `sudo mkdir /home/pi/hallard/;` `sudo apt-get install git-core libsqlclient-dev libcurl4-openssl-dev mysql-server;` `sudo git clone https://github.com/hallard/teleinfo/` `sudo make` et là erreur.... ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_14245419dc54ec94a6210a70f0c68424.png) ### JEEDOM JEEDOM est un projet open source de domotique orienté vers les particuliers avec la possibilité d'installer facilement des applications à télécharger simplement à partir d'un portail internet ["market"](https://www.jeedom.com/market). Le projet est français et la communauté active. Plusieurs extensions sont déjà disponibles. JEEDOM est un serveur web, accessible par le navigateur internet à l'IP du RASPBERRY Installation de JEEDOM sur Raspberry. Tuto [ici](https://www.domo-blog.fr/installer-jeedom-sur-raspberry-pi-nouvelle-procedure-jeedom-3-0/). Il y a un plugin teleinfo, il ya aussi par exemple un plugin ecodevice ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_1847a66b32f9777f40653ee22373faa2.png) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_eacd47f316a838ec092ea94f575abbfc.png) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_18aadc1a646f9b730ff3577d610100ab.png) La recherche de solutions de communication avec l'onduleur et le compteur à impulsions est en cours...... La recherche de solutions graphiques est en cours...... ### EMONCMS Tutos prometteurs pour créer un fichier local de la TIC et l'exporter sur un serveur avec Node.js et EmonCMS (compatibilité avec Open Energy Monitor) http://play.with.free.fr/index.php/installation-emoncms-sur-serveur-mutualise-ovh/ http://play.with.free.fr/index.php/fhem-module-teleinfo/ Installation : tuto [github emoncms](https://github.com/emoncms/emoncms/blob/master/docs/RaspberryPi/readme.md) Pour les dépendances `sudo apt-get install -y apache2 mariadb-server mysql-client php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-gd php7.0-opcache php7.0-curl php-pear php7.0-dev php7.0-mcrypt php7.0-common redis-server php-redis git build-essential̀` Pecl dependencies (swift mailer): `sudo pear channel-discover pear.swiftmailer.org sudo pecl channel-update pecl.php.net sudo pecl install swift/swift redis` `sudo a2enmod rewrite printf "extension=redis.so" | sudo tee /etc/php/7.0/mods-available/redis.ini 1>&2 sudo phpenmod redis` Paramétrage de apache : Modifier les paramètres "AllowOverride None" en "AllowOverride All" dans le fichier /etc/apache2/apache2.conf (approximativment lignes 161 et 172), redémarrer Apache: `sudo nano /etc/apache2/apache2.conf sudo systemctl restart apache2` `sudo chown pi /var/www cd /var/www git clone -b stable https://github.com/emoncms/emoncms.git` Sécuriser et paramétrer mysql `sudo mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); DELETE FROM mysql.user WHERE User=''; DROP DATABASE IF EXISTS test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'; FLUSH PRIVILEGES;" sudo mysql -e "CREATE DATABASE emoncms DEFAULT CHARACTER SET utf8;" sudo mysql -e "CREATE USER 'emoncms'@'localhost' IDENTIFIED BY 'new_secure_password'; GRANT ALL ON emoncms.* TO 'emoncms'@'localhost'; flush privileges;"` `sudo mkdir /var/lib/{phpfiwa,phpfina,phptimeseries} sudo chown www-data:root /var/lib/{phpfiwa,phpfina,phptimeseries}` Personnaliser les parametres emoncms (y compris le mot de passe) `cd /var/www/emoncms sudo cp default.settings.php settings.php sudo nano settings.php` >$server = "localhost"; $database = "emoncms"; $username = "emoncms"; $password = "mot_de_passe_sécurisé"; et dans le même fichier, activer REDIS >//2 #### Redis $redis_enabled = true; Lien symbolique vers emoncms et droits d'écriture pour les logs `cd /var/www/html && sudo ln -s /var/www/emoncms sudo touch /var/log/emoncms.log && sudo chmod 666 /var/log/emoncms.log` Donner des droits étendus à emoncms `sudo visudo` > _# User privilege specification root ALL=(ALL:ALL) ALL www-data ALL=(ALL) NOPASSWD:/sbin/shutdown ## schéma de principe ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_1750122725149cc6500157beb4a5bdb8.png) "Montage du rack d'essai Sunshare" ## exlusion de l'etude - toute solution qui necessite un montage electronique, soudage ou qui n'est pas prévu pour une armoire electrique. Cette exclusion tient au fait que les futures client/usager des solutions ne sont pas de makers et que cette solution doit pouvoir être déploiyé à grande echelle - toute solution utilisant les ondes pour transmettre les données afin de ne pas se heurter des blocage des personnes electrosensibles, de complications locales (masques) NB : le logement d'extension du LINKY reste cependant une piste intéressante ## contrainte - La solution doit etre compatible LINKY en priorité (installé chez tous les autoconsommateurs PV) nb : linky réglé par défaut en mode HISTORIQUE - il peut etre paramétré sur un mode STANDARD (remontée TIC plus complète) - Tous les composants doivent être founis par l'industrie avec des garanties. - Les solutions doivent être au maximum open source. Les composant intermédiares auxquel il n'est pas vital d'accéder et de maîtriser peuvent ne pas être open-source. Les protocoles de transferts de donnée doivent être des standard internationaux non propriétaire. - Les solutions doivent permettre d'identifer, sur le papier, la comptatibilité avec un rasberry. Ethernet est une solution sur. USB peut être une solution si il est clairement identifié que il existe un driver linux. - Transmission - Impulsion (choisir un sous-compteur certifié MID) - MBus (Meter-Bus) - ModBus RTU (rs232 ou rs485) - Output - TCP - Modbus over TCP aussi appelé ModBus ascii - ftp + csv export (l'equipement pousse le fichier sur le rasberry ou un serveur tiers) - ftp + csv import (le raberry ou un serveur tiers va chercher le fichier) - API HTTP poussée (xml, json,csv....) (l'equipement appel une API sur le rasberry ou un serveur tiers) - API HTTP tirée (xml, json,csv....) (le rasberry ou un serveur tiers va regulièrement récupérer les datas) - application web HTML (necessite de scrapper l'application) - USB + driver linux - Bien que cela soit possible Je pense que cette solution soit à éviter pour rester dans les standards electrique courant comptable avec rasberry et ce standard est ModBus overt TCP ou d'autre solution TCP - Privilégier du materiel européen avec distributeur français voir du materiel français pour la disponibilité des pièces et la maintenance ## périmetre voisin Pour un besoin plus global, une étude à été faite pour récupérer les donnée TIC des compteur français. Celle ci a rapidement été conclue en trouvant un module TIC->USB+driver ## Solutions retenues 3 solutions ont finalement été retenues pour être testées en parallèle vers un raspberry communiquant avec le bus sémantique. 2 compteurs "tout en un" et une solution pour remonter directement de l'onduleur vers le raspberry. ### Tâche 2a : GCE ECO Devices / Open Energy Monitor **ECO-DEVICE** total : 125 € equipement : 90 € compteur à impulsion : 35 € https://www.planete-domotique.com/module-ip-de-suivi-de-consommmation-eco-devices-gce-electronics.html http://intigaia.free.fr/Common/Doc_ECO-DEVICES.pdf Ce module a été conçu "ouvert" d'après son concepteur et stocke les données en XML. Ouput : valeur transmise par ethernet en direct. C'est la meilleur solution pour avoir des données en temps réel. Après discussion avec GCE (Mr BORE), l'appareil nécessite une modification du code source si on souhaite une adaptation au mode STANDARD de linky (pour remonter la tension), ou crypter la donnée. Le mode HISTORIQUE est accessible et permet de remonter les index de consommation. Nous pensons inviter GCE au hackathon et/ou préciser la demande à GCE pour évolution de l'appareil. L'appareil ECO device RT2 est compatible avec LINKY en mode STANDARD, et est probablement plus paramétrable. Il est plus cher et non retenu à ce stade. **OEM** Projet open source à partir de Raspberry Pi et Ardruino. Mesure de courant à partir de pinces ampèrmétriques à faire évoluer vers bornier pour décoder plusieurs trames (TIC, MODBUS, Impulsions) - https://openenergymonitor.org/ ### Tâche 2c : Solution maison **TIC** -> USB (passerelle) : 35€, se branche directement sur le raspberry : http://gce-electronics.com/fr/usb/655-module-teleinfo-usb.html Le signal TIC est proche du signal RS232/485. **TIC en direct sur le raspberry Pi (optocoupleurs)** tuto avec branchement direct de la TIC sur raspberry GPIO sur [magdiblog](http://www.magdiblog.fr/gpio/teleinfo-edf-suivi-conso-de-votre-compteur-electrique/) exemple de montage : https://easydomoticz.com/forum/viewtopic.php?t=5814&start=20#p58893 ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_2a2c8b8c72be397e7b3f6d21ffb3741b.jpg) **RS485** : extension port série RS485 Raspberry [RASP_RS485](https://www.planete-domotique.com/extension-port-serie-rs485-pour-raspberry-pi.html) -19€ Les onduleurs du marché communiquent souvent en RS485-half-duplex, compatible avec le pilote open-source [VCP](http://www.ftdichip.com/Drivers/VCP.htm) Cette solution pourrait s'avérer intéressante en se connectant directement a l'onduleur en RS232/485. Il faudra vérifier si un grand nombre d'onduleurs sont compatibles. **impulsions seules** Solution en direct sur le raspberry pi : https://forums.framboise314.fr/viewtopic.php?f=33&t=202&p=20509&hilit=impulsion+compteur#p20509 Solution sur GPIO clock évoquée ici (message #7) : https://forums.futura-sciences.com/electronique/750668-compteur-dimpulsions.html Autre schéma : https://www.raspberrypi.org/forums/viewtopic.php?p=1103426#p848914 Mesures d'eau sur raspberry "interrupteur" : http://easydomoticz.com/forum/viewtopic.php?t=1737 ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_f9850271b8d02346856996f68ab29564.png) Interrupteur LED sur raspberry : http://blog.idleman.fr/raspberry-pi-06-utiliser-le-gpio-et-interagir-avec-le-monde-reel/ Inspiration avec la carte PiFace : http://www.antor.fr/2014/02/25/domotiser-son-compteur-deau/ Ci dessous d'autres options de secours passerelle RS485 vers USB : 30€https://www.planete-domotique.com/adaptateur-usb-vers-rs485.html GCE TIC->USB- https://www.cartelectronic.fr/teleinfo-compteur-erdf/17-teleinfo-1-compteur-usb-rail-din.html https://www.domotique-store.fr/domotique/usages/mesure-de-consommation-energetique-domotique/mesure-de-consommation-via-teleinfo-edf/425-gce-electronics-interface-teleinformation-usb-pour-compteur-electrique.html passerelle impulsion vers RS485 : 96€ https://www.pce-instruments.com/french/r%C3%A9gulation-et-contr%C3%B4le/module-i-o/pce-instruments-module-d-entr%C3%A9e-%C3%A0-impulsions-pce-sm3-det_2220185.htm?_list=kat&_listpos=1 Voir le tuto inspirant sur [domolio.fr](https://www.domolio.fr/compteur-consomation-deau/) ## Impulsion - 1wire sur USB **impulsions -> 1 Wire** Solution abandonnée car non fonctionnelle (manque 1 composant) JMO : L' écran final est conforme au tuto.... Mais je n'arrive pas a vérifier qu'il y a des mesures. Il est possible que j'ai oublié d'ajouter le composant 1wire pour impulsions DS2423 (https://www.planete-domotique.com/blog/2009/06/20/le-bus-1-wire/).....Solution à abandonner ? peuvent être traitées directement par le RASPBERRY(?) ou au moyen d'une petite carte 1Wire par exemple : https://www.planete-domotique.com/controleur-usb-1-wire-ds9490r-usb-rj11.html Brancher le module 1Wire DS1490 raccordé au compteur à impulsion sur RJ12 : ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_9ce0a0d1f628ecdc44919549437761cc.png) Brancher sur l'usb du RASPBERRY PI et installer le module : `$ lsusb` `Bus 001 Device 005: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob,1-Wire adapter` `$ sudo apt-get install htop vim screen usbutils` `$ sudo apt-get install owserver owfs owhttpd ow-shell` `$ sudo mkdir /mnt/1wire` `$ vi /etc/owfs.conf` **commenter la ligne 16 et décommenter la ligne 19, modifier 32 et 33** > 14# ...and owserver uses the real hardware, by default fake devices 15# This part must be changed on real installation 16#server: FAKE = DS18S20,DS2405 17# 18# USB device: DS9490 19 server: usb = all 20# 21# Serial port: DS9097 22#server: device = /dev/ttyS1 23# 24# owserver tcp address [...] 31######### OWFS ########## 32 mountpoint = /mnt/1wire !!est-ce indispensable ? a l'air instable (JMO) 33 allow_other 34######### OWHTTPD ######### [....] (JMO) ci dessous, est-ce indispensable ? a l'air instable (JMO) `$ sudo owfs -s localhost:4304 -m /mnt/1wire/ --allow_other` Puis on redemarre owserver `$ /etc/init.d/owserver restart` `[ ok ] Restarting owserver (via systemctl): owserver.service.` Dans le navigateur web, consulter owhttp : http://adresseipduraspberry:2121 ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_40bf508394c7b311c0d7f16004e4f685.png) Pour activer le connecteur 1wire : - débrancher le cable COM et lancer : `$ owget /uncached $sudo owfs -s localhost:4304 -m /mnt/1wire` Crée les dossiers du connecteur dans le dossier /mnt/1wire ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_ac4092580f83aa0b5ab79f26058a2d00.png) ## Compteur ultra connecté ### Legrand ECOCOMPTEUR RÉSIDENTIEL - 100 € Compteur à impulsion : 35€ (choisir un sous-compteur certifié MID) total : 135 € https://www.planete-domotique.com/ecocompteur-residentiel-compatible-rt2012-legrand.html Output : Les valeurs semblent uniquement consultable par une interface web. Necessité de srapper la page pour obtenir les valeurs. Cette soluation a été **ABANDONNEE** : compteur peu paramétrable, fin de développement par LEGRAND ### EMU 475 € EMU Professional passerelle TIC -> USB : 35€ total : 510 € http://www.emuag.ch/fr/produits/compteurs-denergie/compteur-denergie-triphase-emu-professional/ ### Schneider 1500 € Schneider METSEPM5320 passerelle TIC -> USB : 35€ total : 1535 € https://www.schneider-electric.fr/fr/product/METSEPM5320/powerlogic---centrale-de-mesure---pm5320---ethernet---m%C3%A9moire---2e-2s ### SOCOMEC compteur : 235 € COUNTIS E17/E18 passerelle TIC -> USB : 35€ total : 270 € https://www.socomec.com/files/live/sites/systemsite/files/SCP/6_gestion_energie/countis/countis_e/545873a_nmo_countis_e17_e18_FR.pdf https://shop-socomec.rs-fr.com/catalogue.php ### Chauvin Arnoux Enerdis ULYS TD80 Ethernet total : 423 € compteur : 388 € passerelle TIC -> USB : 35€ http://www.enerdis.com/fr/produit/ulys-td80-ethernet.html https://fr.rs-online.com/web/p/indicateurs-de-puissance-numeriques/1242453/ ## boitier "tout en un" sans compteur tout en un est un peut usurpé car ces equipements necessitent un compteur à impulsion à brancher sur les entrées prévus à cet effet. Etant donnée que ces equipement gere également la capture du signal TIC du prémètre voisin, et que ce perimètre voisin necessite de capturer d'autres informations que la puissance comme la tension, il est necessaire que ces équipement soit capable d'extraire de leur entrée TIC tous les index et pas seulement la puissance. ### WES total : 175 € equipement : 150 € compteur : 25 € https://www.planete-domotique.com/serveur-de-suivi-d-energie-web-energie-superviseur.html Ouput : valeurs accessible en csv par ftp en pull (le rasberry doit aller chercher les fichers sur l'équipement) ### ECO Devices RT2 total : 275 € equipement : 250 € compteur : 25 € http://gce-electronics.com/wiki/index.php?title=EcoDevice_RT2 https://www.planete-domotique.com/carte-ip-ecodevices-rt2-pour-suivi-de-consommation-et-gestion-d-energie-gce-electronics.html Ouput : valeur transmise par ethernet en direct. C'est la meilleur solution pour avoir des données en temps réel. ### Webdyn TIC https://www.webdyn.com/boitier-tic-webdyntic/ Recommandé par un développeur nantais (QOS energy, la chapelle sur erdre) d'un logiciel de supervision multisystème de pool photovoltaique / éolien et/ou de consommateurs. Ce Datalogger coute plus de 500€ TTC https://www.qosenergy.com/ https://www.webdyn.com/passerelle_photovoltaique_qos_energy/ ## montage electrique plusieurs compsants Pour cette partie plusieurs composants sont assemblés pour répondre au besoin. Les composants sont récpitulés dans ce tableau : https://lite.framacalc.org/Tb5PBBZwzp les chapitres suivants font référence à ce tableau ### Compteur Impulsion -> TCP #### Compteur Impulsion -> ModBus TCP environ 150 € elec->impulsion + impultions->ModBus TCP #### Compteur Impulsion -> data Logger TCP elec->impulsion + impulsions->datalogger TCP ### Compteur ModBus RTU -> TCP ### Compteur ModBus RTU -> ModBus TCP elec->ModBus RTU + ModBus RTU->ModBus TCP ### Compteur ModBus RTU -> data Logger TCP elec->ModBus RTU + ModBus RTU->datalogger TCP ### Compteur MBus -> TCP #### Compteur MBus -> ModBus TCP #### Compteur MBus -> data Logger TCP ### Compteur Impulsqion optique -> TCP #### Compteur Impulsion optique -> ModBus TCP ##### Chauvin Arnoux Enerdis ULYS MD80 + ULYS COM Ethernet total : 470 € compteur : 180 € logger : 255 € passerelle TIC -> USB : 35€ http://www.enerdis.com/fr/produit/compteur-ulys-md-80-a-monophase.html http://www.enerdis.com/fr/produit/module-de-comm-pour-ulys-md-80-tda-80-tta.html https://fr.rs-online.com/web/p/indicateurs-de-puissance-numeriques/1242444/ https://fr.rs-online.com/web/p/accessoires_pour_wattmetre_numerique/1242465/ ### Shields raspberry Il existe un projet approchant (mais entree/sorties seulement) [PIFace](https://www.framboise314.fr/piface-2-la-carte-piface-adaptee-au-raspberry-pi-b/) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_31edba6f9ae31bf3b999a86c08df6786.jpg) ## Archive d'historique de pad Ce sujet détaille le matériel mis à disposition par SunShare pour le projet "autoconsommation collaborative" en partenariat avec Data-Players (voir https://pad.lamyne.org/s/Hkn0mh-UX#)