Python library for managing spanish energy data from various web providers
Project description
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 conectorDatadisConnector
). - 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 llamadoEdataHelper
que te permite recopilarX
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
Release history Release notifications | RSS feed
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
Hashes for e_data-0.4.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a01d624be2e19460977cfd4e71040c3e575108d0d2cacb5884ce07ef545f1d2 |
|
MD5 | dc508332bac15e2fd699b15656382373 |
|
BLAKE2b-256 | 9309c7c7f74c590a0e2d05647338e467a90e6d44ad2bd86c8b4fb551027ae1c1 |