Skip to main content

python-oligo

Python package

Gitpod ready-to-code

[ES] Cliente Python (NO OFICIAL) para i-DE (Iberdrola distribución).

Instalación:

Requests support:

pip install oligo[requests]

Async support:

pip install oligo[asyncio]

Autenticación

Puedes pasar el usuario y la contraseña directamente o usar las variables de entorno I_DE_USER e I_DE_PASSWORD:

from oligo import Iber

connection = Iber()
connection.login("user", "password")

O usando variables de entorno:

from oligo import Iber

connection = Iber()
connection.login()  # Lee I_DE_USER e I_DE_PASSWORD del entorno

Ejemplos:

Consultar consumo actual (Sync):

from oligo import Iber

connection = Iber()
connection.login("user", "password")

watt = connection.watthourmeter()
print(watt)

Consultar consumo actual (ASync):

import asyncio
from oligo.asyncio import AsyncIber

async def main():
    connection = AsyncIber()
    await connection.login("user", "password")

    watt = await connection.watthourmeter()
    print(watt)
    await connection.close()

asyncio.run(main())

Consultar estado ICP interno (Sync):

from oligo import Iber
connection = Iber()
connection.login("user", "password")
status = connection.icpstatus()
print(status)

Consultar estado ICP interno (ASync):

import asyncio
from oligo.asyncio import AsyncIber

async def main():
    connection = AsyncIber()
    await connection.login("user", "password")
    status = await connection.icpstatus()
    print(status)

asyncio.run(main())

Obtener el consumo horario durante un periodo (Sync)

from oligo import Iber
from datetime import date, timedelta

connection = Iber()
connection.login("user", "password")

from_date = date.today() - timedelta(days=7)
until_date = date.today() - timedelta(days=1)

consumo = connection.consumption(from_date, until_date)

print(consumo[:10])

Obtener el consumo horario durante un periodo (ASync)

import asyncio
from oligo.asyncio import AsyncIber
from datetime import date, timedelta

async def main():
    connection = AsyncIber()
    await connection.login("user", "password")

    from_date = date.today() - timedelta(days=7)
    until_date = date.today() - timedelta(days=1)

    consumo = await connection.consumption(from_date, until_date)

    print(consumo[:10])

asyncio.run(main())

Obtener el consumo horario facturado durante un periodo (Sync)

from oligo import Iber
from datetime import date, timedelta

connection = Iber()
connection.login("user", "password")

from_date = date.today() - timedelta(days=7)
until_date = date.today() - timedelta(days=1)

consumo = connection.billed_consumption(from_date, until_date)

print(consumo[:10])

Obtener el consumo horario facturado durante un periodo (ASync)

import asyncio
from oligo.asyncio import AsyncIber
from datetime import date, timedelta

async def main():
    connection = AsyncIber()
    await connection.login("user", "password")

    from_date = date.today() - timedelta(days=7)
    until_date = date.today() - timedelta(days=1)

    consumo = await connection.billed_consumption(from_date, until_date)

    print(consumo[:10])

asyncio.run(main())

Los datos son el consumo por hora en Watt-horas. En este caso tendremos los dato de una semana, que son 7 por 24, 168 valores. Si sumamos y dividimos por 1000, tenemos el consumo de una semana en kWh.

[EN] Python client (UNOFFICIAL) for i-DE (Iberdrola distribución).

Authentication

You can pass the username and password directly or use the I_DE_USER and I_DE_PASSWORD environment variables:

from oligo import Iber

connection = Iber()
connection.login("user", "password")

Or using environment variables:

from oligo import Iber

connection = Iber()
connection.login()  # Reads I_DE_USER and I_DE_PASSWORD from environment

Install:

pip install oligo

Example:

Obtain current consumption (Sync):

from oligo import Iber

connection = Iber()
connection.login("user", "password")

watt = connection.watthourmeter()
print(watt)

Obtain current consumption (ASync):

import asyncio
from oligo.asyncio import AsyncIber

async def main():
    connection = AsyncIber()
    await connection.login("user", "password")

    watt = await connection.watthourmeter()
    print(watt)

asyncio.run(main())

Get ICP status (Sync):

from oligo import Iber
connection = Iber()
connection.login("user", "password")
status = connection.icpstatus()
print(status)

Get ICP status (ASync):

import asyncio
from oligo.asyncio import AsyncIber

async def main():
    connection = AsyncIber()
    await connection.login("user", "password")
    status = await connection.icpstatus()
    print(status)

asyncio.run(main())

Retrieve the hourly consumption during a time period (Sync)

from oligo import Iber
from datetime import date, timedelta
    
connection = Iber()
connection.login("user", "password")

from_date = date.today() - timedelta(days=7)
until_date = date.today() - timedelta(days=1)

consumo = connection.consumption(from_date, until_date)

print(consumo[:10])

Retrieve the hourly consumption during a time period (Async)

import asyncio
from oligo.asyncio import AsyncIber
from datetime import date, timedelta

async def main():
    connection = AsyncIber()
    await connection.login("user", "password")

    from_date = date.today() - timedelta(days=7)
    until_date = date.today() - timedelta(days=1)

    consumo = await connection.consumption(from_date, until_date)

    print(consumo[:10])

asyncio.run(main())

Retrieve the hourly billed consumption during a time period (Sync)

from oligo import Iber
from datetime import date, timedelta

connection = Iber()
connection.login("user", "password")

from_date = date.today() - timedelta(days=7)
until_date = date.today() - timedelta(days=1)

consumo = connection.billed_consumption(from_date, until_date)

print(consumo[:10])

Retrieve the hourly billed consumption during a time period (Async)

import asyncio
from oligo.asyncio import AsyncIber
from datetime import date, timedelta

async def main():
    connection = AsyncIber()
    await connection.login("user", "password")

    from_date = date.today() - timedelta(days=7)
    until_date = date.today() - timedelta(days=1)

    consumo = await connection.billed_consumption(from_date, until_date)

    print(consumo[:10])

asyncio.run(main())

The values are the consumption in Watt-hours. In this case, we have the data of one week, which are 7 times 24, 168 values. If we sum and divide by 1000, we will have the total consumption from one week in kWh.

Metadata

Release files for oligo 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oligo 2.2.0
File Size Uploaded Provenance Actions
oligo-2.2.0.tar.gz 10.9 kB Without provenance Details for oligo-2.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for oligo 2.2.0
File Interpreter ABI Platform Actions
oligo-2.2.0-py3-none-any.whl Python 3 none any Details for oligo-2.2.0-py3-none-any.whl

Total release size: 23.0 kB

Release files / oligo-2.2.0.tar.gz

Download URL oligo-2.2.0.tar.gz
Size 10.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ec4a3be8421b0f06c35fa7ec6595ba2d750303fc27bacd8e8753984ff250b960
BLAKE2b-256 checksum
How to use checksums
cb399b35497261efd7b85b5347591c4105c963185c8a0f251e232dafc0bccc90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / oligo-2.2.0-py3-none-any.whl

Download URL oligo-2.2.0-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0257a364e2ea45a858909814b8e2495604f103f72a2659a386a9d0f3e6e0e286
BLAKE2b-256 checksum
How to use checksums
850e0c209c8648b5efb69f6f40a590a79c263a90385ab40a609371dc56d7ecac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Security for oligo 2.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page