Integración API de EcoFlow
Este script de Python permite interactuar con la API pública de EcoFlow para obtener información sobre los equipos vinculados a tu cuenta. Implementa de forma nativa el flujo de autenticación seguro mediante firmas criptográficas (HMAC-SHA256) requerido por la plataforma.
Características
- Autenticación segura basada en
nonce,timestampy firma HMAC-SHA256. - Gestión de credenciales mediante variables de entorno (
.env) para evitar exponer claves sensibles. - Manejo estructurado de excepciones de red y timeouts.
- Validación preventiva de credenciales antes de ejecutar las peticiones.
Requisitos Previos
- Python 3.7 o superior (probado con Python 3.13).
- Dependencias:
requests,python-dotenv.
Instalación
-
Clona este repositorio o descarga el script
ecoflow.py. -
Instala las dependencias necesarias. Puedes hacerlo utilizando
pipestándar ouv:# Usando pip pip install requests python-dotenv # O usando uv para mayor velocidad uv pip install requests python-dotenv
Configuración
Para utilizar este script, primero debes registrarte en el portal de desarrolladores de la API de EcoFlow para obtener tus credenciales de acceso (Access Key y Secret Key). También necesitarás tener a la mano el número de serie (SN) de tu equipo.
El script requiere que estas credenciales se pasen como variables de entorno. La forma más sencilla de gestionarlo es creando un archivo .env.
-
En el directorio raíz donde se encuentra tu script, crea un archivo llamado
.env. -
Añade tus credenciales siguiendo este formato:
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 tener
.envlistado dentro de tu archivo.gitignorepara no subir tus credenciales a GitHub por error.
Uso
Una vez que las dependencias estén instaladas y el archivo .env configurado, simplemente ejecuta el script desde la terminal:
python3 ecoflow.py
- Si la configuración es correcta, recibirás en consola la información de cuota y estado del dispositivo en formato JSON.
- Si falta alguna credencial o hay un problema de conectividad con la API, el sistema de logging mostrará un mensaje de error detallado indicando qué debes revisar.
Release files for ecoflow-reader 0.1.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 | |
|---|---|---|---|
| ecoflow_reader-0.1.0.tar.gz | 10.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ecoflow_reader-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.6 kB
Release files / ecoflow_reader-0.1.0.tar.gz
| Download URL | ecoflow_reader-0.1.0.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e1d20dffdf0a29a963426a8e3c9b80421c18b6630d4781c6ae509b5142587ad
|
|
BLAKE2b-256 checksum How to use checksums |
3663184aa9c52ca3434376e6e572635b0d19685e7ea2dc5890f8d69d9d2c19f5
|
| 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.0-py3-none-any.whl
| Download URL | ecoflow_reader-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73adc8a9ae6d469c2f4fbac4180abd76e8793f5879703a481f86523c5169571d
|
|
BLAKE2b-256 checksum How to use checksums |
db15e6c896611fe60db22403d0451bc3520356b647b320a8d0628706320bb2be
|
| 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}
|