Skip to main content

Python library for managing spanish energy data from various web providers

Project description

Downloads Downloads Downloads

python-edata

Este paquete proporciona herramientas para la descarga de tus datos de consumo eléctrico (desde Datadis.es) y su posterior procesado. La motivación principal es que conocer el consumo puede ayudarnos a reducirlo, e incluso a elegir una tarifa que mejor se adapte a nuestras necesidades. A día de hoy sus capacidades de facturación (€) son limitadas, pero algún día pretende ser capaz de simular facturas con reglas de tarificación personalizadas.

Instalación

Puedes instalar la última versión estable mediante:

pip install e-data

Si quieres probar la versión dev o contribuir a su desarrollo, clona este repositorio e instala manualmente las dependencias:

pip install -r requirements.txt

Estructura

El paquete consta de tres módulos diferenciados:

  • Conectores (módulo connectors), para definir los métodos de consulta a los diferentes proveedores (ahora mismo únicamente se soporta Datadis con el conector DatadisConnector).
  • Procesadores (módulo processors), para procesar datos de consumo, maxímetro, o coste (tarificación).
  • Ayudantes (módulo helpers), para ayudar en el uso y gestión de los anteriores, presentando de momento un único ayudante llamado EdataHelper que te permite recopilar X días de datos y automáticamente procesarlos. También realiza tareas de recuperación ante timeouts o respuestas inválidas.

Estos módulos corresponden a la siguiente estructura del paquete:

edata/
    · __init__.py
    · connectors.py
    · processors.py
    · helpers.py

Ejemplo de uso

Partimos de que tenemos credenciales en Datadis.es. Algunas aclaraciones:

  • No es necesario solicitar API pública en el registro (se utilizará la API privada habilitada por defecto)
  • El username suele ser el NIF del titular
  • Copie el CUPS de la web de Datadis, algunas comercializadoras adhieren caracteres adicionales en el CUPS mostrado en su factura.
  • La herramienta acepta el uso de NIF autorizado para consultar el suministro de otro titular.
import logging
from edata.helpers import EdataHelper

# Instanciar el helper
# 'authorized_nif' permite indicar el NIF de la persona que nos autoriza a consultar su CUPS.
# 'data' permite "cargar" al helper datos anteriores (resultado edata.data de una ejecución anterior), para evitar volver a consultar los mismos.
edata = EdataHelper("datadis_username", "datadis_password", "cups", authorized_nif=None, data=None, experimental=False, log_level=logging.INFO)

# Solicitar actualización de todo el histórico (se almacena en edata.data)
edata.update(date_from=datetime(1970, 1, 1), date_to=datetime.today())

# Imprimir info de suministros
print(edata.data["supplies"])

# Imprimir info de contratos
print(edata.data["contracts"])

# Imprimir info de consumos
print(edata.data["consumptions"])

# Imprimir info de maxímetro
print(edata.data["maximeter"])

# Imprimir resumen
print(edata)

El contenido de edata.data es un diccionario, por lo que podríamos volcarlo en un fichero utilizando cualquier módulo de python (json.dumps, pandas, etc.).

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

e-data-0.4.1.tar.gz (24.5 kB view hashes)

Uploaded Source

Built Distribution

e_data-0.4.1-py2.py3-none-any.whl (24.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

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