{"id":15577436,"url":"https://github.com/david-lor/python-pvpc","last_synced_at":"2025-03-29T07:25:18.335Z","repository":{"id":45139637,"uuid":"440995464","full_name":"David-Lor/python-pvpc","owner":"David-Lor","description":"Librería Python para adquirir los precios PVPC por día","archived":false,"fork":false,"pushed_at":"2024-01-03T21:36:17.000Z","size":12,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-03T20:52:00.969Z","etag":null,"topics":["esios","pvpc","pydantic","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/David-Lor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-22T22:05:57.000Z","updated_at":"2025-01-04T10:35:35.000Z","dependencies_parsed_at":"2024-12-09T08:57:55.439Z","dependency_job_id":null,"html_url":"https://github.com/David-Lor/python-pvpc","commit_stats":{"total_commits":7,"total_committers":2,"mean_commits":3.5,"dds":0.1428571428571429,"last_synced_commit":"1da4c8b0d3200c92521e5b4313f39f747e9db979"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":"David-Lor/generic-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Lor%2Fpython-pvpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Lor%2Fpython-pvpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Lor%2Fpython-pvpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Lor%2Fpython-pvpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/David-Lor","download_url":"https://codeload.github.com/David-Lor/python-pvpc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246152632,"owners_count":20731823,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esios","pvpc","pydantic","python","python3"],"created_at":"2024-10-02T19:01:17.284Z","updated_at":"2025-03-29T07:25:18.308Z","avatar_url":"https://github.com/David-Lor.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pvpc\n\n_Data extraction library/wrapper for the [Esios PVPC](https://www.esios.ree.es/es/pvpc) API. Only exports PVPC price for a given day (€/kWh for each hour), from June 1st, 2021._\n\nLibrería/wrapper para extracción de datos del [portal Esios PVPC](https://www.esios.ree.es/es/pvpc). Únicamente exporta el precio [PVPC (Precio voluntario para el pequeño consumidor)](https://es.wikipedia.org/wiki/Precio_voluntario_para_el_pequeño_consumidor) para un día concreto (€/kWh por cada hora), a partir del 1 de junio del 2021.\n\n## Usage\n\n```python\nimport pvpc\n\n# Obtener valores para un día\nr = pvpc.get_pvpc_day(\"2021-12-12\")\n# Argumento de función: fecha, que puede ser objeto datetime.date, o string en formato YYYY-MM-DD\n# Devuelve un objeto models.PVPCDay (basado en Pydantic)\n\n# Si una fecha todavía no tiene valores disponibles, lanza excepción propia PVPCNoDataForDay.\n# REE actualiza los precios a última hora de la tarde del día anterior.\ntry:\n    r = pvpc.get_pvpc_day(\"3001-12-12\")\nexcept pvpc.PVPCNoDataForDay:\n    print(\"No data for day!\")\n\n# Obtener todos los valores, por hora...\n# ...para Peninsula/Canarias/Baleares:\ndata = r.data.pcb.hours\n# ...para Ceuta/Melilla:\ndata = r.data.cm.hours\n\n# \"hours\" es un diccionario, donde clave = horas del día, valores = coste en €/kWh\nfor hour, cost in data.items():\n    print(f\"{hour}h: {cost} €/kWh\")\n    # Ejemplo: \"0h: 0.33694 €/kWh\"\n\n# Convertir a diccionario\nr.dict()\n# Convertir a string JSON\nr.json()\n```\n\nSalida JSON/diccionario:\n\n```json5\n{\n  \"day\": \"2021-12-12\", // si es diccionario Python, devuelve objeto datetime.date\n  \"data\": {\n    \"pcb\": { // Peninsula, Canarias, Baleares\n      \"hours\": {\n        // Claves son las horas del dia en formato 24h (\"0\" = from 0:00 to 1:00)\n        // Valores son el coste en €/kWh\n        \"0\": 0.33694,\n        \"1\": 0.32597,\n        \"2\": 0.31901,\n        \"3\": 0.30213,\n        \"4\": 0.28941,\n        \"5\": 0.29458,\n        \"6\": 0.30343,\n        \"7\": 0.32168,\n        \"8\": 0.31098,\n        \"9\": 0.32455,\n        \"10\": 0.31445,\n        \"11\": 0.30529,\n        \"12\": 0.31768,\n        \"13\": 0.31913,\n        \"14\": 0.31193,\n        \"15\": 0.30304,\n        \"16\": 0.32298,\n        \"17\": 0.35688,\n        \"18\": 0.37038,\n        \"19\": 0.37381,\n        \"20\": 0.36729,\n        \"21\": 0.36467,\n        \"22\": 0.36055,\n        \"23\": 0.32983\n      }\n    },\n    \"cm\": { // Ceuta, Melilla\n      \"hours\": {\n        \"0\": 0.33694,\n        \"1\": 0.32597,\n        \"2\": 0.31901,\n        \"3\": 0.30213,\n        \"4\": 0.28941,\n        \"5\": 0.29458,\n        \"6\": 0.30343,\n        \"7\": 0.32168,\n        \"8\": 0.31098,\n        \"9\": 0.32455,\n        \"10\": 0.31445,\n        \"11\": 0.30529,\n        \"12\": 0.31768,\n        \"13\": 0.31913,\n        \"14\": 0.31193,\n        \"15\": 0.30304,\n        \"16\": 0.32298,\n        \"17\": 0.35688,\n        \"18\": 0.37038,\n        \"19\": 0.37381,\n        \"20\": 0.36729,\n        \"21\": 0.36467,\n        \"22\": 0.36055,\n        \"23\": 0.32983\n      }\n    }\n  }\n}\n```\n\n## TODO\n\n- Tests\n- CLI (interfaz línea de comandos)\n\n## Disclaimer\n\nLa fuente de datos proviene del portal [PVPC | Esios electricidad](https://www.esios.ree.es/es/pvpc) de Red Eléctrica de España.\nLa reutilización de estos datos se permite bajo ciertas condiciones especificadas en el [Aviso legal - Condiciones respecto al contenido](https://www.esios.ree.es/es/aviso-legal-y-politica-de-privacidad#condiciones-respecto-al-contenido).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-lor%2Fpython-pvpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavid-lor%2Fpython-pvpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-lor%2Fpython-pvpc/lists"}