eesmart-d2l

1.0.3 • Public • Published

Node-Red eeSmart D2L

GitHub GitHub Workflow Status GitHub release (latest by date including pre-releases) npm GitHub issues Liberapay giving Discord

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 à support@eesmart.fr avec ces informations :

  • L'identifiant unique de votre D2L (Un nombre écrit en dessous du QR Code)
  • Votre preuve d'achat (optionnel ?)

Modèle de mail

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

Readme

Keywords

Package Sidebar

Install

npm i eesmart-d2l

Weekly Downloads

1

Version

1.0.3

License

MIT

Unpacked Size

47.7 kB

Total Files

12

Last publish

Collaborators

  • zorimyll