Coder Social home page Coder Social logo

mactronique / edf-telereleve Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 1.0 3.25 MB

Programme PHP pour lire le télérelevé

License: MIT License

PHP 96.59% Shell 0.11% Makefile 1.49% Twig 1.81%
edf-telereleve customer enedis erdf edf php influxdb sqlite storage linky

edf-telereleve's Introduction

edf-telereleve

Programme PHP pour lire les informations client du compteur électrique.

Build Status

English version

Pré-requis

  • PHP 7.0 ou plus récent
  • composer
  • Le port série du compteur électrique connecté à votre ordinateur.

Connect the Serial Port

Le compteur électrique dispose d'un port série pour le télé-releve client. Vous pouvez connecter ce port série à votre ordinateur avec une petite carte.

Ce schéma de la petite carte est décrit dans la documentation ERDF.

Vous devez acheter les composants et la construire avant de poursuivre l'installation de ce programme.

Installation

Cloner le projet ou télécharger l'archive.

Une fois réalisé, ouvrir un terminal et se placer dans le dossier du projet, puis exécuter la commande suivante :

$ php composer.phar install --no-dev -o

Si vous compter stocker les données dans une base InfluxDB, exécuter la commande suivante dans le terminal :

$ php composer.phar require influxdb/influxdb-php

Configuration

Ajouter le fichier de configuration vide en exécutant la commande suivante :

$ touch config.yml

Définir la configuration du port série

La clé compteur est le model du compteur électrique. Seulement les modèles CBEMM et CBETM sont actuellement supporté. Pour un particulier le modèle électronique blanc est le modèle CBEMM. Ce modèle est également compatible avec le compteur communiquant Linky.

La clé device est le chemin vers le port série de votre machine sur lequel est connecté le compteur. Sur linux, la commande ls /dev/tty* permet de lister les ports séries disponible.

Par exemple sur un Raspberry Pi 3 le port série du GPIO est /dev/ttyS0.

Voici un exemple d'une configuration à placer dans le fichier config.yml à la racine du projet.

compteur: CBEMM
device: /dev/ttyAMA0

Par défaut les données sont stocké dans une base SQLite nommé data.sqlite et placé à la racine du projet.

Utilisation

Dans le terminal exécuter la commande suivante :

$ ./telereleve

Exécution des tests

Ouvrir un terminal et se placer à la racine du projet. Puis exécuter les commandes suivantes :

$ php composer.phar install -o
$ ./run-unit

La première install les outils de développement du projet et la seconde exécuter les tests.

Configuration complète

Voci toutes les clés de configuration possible :

compteur: CBEMM #this value is by default
device: /dev/ttyAMA0 # this value is the GPIO serial port for the Raspberry Pi
storage:
    driver: Sqlite # This is the default value. Another storage supported is 'InfluxDb'.
    parameters: # This is the default value. This constains arbitrary array configuration key for the driver.
        path: datas.sqlite
# Parameters array for the InfluxDB driver :
        host: localhost
        port: 8086
        database: telereleve
# Parameters array for Chain storage driver :
    driver: Chain
    parameters:
        storages: # set all storage here. You can set many storage with same driver 
            sqlite: # the key for driver. Is used on error. This array contains the driver configuration.
                driver: Sqlite
                parameters:
                    path: datas.sqlite
            influx:
                driver: InfluxDb
                parameters:
                    host: localhost
                    port: 8086
                    database: telereleve
        skip_on_storage_error: false # if true, no error stop the save process. If one storage is on error, the error is ignored.
enable_email: false # By default, the email sending is disabled.
template: default.text.twig # The name file for default template for email body content.
log_file: telereleve.log # The file log
smtp:
    server: 127.0.0.1
    port: 25
    security: null 
    username: null
    password: null
    mime: text/plain
    from: 
        display_name: TeleReleve
        email: me@localhost
    to: 
        display_name: Me
        email: me@localhost

edf-telereleve's People

Contributors

macintoshplus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ogmkp

edf-telereleve's Issues

Send Warning by email if

If the daily consumption exceeds x% of the yesterdays consumption, so you need to send an alert.

The "x%" is set on the parameters and this feature is disabled.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.