Git Product home page Git Product logo

python-pvpc's Introduction

pvpc

Data extraction library/wrapper for the Esios PVPC API. Only exports PVPC price for a given day (€/kWh for each hour), from June 1st, 2021.

Librería/wrapper para extracción de datos del portal Esios PVPC. Únicamente exporta el precio PVPC (Precio voluntario para el pequeño consumidor) para un día concreto (€/kWh por cada hora), a partir del 1 de junio del 2021.

Usage

import pvpc

# Obtener valores para un día
r = pvpc.get_pvpc_day("2021-12-12")
# Argumento de función: fecha, que puede ser objeto datetime.date, o string en formato YYYY-MM-DD
# Devuelve un objeto models.PVPCDay (basado en Pydantic)

# Si una fecha todavía no tiene valores disponibles, lanza excepción propia PVPCNoDataForDay.
# REE actualiza los precios a última hora de la tarde del día anterior.
try:
    r = pvpc.get_pvpc_day("3001-12-12")
except pvpc.PVPCNoDataForDay:
    print("No data for day!")

# Obtener todos los valores, por hora...
# ...para Peninsula/Canarias/Baleares:
data = r.data.pcb.hours
# ...para Ceuta/Melilla:
data = r.data.cm.hours

# "hours" es un diccionario, donde clave = horas del día, valores = coste en €/kWh
for hour, cost in data.items():
    print(f"{hour}h: {cost} €/kWh")
    # Ejemplo: "0h: 0.33694 €/kWh"

# Convertir a diccionario
r.dict()
# Convertir a string JSON
r.json()

Salida JSON/diccionario:

{
  "day": "2021-12-12", // si es diccionario Python, devuelve objeto datetime.date
  "data": {
    "pcb": { // Peninsula, Canarias, Baleares
      "hours": {
        // Claves son las horas del dia en formato 24h ("0" = from 0:00 to 1:00)
        // Valores son el coste en €/kWh
        "0": 0.33694,
        "1": 0.32597,
        "2": 0.31901,
        "3": 0.30213,
        "4": 0.28941,
        "5": 0.29458,
        "6": 0.30343,
        "7": 0.32168,
        "8": 0.31098,
        "9": 0.32455,
        "10": 0.31445,
        "11": 0.30529,
        "12": 0.31768,
        "13": 0.31913,
        "14": 0.31193,
        "15": 0.30304,
        "16": 0.32298,
        "17": 0.35688,
        "18": 0.37038,
        "19": 0.37381,
        "20": 0.36729,
        "21": 0.36467,
        "22": 0.36055,
        "23": 0.32983
      }
    },
    "cm": { // Ceuta, Melilla
      "hours": {
        "0": 0.33694,
        "1": 0.32597,
        "2": 0.31901,
        "3": 0.30213,
        "4": 0.28941,
        "5": 0.29458,
        "6": 0.30343,
        "7": 0.32168,
        "8": 0.31098,
        "9": 0.32455,
        "10": 0.31445,
        "11": 0.30529,
        "12": 0.31768,
        "13": 0.31913,
        "14": 0.31193,
        "15": 0.30304,
        "16": 0.32298,
        "17": 0.35688,
        "18": 0.37038,
        "19": 0.37381,
        "20": 0.36729,
        "21": 0.36467,
        "22": 0.36055,
        "23": 0.32983
      }
    }
  }
}

TODO

  • Tests
  • CLI (interfaz línea de comandos)

Disclaimer

La fuente de datos proviene del portal PVPC | Esios electricidad de Red Eléctrica de España. La reutilización de estos datos se permite bajo ciertas condiciones especificadas en el Aviso legal - Condiciones respecto al contenido.

python-pvpc's People

Contributors

david-lor avatar

Watchers

 avatar  avatar

Forkers

ssorgatem

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.