eesmart-d2l
v1.0.3
Published
[![GitHub](https://img.shields.io/github/license/zehir/node-red-contrib-eesmart-d2l)](https://github.com/Zehir/node-red-contrib-eesmart-d2l/blob/main/LICENSE) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/Zehir/node-red-contrib-
Downloads
11
Readme
Node-Red eeSmart D2L
N.B: Because this tool is targeted for french people, the documentation is in french. The Linky are only installed in France.
Noeud pour traduire les données envoyées par le D2L d'eeSmart Linky.
Convertit les données brutes en données lisibles.
Prérequis
- Un compteur Linky.
- Un boitier eeSmart D2L.
- Les clés de communication applicative et IV de votre D2L.
Récupération des clés
Pour récupérer vos clés pour le serveur local il faut envoyer un mail à [email protected] avec ces informations :
- L'identifiant unique de votre D2L (Un nombre écrit en dessous du QR Code)
- Votre preuve d'achat (optionnel ?)
Utilisation
Fonctionnement de base
const D2L = require('eesmart-d2l')
const keys = {
"011601000001": {
key: "12341234123412341234123412341234",
iv: "fc91837fa2bdba1f9fe985452fdb925e"
}
}
let d2l = new D2L();
// Données envoyés par le D2L.
let dataBuffer = Buffer.from("03003000413679B30200000001000000689FC5F6E110E64D14FAF81EEE156C55B4F26EB04C1DD59D91306745D0E00CC4", 'hex')
// Décoder uniquement les valeurs non cryptés
d2l.parseRequest(dataBuffer, true)
if (keys[d2l.headers.idD2L] !== undefined) {
d2l.setKeys(keys[d2l.headers.idD2L].key, keys[d2l.headers.idD2L].iv)
} else {
console.log("Clés non trouvés")
return;
}
// On décode tout
d2l.parseRequest(dataBuffer)
switch (d2l.getPayloadType()) {
case 'PUSH_JSON':
let format = "default" // Peut être default ou raw_array.
console.log(d2l.getPayload(format)) // Données utiles.
// Dans tous les cas il faut renvoyer l'horloge alors on ne 'break' pas.
case 'GET_HORLOGE':
// Données à renvoyer au D2L, cela contient l'heure actuelle.
// Attention il faut renvoyer les données dans la même connexion qui vous as permis de recevoir les données envoyées par le D2L.
console.log(d2l.getResponse().toString('base64'))
break;
case 'UPDATE_REQUEST':
d2l.getFrimwareUpdatePromise().then(value => {
// Données à renvoyer au D2L pour la mise à jour logicielle.
console.log(Buffer.from(value.toString(), 'base64'))
})
break;
}
Références
- Documentation Enedis - description complète des données envoyés par le Linky via le D2L.
- Notice d'installation D2L - comment configurer votre D2L.
- Discord - vous pouvez nous rejoindre sur discord.