Git Product home page Git Product logo

esiosdata's Introduction

EsiosData

Web scraper para datos de demanda, producción y coste de la energía eléctrica en España, y simulador de facturación eléctrica según el PVPC.

Para utilizarlo necesitas obtener un token para la autentificación en la API de la web ESIOS de REE.

  • Envía un correo electrónico a [email protected] solicitando un código de acceso personal.
  • Recibirás un código (token), grábalo en disco en tu /home/user como un archivo oculto de nombre .token_api_esios. En línea de comandos, ejecuta el siguiente comando substituyendo las X's por tu código personal:
    echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" > ~/.token_api_esios
    

Instalación

pip3 install esiosdata 

Uso de la librería

· Línea de comandos:

python esiosdata -h

>> usage: esiosdata [-h] [-v] [-d] [-fu] [-u] [-p] [-i [INFO [INFO ...]]]
>> 
>> Gestor de DB de PVPC/DEMANDA (esios.ree.es)
>> 
>> optional arguments:
>>   -h, --help            show this help message and exit
>>   -v, --verbose         Shows extra info
>>   -d, --dem             Select REE data
>>   -fu, -FU, --forceupdate
>>                         Force update of all available data
>>   -u, -U, --update      Updates data until today
>>   -p, --plot            Plots info of DB
>>   -i [INFO [INFO ...]], --info [INFO [INFO ...]]
>>                         Shows info of DB 

· Python:

- Datos de PVPC:

from esiosdata import PVPC

pvpc_handler = PVPC()
print('Códigos de tarifas: {}'.format(pvpc_handler.tarifas))

ts_last, nrows_tot = pvpc_handler.last_entry()
print('TS LAST VALUE: {}; TOTAL VALUES: {}'.format(ts_last, nrows_tot))

from esiosdata.facturapvpc import (FacturaElec, ROUND_PREC, TIPO_PEAJE_GEN, TIPO_PEAJE_NOC, TIPO_PEAJE_VHC,
                                   ZONA_IMPUESTOS_CANARIAS, ZONA_IMPUESTOS_PENIN_BALEARES, ZONA_IMPUESTOS_CEUTA_MELILLA)

# Salida:

>> * BASE DE DATOS LOCAL HDF:
>> 	Nº entradas:	24913 mediciones
>> 	Última:     	01-02-2017 23:00
>> LA INFORMACIÓN ESTÁ ACTUALIZADA (delta = -34321.0 segs)
>> Códigos de tarifas: ['GEN', 'NOC', 'VHC']
>> TS LAST VALUE: 2017-02-01 23:00:00+01:00; TOTAL VALUES: 24913

Más detalles en el notebook asociado: "esiosdata - PVPC data"

- Facturación del consumo eléctrico:

Este paquete incorpora una calculadora de la factura eléctrica en base a la legislación española sobre el PVPC (Precio voluntario para el pequeño consumidor). Facilita el cálculo del coste de la electricidad para las distintas discriminaciones horarias disponibles, tanto para lecturas de consumo totales (contadores antiguos) como para los nuevos contadores de registro horario.

La clase FacturaElec proporciona un objeto con el desglose detallado de cada periodo facturado, además de producir representaciones de dicho desglose en texto plano y HTML.

from esiosdata import FacturaElec
t_0, t_f = '2016-11-01', '2016-12-31'
factura = FacturaElec(t_0, t_f, tipo_peaje='VHC', consumo=[219, 126, 154])
html_factura = factura.to_html()
print(factura)  # representación en texto plano

# Salida:

>> FACTURA ELÉCTRICA:
>> --------------------------------------------------------------------------------
>> * Fecha inicio             	01/11/2016
>> * Fecha final              	31/12/2016
>> * Peaje de acceso          	2.0DHS (Vehículo eléctrico)
>> * Potencia contratada      	3.45 kW
>> * Consumo periodo          	499.00 kWh
>> * ¿Bono Social?            	No
>> * Equipo de medida         	1.59 €
>> * Impuestos                	Península y Baleares (IVA)
>> * Días facturables         	60
>> --------------------------------------------------------------------------------
>> 
>> - CÁLCULO DEL TÉRMINO FIJO POR POTENCIA CONTRATADA:
>>     3.45 kW * 42.043426 €/kW/año * 60 días (2016) / 366 = 23.78 €
>>      -> Término fijo                                                   23.78 €
>> 
>> - CÁLCULO DEL TÉRMINO VARIABLE POR ENERGÍA CONSUMIDA (TARIFA 2.0DHS):
>>     Periodo 1: 0.151329 €/kWh                          -> 33.14€(P1)
>>     - Peaje de acceso: 219kWh * 0.062012€/kWh = 13.58€
>>     - Coste de la energía: 219kWh * 0.089317€/kWh = 19.56€
>>     Periodo 2: 0.080943 €/kWh                          -> 10.20€(P2)
>>     - Peaje de acceso: 126kWh * 0.002879€/kWh = 0.36€
>>     - Coste de la energía: 126kWh * 0.078064€/kWh = 9.84€
>>     Periodo 3: 0.062982 €/kWh                          -> 9.70€(P3)
>>     - Peaje de acceso: 154kWh * 0.000886€/kWh = 0.14€
>>     - Coste de la energía: 154kWh * 0.062096€/kWh = 9.56€
>>      -> Término de consumo                                             53.04 €
>> 
>> 
>> 
>> - IMPUESTO ELÉCTRICO:
>>     5.11269632% x (23.78€ + 53.04€)                                    3.93 €
>> 
>> - EQUIPO DE MEDIDA:                                                    1.59 €
>> 
>> - IVA O EQUIVALENTE:
>>     21% de 82.34€                                                      17.29 €
>> 
>> ################################################################################
>> # TOTAL FACTURA                                                        99.63 €
>> ################################################################################

Más detalles en el notebook asociado: "esiosdata - Facturación"

Tests

Este paquete está testado con una cobertura completa (100% code coverage), y no se le han detectado errores, lo cual no es garantía de que no los haya. Si descubres alguno, que no esté relacionado con la respuesta de los servidores de ESIOS (que fallan a menudo y son algo perezosos, todo sea dicho), puedes descargar el paquete completo y ejecutar los tests, así como corregir el error!

py.test --cov=esiosdata -v --cov-report html

esiosdata's People

Contributors

azogue avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.