https://github.com/hectorespert/python-oligo
Cliente Python (NO OFICIAL) para i-DE (Iberdrola distribución)
https://github.com/hectorespert/python-oligo
hacktoberfest python python-library smartmeter
Last synced: 10 months ago
JSON representation
Cliente Python (NO OFICIAL) para i-DE (Iberdrola distribución)
- Host: GitHub
- URL: https://github.com/hectorespert/python-oligo
- Owner: hectorespert
- License: mit
- Created: 2017-06-19T11:29:17.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-02-09T20:21:56.000Z (about 2 years ago)
- Last Synced: 2025-04-30T02:19:28.230Z (10 months ago)
- Topics: hacktoberfest, python, python-library, smartmeter
- Language: Python
- Homepage: https://hectorespert.github.io/python-oligo/
- Size: 74.2 KB
- Stars: 70
- Watchers: 9
- Forks: 27
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# python-oligo
[](https://github.com/hectorespert/python-oligo/actions/workflows/test.yml)
[](https://gitpod.io/#https://github.com/hectorespert/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]
```
### Ejemplos:
#### Consultar consumo actual (Sync):
```python
from oligo import Iber
connection = Iber()
connection.login("user", "password")
watt = connection.watthourmeter()
print(watt)
```
#### Consultar consumo actual (ASync):
```python
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):
```python
from oligo import Iber
connection = Iber()
connection.login("user", "password")
status = connection.icpstatus()
print(status)
```
#### Consultar estado ICP interno (ASync):
```python
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)
```python
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)
```python
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())
```
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.
### Integraciones:
- Integración para Home Assistan: [ad-ha/ide_api](https://github.com/ad-ha/ide_api)
## [EN] Python client (UNOFFICIAL) for i-DE (Iberdrola distribución).
### Install:
```
pip install oligo
```
### Example:
#### Obtain current consumption (Sync):
```python
from oligo import Iber
connection = Iber()
connection.login("user", "password")
watt = connection.watthourmeter()
print(watt)
```
#### Obtain current consumption (ASync):
```python
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):
```python
from oligo import Iber
connection = Iber()
connection.login("user", "password")
status = connection.icpstatus()
print(status)
```
#### Get ICP status (ASync):
```python
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)
```python
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)
```python
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())
```
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.