Skip to main content

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.

  1. ConsulterDonneesTechniquesContractuelles
    Permet de consulter les données techniques d'un point. Utilisez la méthode consultation_donnees_techniques_contractuelles(point) en passant un objet de type Point en argument.

  2. ConsulterMesures
    Permet de consulter l'historique des consommations d'un point. Utilisez la méthode consulter_mesures(donnees_consulter_mesures) en passant un objet de type DonneesConsulterMesures en argument.

  3. ConsulterMesuresDetaillees
    Permet de consulter les données détaillées d'un point. Utilisez la méthode consulter_mesures_detaillees(demande) en passant un objet de type DemandeConsulterMesuresDetaillees en argument.

  4. RecherchePoint
    Permet de rechercher un point dans le système d'Enedis. Utilisez la méthode recherche_point(criteres) en passant un objet de type Criteres en argument.

  5. CommanderCollectePublicationMesures
    Permet de collecter des données ou de demander une transmission récurrente de données sur le point concerné. Utilisez la méthode commander_collecte_publication(demande_collecte) en passant un objet de type DemandeCollecte en argument.

  6. RechercheServicesSouscritsMesures
    Permet de récupérer les données des services souscrits sur un point. Utilisez la méthode rechercher_services_souscrit_mesures(prm_id) en passant une chaîne de caractères de 14 caractères correspondant à l'identifiant PRM du point concerné.

  7. CommanderArretServiceSouscritMesures
    Permet d'arrêter un service de collecte ou de transmission de mesures récurrente. Utilisez la méthode commander_arret_service_souscrit_mesures(demande_arret) en passant un objet de type DemandeArret en argument.

  8. CommandeAccesDonneesMesures
    Permet de demander l'accès à des données de mesures sur un point. Utilisez la méthode commande_acces_donnees_mesures(demande) en passant un objet de type DemandeAccesDonneesMesures en argument.

  9. M023InformationsTechniquesEtContractuelles
    Permet de demander les données techniques et contractuelles d'un ou plusieurs sites. Utilisez la méthode m023(demande) en passant un objet de type DemandeInformationsTechniquesEtContractuelles en argument.

  10. M023HistoriqueMesuresFines
    Permet de demander les données fines de consommation ou de production. Utilisez la méthode m023(demande) en passant un objet de type DemandeHistoriqueMesuresFines en argument.

  11. M023MesuresFacturantes
    Permet de demander les mesures facturantes des sites. Utilisez la méthode m023(demande) en passant un objet de type DemandeHistoriqueDonneesFacturantes en 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 soit dev pour l'environnement de développement, soit prod pour 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é à False en 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 Client
  • BUCKET_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.crt pour le certificat public
  • ./ressources/certificats/server.key pour 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

wsenedis-0.2.0.tar.gz (45.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wsenedis-0.2.0-py3-none-any.whl (71.5 kB view details)

Uploaded Python 3

File details

Details for the file wsenedis-0.2.0.tar.gz.

File metadata

  • Download URL: wsenedis-0.2.0.tar.gz
  • Upload date:
  • Size: 45.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for wsenedis-0.2.0.tar.gz
Algorithm Hash digest
SHA256 db1254715ffb7c830111d644cfa68dc94e7db3b7d8eb2f786df3edd14d0215a7
MD5 d84d3c00f977f34741c6f1bf300c5f7b
BLAKE2b-256 b4f1415fe5f3c2bfd607a9fb4613bb4823c53fecc42183766f753c753e5806be

See more details on using hashes here.

Provenance

The following attestation bundles were made for wsenedis-0.2.0.tar.gz:

Publisher: publish.yml on jplartigue/webservices-enedis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wsenedis-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: wsenedis-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 71.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for wsenedis-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab90f52aec5c0f3ed185165da1d6ec8025f77c9de6af7c5066362c50f857fe6c
MD5 6e09a740f3919d697fc6f1794ed43410
BLAKE2b-256 266b9209a4463046c6ee0da4cc778cf75a176fc610603214dd75d10c54c70b14

See more details on using hashes here.

Provenance

The following attestation bundles were made for wsenedis-0.2.0-py3-none-any.whl:

Publisher: publish.yml on jplartigue/webservices-enedis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page