python-oligo
[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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.