Skip to main content

UNOFFICIAL Python client for i-DE

Project description

python-oligo

Python package

Gitpod ready-to-code

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

[!WARNING] Esta librería está en modo mantenimiento. No se añadirán nuevas funcionalidades, solo se corregirán errores mientras el api web de i-DE siga funcionando de la misma manera.

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).

[!WARNING] This library is in maintenance mode. No new features will be added, only bugs will be fixed while the i-DE web api continues to work in the same way.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oligo-2.2.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oligo-2.2.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file oligo-2.2.0.tar.gz.

File metadata

  • Download URL: oligo-2.2.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for oligo-2.2.0.tar.gz
Algorithm Hash digest
SHA256 ec4a3be8421b0f06c35fa7ec6595ba2d750303fc27bacd8e8753984ff250b960
MD5 33b1170b7704e2d4ac80503aaede76de
BLAKE2b-256 cb399b35497261efd7b85b5347591c4105c963185c8a0f251e232dafc0bccc90

See more details on using hashes here.

File details

Details for the file oligo-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: oligo-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for oligo-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0257a364e2ea45a858909814b8e2495604f103f72a2659a386a9d0f3e6e0e286
MD5 0b20075d08ab9476ad30995126f63ccb
BLAKE2b-256 850e0c209c8648b5efb69f6f40a590a79c263a90385ab40a609371dc56d7ecac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page