Installer æneria

Tout d’abord pour utiliser æneria,

  • Vous devez avoir accès à un Linky et à un compte Enedis
  • Via ce compte, vous devez activer l’option Courbe de charge pour pouvoir avoir accès à votre consommation horaire

Installation via YunoHost

YunoHost est un projet ayant pour but de promouvoir l’autohébergement. Son but est de faciliter l’administration d’un serveur : en savoir plus

https://yunohost.org/images/ynh_logo_black_300dpi.png

Des nombreuses applications sont déjà packagées pour être utilisées avec et c’est le cas de æneria.

https://install-app.yunohost.org/install-with-yunohost.png

Installation à la main

æneria est une application basée sur le framework Symfony. Elle s’installe sur un serveur web disposant d’un PHP récent et d’un serveur de base de données PostgreSQL.

Prérequis

  • PHP 7.3 et supérieur
  • PostgreSQL (9.6 et supérieur)

Note

MySQL et SQLite devraient fonctionner mais vous aurez à adapter les fichiers .env & config/packages/doctrine.yaml

Il n’est pas prévu que æneria Les supporte officiellement.

Avertissement

Les migrations de æneria sont uniquement générées pour PostgreSQL, si vous utilisez un autre type de serveur, gardez à l’esprit qu’il faudra vérifier chaque migration avant de la lancer !

Installation

Retrouvez les différentes versions d’æneria sur son dépos Gitlab sur la page des Releases.

Les différentes versions accompagnées de leurs dépendances Composer et des assets compilés sont disponibles sur le dépot d’æneria

1. Récupérer les sources

Téléchargez et décompressez le dernière version au format tar.gz :

wget http://statics.aeneria.com/aeneria-app-latest.tar.gz
tar -xvzf aeneria-app-latest.tar.gz
rm aeneria-app-latest.tar.gz
cd aeneria-app

2. Créer et renseigner la base de données

Créez une base de données.

Copiez le fichier .env.dist puis adaptez-le :

cp .env.dist .env
# fichier .env

...

###> doctrine/doctrine-bundle ###
# Format    described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For PostgreSQL database use: "pgsql://[database_user]:[database_password]@127.0.0.1:5432/[database_name]
# For MySQL database use: "mysql://[database_user]:[database_password]@127.0.0.1:3306/[database_name]
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=[VOTRE CONFIG ICI]
###< doctrine/doctrine-bundle ###

...

Adaptez également le fichier config/packages/doctrine.yaml si votre serveur de base de données n’est pas PostgreSQL :

# fichier config/packages/doctrine.yaml

...

# Renseigner ici les info de votre dbal
doctrine:
    dbal:
        # Configure these for your database server

        # Mysql
        # driver: 'pdo_mysql'
        # server_version: '5.2'
        # charset: utf8mb4
        # default_table_options:
        #     charset: utf8mb4
        #     collate: utf8mb4_unicode_ci

        # PostgreSQL
        driver: 'pdo_pgsql'
        server_version: '9.6'
        charset: utf8

        #SQLLite
        # driver:   pdo_sqlite
        # charset: utf8

...

3. Générer la base de données

Lancez le commande d’installation d’aeneria :

php7.3 bin/console aeneria:install

4. Configurer Enedis Data-connect

æneria utilise l’API Enedis Data Connect pour obtenir les données de consommation d’électricité. Mais pour utiliser cette API il est nécessaire d’avoir un compte. Seulement, pour ouvrir un compte sur la Data Hub d’Enedis, il faut être une entreprise, une association ou une collectivité locale.

Pour permettre à tout le monde d’utiliser æneria, un proxy a été développé pour qu’une instance d’æneria puisse bénéficier du compte d’aeneria.com.

Au lieu d’utiliser le comportement classique pour se connecter à Enedis :

votre instance æneria <=[via vos propres idientifiants de connexion enedis]=> Enedis Data Connect

Vous pouvez configurez votre instance comme ça :

votre instance æneria <=> proxy.aeneria.com <=[via les idientifiants de connexion d'aeneria.com]=> Enedis Data Connect

Il y a donc 2 sortes de mode :

Soit vous créez un compte Enedis et vous renseignez vos informations de connexion de cette manière dans le fichier .env :

# fichier .env

...

ENEDIS_CLIENT_ID=[votreClientIdEnedis]
ENEDIS_CLIENT_SECRET=[votreClientSecretEnedis]
ENEDIS_REDIRECT_URI=[votreRedirectUriEnedis]
ENEDIS_ENDPOINT_AUTH=https://mon-compte-particulier.enedis.fr
ENEDIS_ENDPOINT_TOKEN=https://gw.prd.api.enedis.fr
ENEDIS_ENDPOINT_DATA=https://gw.prd.api.enedis.fr

...

Note

Pour obtenir vos propres identifiants de connexion, rendez-vous sur le Data Hub d’Enedis

Soit vous utilisez proxy.aeneria.com en utilisant cette configuration

# fichier .env

...

ENEDIS_ENDPOINT_AUTH=https://proxy.aeneria.com/enedis-data-connect
ENEDIS_ENDPOINT_TOKEN=https://proxy.aeneria.com/enedis-data-connect
ENEDIS_ENDPOINT_DATA=https://gw.prd.api.enedis.fr

...

Avertissement

proxy.aeneria.com est un serveur communautaire fourni à titre gracieux.

Merci de l’utiliser raisonnablement et dans un cadre privé non-commercial.

Nous nous réservons le droit de bannir de ce serveur les instances qui en feront un usage trop intensif, et ce sans explications et sans avertissement.

5. Créer un administrateur

Ajoutez une premier utilisateur et donnez-lui les droits administrateur :

php7.3 bin/console aeneria:user:add [admin_email] [password]
php7.3 bin/console aeneria:user:grant [admin_email]

6. Générer l’ensemble des flux Météo (facultatif - usage avancée)

Danger

Cette fonctionnalité correspond à un usage avancée. Testez d’abord æneria sans l’utiliser.

Si vous le souhaitez, vous pouvez créer l’ensemble des flux météo pour l’utilisateur admin. L’intérêt est de commencer à stocker toutes les données météo dès l’installation de l’instance. Un utilisateur qui créée son compte dans le futur aura directement accès à l’ensemble de données météos depuis l’installation d’æneria. Par contre, en faisant ça, l’ensemble des données des 62 stations Météo sera historisé, ce qui augmente la taille de la base de données.

Pour ça, lancer la commande suivante :

php7.3 bin/console aeneria:feed:meteo:generate-all [username]

Note

Les données Météo étant des données publiques, il n’y a pour elles pas de problème de confidentialité. Pour simplifier les traitements, les données des flux météo ne sont jamais supprimées. Si vous souhaitez quand même les supprimer, vous pouver le faire en utilisant la commande aeneria:feed:clean-orphans.

Avertissement

L’adresse générée par cette commande n’est pas destinée à ensuite être utilisée via l’interface d’æneria. Elle a pour unique but de définir une première fois l’ensemble des stations météo.

7. Mettre en place le CRON

Mettez en place le CRON en exécutant la commande suivante :

echo "*/10  *  *  *  * [user] php7.3 /[app_folder]/bin/console aeneria:fetch-data" > /etc/cron.d/aeneria
# où [user] est l'utilisateur linux qui lancera le cron

8. Configurer le serveur web

Enfin, configurez NGINX ou Apache comme pour une application Symfony 5 classique