eesmart-d2l
v1.0.3
Published
[](https://github.com/Zehir/node-red-contrib-eesmart-d2l/blob/main/LICENSE) [
- 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.
