EcoFlow Reader
Librería en Python para interactuar con la API pública de EcoFlow. Permite obtener información sobre las cuotas y el estado de los equipos vinculados a tu cuenta, implementando de forma nativa el flujo de autenticación seguro requerido por la plataforma mediante firmas criptográficas (HMAC-SHA256).
Instalación
Puedes instalar la librería directamente desde PyPI utilizando pip o uv:
uv pip install ecoflow-reader
Configuración
Para utilizar esta librería necesitas tus credenciales de acceso (Access Key y Secret Key) obtenidas en el portal de desarrolladores de EcoFlow, además del número de serie (SN) de tu equipo.
La librería lee estas credenciales desde variables de entorno. En la raíz de tu proyecto, copia la plantilla proporcionada:
cp env.example .env
Edita el archivo .env con tus credenciales reales:
ECOFLOW_API_KEY="tu_access_key_obtenida_en_ecoflow"
ECOFLOW_API_SECRET="tu_secret_key_obtenida_en_ecoflow"
ECOFLOW_DEVICE_SN="el_numero_de_serie_de_tu_equipo"
Importante: Asegúrate de que el archivo
.envesté incluido en tu.gitignorepara evitar exponer tus credenciales.
Uso
1. Desde la Terminal (CLI)
Al instalar el paquete, se expone un binario global en tu sistema. Si tienes el archivo .env configurado en el directorio actual, simplemente ejecuta:
ecoflow-cli
Si la configuración es correcta, recibirás en consola la información de cuota y estado del dispositivo en formato JSON. En caso de error, el sistema de logging te indicará qué credencial o problema de red debes revisar.
2. Como Librería en tu Código Python
Puedes importar la clase EcoFlowClient para integrarla en tus propias aplicaciones, contenedores o APIs:
import os
from dotenv import load_dotenv
from ecoflow_reader import EcoFlowClient
# 1. Cargar las variables de entorno
load_dotenv()
API_KEY = os.getenv('ECOFLOW_API_KEY')
API_SECRET = os.getenv('ECOFLOW_API_SECRET')
DEVICE_SN = os.getenv('ECOFLOW_DEVICE_SN')
# 2. Inicializar el cliente
client = EcoFlowClient(api_key=API_KEY, api_secret=API_SECRET)
# 3. Consultar la API
datos = client.get_device_quota(sn=DEVICE_SN)
if datos:
print(datos)
else:
print("No se pudo obtener la información del equipo.")
Licencia y Autor
Desarrollado por Jesús Palencia (sinfallas)
Distribuido bajo la licencia GPL-2.0. Consulta el archivo LICENSE para más detalles.
Release files for ecoflow-reader 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ecoflow_reader-0.1.1.tar.gz | 11.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ecoflow_reader-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.5 kB
Release files / ecoflow_reader-0.1.1.tar.gz
| Download URL | ecoflow_reader-0.1.1.tar.gz |
|---|---|
| Size | 11.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5c28274980103af4ecd2af019fde0f13a8df19901fceeae4db2af874badc5bf4
|
|
BLAKE2b-256 checksum How to use checksums |
65565ffc5fd098a014bd3557870cc1e8fc1ae963acb2db0d3e844a6717ce30de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / ecoflow_reader-0.1.1-py3-none-any.whl
| Download URL | ecoflow_reader-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc23f44c33522a3c224d6fa14f4562bfb4345739116acb388b18f05388cd2208
|
|
BLAKE2b-256 checksum How to use checksums |
ae74c7da41539f8f51e087558458b6e216f43a5abeaf7effd1e5a8e5be980994
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|