Emporia Energy
v1.0.0Direct Emporia Vue energy queries via Emporia cloud (PyEmVue) or local ESPHome API, including guidance on choosing/configuring cloud vs local modes and running list/summary/circuit commands.
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The skill clearly implements Emporia cloud (PyEmVue) and local ESPHome access and requires the corresponding credentials (EMPORIA_EMAIL/PASSWORD or ESPHOME_HOST/API_KEY). However, registry metadata at the top of the submission lists no required env vars or binaries while the SKILL.md and scripts clearly require EMPORIA_MODE and use python3 and several credential environment variables — this metadata mismatch should be corrected.
Instruction Scope
SKILL.md instructs the agent to run the included Python scripts and to set the expected env vars. The scripts only read the declared environment variables, contact either the Emporia cloud (via pyemvue) or a local ESPHome API, and produce JSON output. There are no instructions to read unrelated system files or send data to unexpected endpoints.
Install Mechanism
There is no remote install step in the skill bundle (instruction-only install), and dependencies are provided as simple pip requirements files (pyemvue, aioesphomeapi). This is a low-risk, typical approach. As always, installing pip packages carries normal supply-chain risk — review/verify packages if needed.
Credentials
The credentials the skill requires (Emporia account email/password for cloud mode or ESPHome host/API key/password for local mode) are appropriate for its functionality. The minor concern is that the registry metadata declared no required env vars while SKILL.md and the scripts clearly expect EMPORIA_MODE and the credentials — the mismatch could confuse users and automation that grants envs. The number and sensitivity of env vars is proportional to the task, but they are sensitive and should be supplied only when using the skill.
Persistence & Privilege
The skill does not request persistent or elevated platform privileges (always:false). It doesn't modify other skills or system-wide config. Autonomous invocation is allowed (default) which is normal — note that an autonomously-invokable skill that has network access will use provided credentials when run.
Assessment
This skill appears to do what it says: query Emporia cloud via pyemvue or a locally flashed ESPHome device using aioesphomeapi. Before installing: (1) be aware you must provide sensitive credentials (EMPORIA_EMAIL/EMPORIA_PASSWORD for cloud or ESPHOME_HOST plus ESPHOME_API_KEY/ESPHOME_PASSWORD for local); supply them only if you trust the skill and understand where they will be stored and used. (2) The registry metadata omitted required env/binary declarations — verify you set EMPORIA_MODE and the correct env vars when enabling the skill. (3) Install dependencies inside an isolated virtualenv and review pyemvue/aioesphomeapi package versions if you have supply-chain concerns. (4) Because the skill's source/homepage is unknown, prefer to run it locally first (manual invocation) to confirm behavior before enabling autonomous invocation.Like a lobster shell, security has layers — review code before you run it.
latest
Emporia Energy Skill
Use the scripts in {baseDir}/scripts to query Emporia Vue data directly.
Modes are selected with EMPORIA_MODE:
cloud: Emporia cloud API via PyEmVue (like the Home Assistant integration)esphome: Local ESPHome API (for flashed devices)
Choose a mode (cloud vs local)
- Use cloud if your Emporia device is still on stock firmware or you want the simplest setup. Requires Emporia account credentials and internet access.
- Use esphome only if the device is flashed with ESPHome and on your LAN. Requires the device IP/hostname and native API access on port 6053.
If you are unsure whether the device is ESPHome-flashed, choose cloud mode.
Environment
Cloud mode
EMPORIA_EMAILEMPORIA_PASSWORD
Optional:
EMPORIA_SCALE(MINUTE,SECOND,MINUTES_15,DAY,MONTH) - defaults toMINUTE
ESPHome mode
ESPHOME_HOSTESPHOME_PORT(optional, default6053)ESPHOME_API_KEY(Noise PSK, base64) orESPHOME_PASSWORD(legacy)
Configuration steps
Cloud:
- Set
EMPORIA_MODE=cloud. - Set
EMPORIA_EMAILandEMPORIA_PASSWORD. - (Optional) Set
EMPORIA_SCALEto control power vs energy units. - Run
listfirst to confirm channels, thensummaryorcircuit <name>.
ESPHome:
- Ensure the device is flashed with ESPHome and on your LAN.
- Set
EMPORIA_MODE=esphome. - Set
ESPHOME_HOSTto the device IP/hostname (not Home Assistant). - If the ESPHome node uses encryption, set
ESPHOME_API_KEY(base64 Noise PSK). - Run
listfirst to confirm channels, thensummaryorcircuit <name>.
Commands
The scripts accept:
summary(default)listcircuit <name>
Usage
Cloud:
export EMPORIA_MODE=cloud
export EMPORIA_EMAIL="you@example.com"
export EMPORIA_PASSWORD="..."
python {baseDir}/scripts/emporia_cloud.py summary
ESPHome:
export EMPORIA_MODE=esphome
export ESPHOME_HOST="192.168.1.50"
export ESPHOME_API_KEY="base64-noise-psk"
python {baseDir}/scripts/emporia_esphome.py summary
Dependencies (pip by default)
Cloud:
python3 -m venv .venv
source .venv/bin/activate
pip install -r {baseDir}/requirements-cloud.txt
ESPHome:
python3 -m venv .venv
source .venv/bin/activate
pip install -r {baseDir}/requirements-esphome.txt
Optional: you can use uv instead of pip if preferred.
Output
Scripts emit JSON with:
- timestamp
- unit
- total (best-effort)
- top circuits
- channels used
Safety
- Never print secrets (passwords, tokens, keys).
- Do not make hardware or panel wiring recommendations.
Comments
Loading comments...
