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.4.0.tar.gz (45.5 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.4.0-py3-none-any.whl (71.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for wsenedis-0.4.0.tar.gz
Algorithm Hash digest
SHA256 915914d4a16c9f1043d4d332666049d614bd75b46611e8cbf2784e00fbe96e50
MD5 c26d7928f8f9689713236a7125c7ac3e
BLAKE2b-256 c2c2425ff45bbc1a097553bf6701075b67927c216b5ba06412eccea759710812

See more details on using hashes here.

Provenance

The following attestation bundles were made for wsenedis-0.4.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.4.0-py3-none-any.whl.

File metadata

  • Download URL: wsenedis-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 71.8 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 48396a14fc5929283304ba394ce654a44a819590cc77d8bd8129ecf288a703eb
MD5 5efa9fd909a24c211b070f4975e91d9f
BLAKE2b-256 85ad7e981d4984571ddcb45e3cdd77cfa9f53e8109e51cada208ed9e5cd89bbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for wsenedis-0.4.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