MySensors Linky – Programmation & Réglages

Programmation de l’Arduino

Pour réaliser la programmation de l’Arduino Pro mini qui est dépourvu de port USB, tu auras besoin d’un module FDTI USB 3.3v pour le téléversement du firmware. Il est possible d’en trouver sur Amazon ou Aliexpress.

Ce modèle d’interface FDTI a un cavalier permettant de choisir la tension de sortie 5v ou 3,3v. Dans notre cas il faut se mettre sur la position 3,3v sinon adieu petit Arduino…

Ensuite le positionner le connecteur 6 broches sur l’arduino comme indiqué sur cette image.

Etapes pour la programmation de l’arduino :

  • Télécharge et installe l’IDE Arduino
  • Télécharge les sources du firmware 1.0.x sur Github (version TIC historique), version 1.1.x pour la version TIC standard
  • Positionne le module FTDI sur l’arduino et branche le câble USB sur le PC/MAC
  • Dans le logiciel Arduino,
    1. va dans Outils -> type de carte et sélectionne « Arduino Pro »
    2. puis dans Outils -> Processeur et sélectionne « ATmega328P (3.3v, 8Mhz) »
    3. sélectionne le bon port par le menu Outils -> Port
  • Téléverse le firmware en appuyant sur

Après cette programmation, tu peux mettre l’ensemble des PCB dans le boîtier et le fermer. Pour le capot il faudra un petit de patience afin d’insérer le NRF dans la petite fente.

Tu brancheras le module dans le compteur Linky juste après la demande d’inclusion sous Jeedom.

L’attribution de l’ID du node est par défaut réalisée par la gateway mais il est possible de le forcer via la ligne « #define MY_NODE_ID » dans le fichier TeleinfoMySensors.ino. Par exemple, pour forcer l’ID à 2 il faut simplement mettre la ligne « #define MY_NODE_ID 2« 

Le module envoie les informations en deux slaves, une toutes les 5 secondes regroupant toutes des données de consommation et l’autre toutes les minutes pour les données de référence du compteur. Il est possible de modifier ces valeurs via les variables SEND_FREQUENCY_CONSO et SEND_FREQUENCY_INFO.

uint32_t SEND_FREQUENCY_CONSO = 5000; // Minimum time between send (in milliseconds).
uint32_t SEND_FREQUENCY_INFO = 60000; // Minimum time between send (in milliseconds).

Vérification possible

J’ai réalisé quelques mesures sur la carte interface avec un multimètre si vous avez besoin de faire quelques vérifications. Attention ce n’est que des valeurs indicatives et surtout pour la sortie I1-I2 qui est en 50kHz.

  • – 1 – Sortie téléinfo I1-I2, en mode alternatif : variation entre 0 et 4,5 volts
  • – 2 – Sortie optocoupleur, en mode continu : variation entre 0,8 et 1,1 volts
  • – 3 – Sortie mosfet, en mode continu : variation entre 1,8 et 2,4 volts
  • – 4 – Sortie alimentation, en mode continu : 5 volts

Réglages possibles

Dans le code principal est il possible de régler :

  • la puissance d’émission du module NRF24L01 via la ligne #define MY_RF24_PA_LEVEL
    • #define MY_RF24_PA_LEVEL RF24_PA_LOW : réglage pas défaut
    • #define MY_RF24_PA_LEVEL RF24_PA_HIGH : plus de puissance mais la consommation sera plus grande; pas de garantie sur la stabilité du module via à vis de la puissance fournie par l’alimentation du compteur Linky
  • la canal d’émission utilisé via la ligne #define MY_RF24_CHANNEL
    • #define MY_RF24_CHANNEL X : X de 1 à 14 suivant l’occupation du wifi dans ton logement. Attention cette ligne doit être identique sur toute la chaîne de liaison Mysensors (Gateway, autres modules et capteurs Mysensors)

Réglages avec plugin Mysensors sur Jeedom

Pour rappel, le programme en version V1.0.x du module permet de remonter les informations des compteurs Linky monophasé mode historique sous cette forme :

  • CHILD_ID_ADCO 0
  • CHILD_ID_OPTARIF 1
  • CHILD_ID_ISOUSC 2
  • CHILD_ID_BASE 3
  • CHILD_ID_HCHC 4
  • CHILD_ID_HCHP 5
  • CHILD_ID_EJP_HN 6
  • CHILD_ID_EJP_HPM 7
  • CHILD_ID_BBR_HC_JB 8
  • CHILD_ID_BBR_HP_JB 9
  • CHILD_ID_BBR_HC_JW 10
  • CHILD_ID_BBR_HP_JW 11
  • CHILD_ID_BBR_HC_JR 12
  • CHILD_ID_BBR_HP_JR 13
  • CHILD_ID_PEJP 14
  • CHILD_ID_PTEC 15
  • CHILD_ID_DEMAIN 16
  • CHILD_ID_IINST 17
  • CHILD_ID_PAPP 18
  • CHILD_ID_ADPS 19
  • CHILD_ID_IMAX 20
  • CHILD_ID_HHPHC 21

Lors de l’inclusion sous Jeedom tu vas retrouver l’ensemble des informations sous forme de commandes avec l’id. Pour ADCO, l’id sera « 0 » par exemple. Le plugin MySensors permet de reconnaître automatiquement le module et la liste des infos mais sans les libellés et les unités. A toi de les renseigner manuellement sous Jeedom

Plus d’informations sont disponibles sur le site MySensors-Jeedom

Pour les compteurs triphasés, il faudra modifier le fichier TeleinfoMySensors.ino afin de récupérer les bonnes valeurs. C’est à dire au niveau de la structure teleinfo_s, les CHILD_ID, la fonction presentation() et la fonction send_teleinfo(). Voici la liste des informations disponibles :

Réglages avec plugin Mysensors sur Domoticz, Node-Red et autres :