tbibard / teleinfo-recorder
Lit et enregistre la trame de téléinformation des compteurs électronique EDF
Requires
- php: >=5.3.0
- guzzle/guzzle: ~3.1.1
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