Source Code
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="[email protected]"
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.