A module to communicate with Enedis webservices
Project description
webservices-enedis
webservices-enedis est une API permettant de communiquer avec les webservices d'Enedis via des messages SOAP.
Table des matières
Services disponibles
Actuellement, neuf services sont disponibles, chacun étant défini dans le projet via une classe dédiée contenant les méthodes nécessaires pour communiquer avec les webservices d'Enedis. Les objets à passer en paramètre des méthodes sont décrits dans le chapitre consacré au sous-module webservices_enedis_common.
-
ConsulterDonneesTechniquesContractuelles
Permet de consulter les données techniques d'un point. Utilisez la méthodeconsultation_donnees_techniques_contractuelles(point)en passant un objet de typePointen argument. -
ConsulterMesures
Permet de consulter l'historique des consommations d'un point. Utilisez la méthodeconsulter_mesures(donnees_consulter_mesures)en passant un objet de typeDonneesConsulterMesuresen argument. -
ConsulterMesuresDetaillees
Permet de consulter les données détaillées d'un point. Utilisez la méthodeconsulter_mesures_detaillees(demande)en passant un objet de typeDemandeConsulterMesuresDetailleesen argument. -
RecherchePoint
Permet de rechercher un point dans le système d'Enedis. Utilisez la méthoderecherche_point(criteres)en passant un objet de typeCriteresen argument. -
CommanderCollectePublicationMesures
Permet de collecter des données ou de demander une transmission récurrente de données sur le point concerné. Utilisez la méthodecommander_collecte_publication(demande_collecte)en passant un objet de typeDemandeCollecteen argument. -
RechercheServicesSouscritsMesures
Permet de récupérer les données des services souscrits sur un point. Utilisez la méthoderechercher_services_souscrit_mesures(prm_id)en passant une chaîne de caractères de 14 caractères correspondant à l'identifiant PRM du point concerné. -
CommanderArretServiceSouscritMesures
Permet d'arrêter un service de collecte ou de transmission de mesures récurrente. Utilisez la méthodecommander_arret_service_souscrit_mesures(demande_arret)en passant un objet de typeDemandeArreten argument. -
CommandeAccesDonneesMesures
Permet de demander l'accès à des données de mesures sur un point. Utilisez la méthodecommande_acces_donnees_mesures(demande)en passant un objet de typeDemandeAccesDonneesMesuresen argument. -
M023InformationsTechniquesEtContractuelles
Permet de demander les données techniques et contractuelles d'un ou plusieurs sites. Utilisez la méthodem023(demande)en passant un objet de typeDemandeInformationsTechniquesEtContractuellesen argument. -
M023HistoriqueMesuresFines
Permet de demander les données fines de consommation ou de production. Utilisez la méthodem023(demande)en passant un objet de typeDemandeHistoriqueMesuresFinesen argument. -
M023MesuresFacturantes
Permet de demander les mesures facturantes des sites. Utilisez la méthodem023(demande)en passant un objet de typeDemandeHistoriqueDonneesFacturantesen argument.
Variables d'environnement
Pour fonctionner correctement, le projet nécessite que plusieurs variables d'environnement soient spécifiées :
WS_ENEDIS_LOGIN: Identifiant auprès des webservices d'Enedis. Ne jamais stocker ou afficher cette information en clair !WS_ENEDIS_CONTRAT_ID: Identifiant du contrat entre le Client et Enedis, utilisé pour identifier l'entreprise sur certains webservices. Ne pas stocker ou afficher cette information en clair !WS_ENEDIS_URL: Partie commune de l'URL d'appel aux webservices d'Enedis.PROXY_DB_NAME: Nom de la base de données utilisée par Django.PROXY_DB_USER: Nom d'utilisateur pour la base de données. Ne pas stocker ou afficher cette information en clair !PROXY_DB_PASSWORD: Mot de passe pour la base de données. Ne pas stocker ou afficher cette information en clair !PROXY_DB_PORT: Port de communication avec la base de données.PROXY_DB_HOST: Hôte (nom de domaine) de la base de données.ENVIRONNEMENT_EXECUTION: Doit contenir soitdevpour l'environnement de développement, soitprodpour le déploiement en production. Sert à gérer l'activation de Gunicorn.DJANGO_SECRET: Clé secrète Django. Ne pas stocker ou afficher cette information en clair !PYTHONUNBUFFERED: Doit contenir"1"si vous êtes en développement.DJANGO_SETTINGS_MODULE: Spécifie le module de configuration de Django.DEBUG: Doit absolument être renseigné àFalseen environnement de production.HOMOLOGATION: Indiquant si le système est déployé pour l'homologation Enedis (ne rien mettre si c'est la prod)
Production only
KEY_PRIVATE_CLIENT_CERTIFICATE: Variable d'env contenant la clé privée du certificat ClientBUCKET_NAME: Nom du bucket S3 dans lequel est placée la clé publique du client (.crt)KEY_PUBLIC_CLIENT_CERTIFICATE: Clé S3 du certificat public présent sur S3 (exemple : test/certificat.crt)
Connexion avec Imposter
Imposter est un outil de simulation qui permet de reproduire le comportement des webservices d'Enedis. Il est utilisé dans ce projet pour disposer d'un environnement de test accessible rapidement et en local.
Pour qu'Imposter simule un service, il faut lui fournir les fichiers .xsd et .wsdl qui définissent la structure des messages attendus par le service, ainsi qu'un fichier de configuration se terminant par -config.yaml.
Important : Les fichiers .wsdl doivent avoir leur champ targetNamespace modifié pour commencer par http://imposter:8080/.
Exemple de fichier de configuration :
plugin: soap
wsdlFile: RecherchePoint-v2.0.wsdl
resources:
- binding: RecherchePointBinding
operation: rechercherPoint
response:
content: |
<!-- Votre réponse SOAP ici -->
const.py
Le fichier const.py contient l'ensemble des enum et des constantes du système.
Certificats Enedis
Développement
Les certificats doivent être placés dans le dossier :
./ressources/certificats/client_public.crtpour le certificat public./ressources/certificats/server.keypour le certificat privé
Production
Le certificat public doit être situé dans le bucket paramètrable via la variable BUCKET_NAME et dont la clé est KEY_PUBLIC_CLIENT_CERTIFICATE
Le certificat privé doit être injecté via une variable d'env dénommée KEY_PRIVATE_CLIENT_CERTIFICATE
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wsenedis-0.1.0.tar.gz.
File metadata
- Download URL: wsenedis-0.1.0.tar.gz
- Upload date:
- Size: 46.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afc2c34251d2c915e43db40f33310c7f48e717d8cf2591d389b13136fe51187e
|
|
| MD5 |
8ba82472ec556cbad8ce3ba9b2668d2d
|
|
| BLAKE2b-256 |
342fa31aaf9f39057e1d0bdb3818dc187afb29057aff1aba419fa04884b252c6
|
Provenance
The following attestation bundles were made for wsenedis-0.1.0.tar.gz:
Publisher:
publish.yml on jplartigue/webservices-enedis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wsenedis-0.1.0.tar.gz -
Subject digest:
afc2c34251d2c915e43db40f33310c7f48e717d8cf2591d389b13136fe51187e - Sigstore transparency entry: 154043018
- Sigstore integration time:
-
Permalink:
jplartigue/webservices-enedis@98ed5ac3c863f13000fb528ff860a543e2c2d923 -
Branch / Tag:
refs/heads/clean_jp - Owner: https://github.com/jplartigue
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@98ed5ac3c863f13000fb528ff860a543e2c2d923 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file wsenedis-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wsenedis-0.1.0-py3-none-any.whl
- Upload date:
- Size: 72.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e1fee57cc86fbc49f35c11da97b9146b123bc5135ecb2bf486ee75aebd2d29a
|
|
| MD5 |
2035c6c8674999aa7fb885e05c0efbe9
|
|
| BLAKE2b-256 |
a93a575589b7d76346bc0ab64fbfc717016d502426c30ad81011de95ffcf630c
|
Provenance
The following attestation bundles were made for wsenedis-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on jplartigue/webservices-enedis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wsenedis-0.1.0-py3-none-any.whl -
Subject digest:
5e1fee57cc86fbc49f35c11da97b9146b123bc5135ecb2bf486ee75aebd2d29a - Sigstore transparency entry: 154043019
- Sigstore integration time:
-
Permalink:
jplartigue/webservices-enedis@98ed5ac3c863f13000fb528ff860a543e2c2d923 -
Branch / Tag:
refs/heads/clean_jp - Owner: https://github.com/jplartigue
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@98ed5ac3c863f13000fb528ff860a543e2c2d923 -
Trigger Event:
workflow_dispatch
-
Statement type: