Code Monkey home page Code Monkey logo

node-linky's Introduction

A simple node to connect to a ENEDIS (French electrical distribution network) account to fetch your own energy consumption provided by the Linky smart meter and use it as you wish...


Module (node) Node-Red permettant de récupérer sur le site ENEDIS vos données de consommation électrique collectées par le compteur Linky.


★ Installation

  1. Télécharger, extraire puis copier le repertoire Linky dans le dossier \node_modules\ concerné par votre éditeur NODE-RED.

  2. Relancez et/ou actualisez l'onglet de votre explorateur.


★ Compte ENEDIS

Afin de pouvoir collecter vos données de consommation issues de votre fournisseur d'éléctricité, il convient de :

Créer un compte

  • Suivez la procédure : "Création de mon compte".

    Aprés avoir renseigné vos données personnelles, vous recevrez soit un lien pour activer votre compte immédiatement, soit un mot de passe par courrier...

  • Suivez le lien qui vous a été communiqué et saisissez vos identifiants et mot de passe dans le formulaire.

    Comptez environ 3 à 4 semaines aprés l'installation de votre compteur Linky avant d'avoir vos données accessibles en ligne... 😯

Activer votre compte

  • Connectez-vous sur votre "Espace client".

    Activez votre courbe de charge (l'accord pour la collecte de vos données de consommation électrique toutes les 1/2 heures) si vous le souhaitez.

    Onglet "Consommation" ➜ "Gérer ma courbe de charge" ➜ "Activer ma courbe de charge"

    Si la courbe de charge n'est pas activée (désactivable à tout moment), le module Linky ne pourra vous transmettre les demandes de données "Journalières", mais les autres demandes seront considérées.


★ Configuration du module

  • Double-cliquez sur le node pour en ouvrir l'éditeur des propriétés...

  • Renseigner les champs correspondants à vos codes utilisés sur le site ENEDIS.

    Username ➜ Adresse e-mail.

    Password ➜ Mot de passe.

    Pour assurer la confidentialité, les champs ci-dessus possédent la propriété NODE-RED credentials.

    • Stockage de leur valeurs hors du fichier principal du "flow".
    • Ne sont pas inclus en cas d'exportation des "flows" en dehors de l'éditeur.

★ Fonctionnement

Inputs

En entrée, le module demande uniquement et simplement un message comprenant les dates de début et de fin du relevé de consommation que vous souhaitez obtenir en retour.

Format du message msg en entrée

msg {
    "topic" : "linky",
    "payload" : {
        "debut": "JJ-MM-AAAA",
        "fin": "JJ-MM-AAAA"
    }
}

msg.topic {string} (facultatif)

  • Valeur ➜ "linky" permettant éventuellement de publier sur un topic ou de tester la validité du message.

msg.payload {JSON}

  • msg.payload.debut {date} ➜ Date de début du relevé demandé.
  • msg.payload.fin {date} ➜ Date de fin du relevé demandé.

Formats {date} acceptés = "JJ-MM-AAAA" ou "JJ/MM/AAAA"

Outputs

Aprés l'envoi de la requète sur le site ENEDIS, le module retourne le message d'entrée surchargé des données demandées.

Format du message msg en sortie

msg {
    "topic": "linky",
    "payload": {
        "..." : {"..."},
        "linky": {"your_JSON_datas"}
    }
}

msg.topic {string}

  • Ajout systématique de la propriété topic
  • Valeur ➜ "linky"

msg.payload {object}

  • Conservation des données présentes en entrée.

msg.payload.linky {JSON}

  • Ajout de la propriété linky
  • Valeur ➜ Objet représentant les valeurs demandées.

★ Utilisation

ENEDIS propose 4 possibilités de consultation de vos données listées sur la page dédiée au "suivi de consommation".

  • Par heure
    • Toutes les 1/2h durant 24 heures et par jour calendaire.
  • Par jour
    • Entre 2 dates séparées de 1 à 31 jours maxi.
  • Par mois
    • Compris entre 2 et 12 mois.
  • Par an
    • Indisponible car moins d'un an d'installation.

Le module selectionnera la requête adaptée aux dates que vous aurez passées et de ce fait minimise les risques d'erreurs.

  • Exemples de requêtes

    Date début Date Fin Requête Remarques Payload
    01-01-2018 01-01-2018 Par heure Dates identiques {"debut": "01-01-2018, "fin": "01-01-2018"}
    10-02-2018 11-02-2018 Par jour Durée = 1 jour {"debut": "10-02-2018, "fin": "11-02-2018"}
    05-03-2018 04-04-2018 Par Jour Durée = 31 jours {"debut": "05-03-2018, "fin": "04-04-2018"}
    05-03-2018 05-04-2018 Par mois Durée > 31 jours {"debut": "05-03-2018, "fin": "05-03-2018"}
    10-10-2017 20-03-2018 Par mois D'octobre à mars {"debut": "10-10-2018, "fin": "20-03-2018"}
    01-02-2017 28-02-2018 Par mois Durée 12 mois {"debut": "01-02-2017, "fin": "28-02-2018"}

★ Format de fichier

Le fichier retourné par ENEDIS est au format {JSON} et est ajouté au payload en sortie du module dans la propriété "linky".

  • Objet msg.payload
// Fichier suivant requête "par jour" 
// Données collectées toutes les 1/2h = 48 valeurs en retour
payload {
    {
        debut : "JJ/MM/AAAA",
        fin : "JJ/MM/AAAA"
    },
    linky {
        etat {
            "valeur": "temine"
        },
        graphe {
            "decalage": 0,
            "puissanceSouscrite": 12
        },
        periode {
            "dateFin": "JJ/MM/AAAA",
            "dateDebut": "JJ/MM/AAAA"
        },
        data [
            {"valeur": 9.999,"ordre": 1},
            {"valeur": 9.999,"ordre": 2},
            {"valeur": "...","ordre":'n'},
            {"valeur": 9.999,"ordre": 48}
        ]
    }
}
  • Des exemples commentés sont disponibles ici

★ Compatibilité

Le module assure le pass-trough des {msg} entrant en les surchargeants des valeurs demandées.

  • Il peut donc s'intégrer facilement dans des frameworks comme SARAH V5

★ Restrictions

Le site ENEDIS est une vraie catastrophe en termes de disponibilté et de service...


★ License

Logiciel libre sous licence MIT

node-linky's People

Contributors

philbri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

node-linky's Issues

Non-documented prerequisites

Hi,
Thanks for all this work.
For a quicker onboarding, you could specify the non-trivially installed dependancies. I had to dig through logs (error message was too short)to see that I missed two of them :

  • Superagent
  • moment.js
    On a Debian Stretch fresh installation of node and npm.

message d'erreur lors de l'utilisation

Bonjour,
Lorsque j'essaie d'utilser votre code j'ai les message suivant:
"Getting cookie error: TypeError: Cannot read property '0' of undefined" lorsque je deploie et
Error : unable to Logged-in ! lorsque j'essaie d'interagir avec le node.J'utilise les memes codes que pour me connecter au site d'enedis , sans soucis. J'ai le cpt linky depuis Aout.
Pouvez vous m'orienter
merci
Nico

Module don't work

Hi,

Seems that login don't work and return incorrect cookies (invalid cookie header), by the way cookie data is not used for the getData call but should be.

Thanks for help

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.