tbibard/teleinfo-recorder

Lit et enregistre la trame de téléinformation des compteurs électronique EDF

0.1.6 2014-01-29 08:43 UTC

This package is not auto-updated.

Last update: 2024-12-21 16:36:16 UTC


README

TeleinfoRecorder, lit et enregistre la trame de téléinformation des compteurs électronique EDF. La trame lue peut-être enregistrée dans un fichier (type csv) ou une base de données (via PDO) ou sur des plateformes type Cosm.com ou Sen.se.

Spécifications techniques de la téléinformation: ERDF-NOI-CPT_02E

De nombreux schémas permettent de réaliser son propre démodulateur de la téléinformation, pour sa part l'auteur a utilisé le démodulateur de www.suiviconso.fr, connecté à un Raspberry Pi.

Note

Il s'agit pour le moment d'une gestion partielle (Heures pleines/Heures creuses) des données de la trame de la téléinformation.

Pré-requis

  • PHP 5.3 ou supérieur
  • [optional] PHPUnit 3.5+ pour exécuter les tests

Installation

TeleinfoRecorder est disponible sur Packagist (tbibard/teleinfo-recorder) et donc installable via Composer.

{
    "require": {
        "tbibard/teleinfo-recorder": "0.1.*"
    }
}
composer install

Si vous n'utilisez pas Composer, vous pouvez récupérer le code via GitHub et utiliser un autoloader compatible PSR-0 (e.g. the Symfony2 ClassLoader component) pour charger les classes de TeleinfoRecorder.

Usage

<?php
require 'vendor/autoload.php';

use TeleinfoRecorder\Recorder;
use TeleinfoRecorder\Handler\StreamHandler;
use TeleinfoRecorder\Handler\PdoHandler;
use TeleinfoRecorder\Processor\CopyProcessor;
use TeleinfoRecorder\Processor\VariationLastProcessor;
use TeleinfoRecorder\Processor\SumFieldsProcessor;

try {
    $recorder = new Recorder();

    // StreamHandler
    $recorder->pushHandler(new StreamHandler('/path/teleinfo.csv'));

    // PdoHandler
    $dbh = new PDO('mysql:dbname=teleinfo;host=localhost', 'teleinfo', 'teleinfo-password');
    $recorder->pushHandler(new PdoHandler($dbh, 'Teleinfo'));

    // Ajout de processors
    // Copy processor: copie simplement un index de l'enregistrement vers un autre index
    $copy = new CopyProcessor('HCHP');
    $recorder->pushProcessor($copy, 'IndexHP');

    // Variation processor: calcul la différence entre le relevé courant et le précédent
    $variationHCHC = new VariationLastProcessor('HCHC', __DIR__, 60);
    $variationHCHP = new VariationLastProcessor('HCHP', __DIR__, 60);
    $recorder->pushProcessor($variationHCHC, 'HCvariation');
    $recorder->pushProcessor($variationHCHP, 'HPvariation');

    // Sum processor: calcul la somme de deux index du relevé
    $sumconso = new SumFieldsProcessor(array('HCvariation', 'HPvariation'));
    $recorder->pushProcessor($sumconso, 'CONSO');

    // Write record
    $recorder->write();
} catch (Exception $e) {
    echo $e->getMessage() . "\n";
}

Handlers

  • Stream: enregistrement dans des fichiers
  • PdoHandler: enregistrement en base de données via PDO
  • CosmFeedHandler: enregistrement dans un feed sur la plateforme Cosm.com
  • SenseFeedHandler: enregistrement dans un feed sur la plateforme Sen.se

Processors

  • Copy: permet de copier un index de l'enregistrement dans un nouvel index
  • SumFields: permet d'additionner les valeurs de certains index de l'enregistrement
  • VariationLast: permet de récupérer la différence depuis le dernier relevé.

Docs

Voir le dossier doc pour plus de détails.

Author

Thomas Bibard - thomas.bibard@neblion.net - https://twitter.com/tbibard

License

TeleinfoRecorder est sous licence MIT - voir le fichier LICENSE pour plus de détails.

Crédits

Cette librairie est inspirée de la librairie Monolog