Files
felhom.eu/scripts/bench/README.md
T
admin 6a1f715a87
gates / gates (push) Successful in 6m43s
Bench: plugmeter reads the N100's metered plug (tinytuya + Home Assistant from the catalog)
scripts/bench/plugmeter.py prints watts/mA/V/kWh as CSV from the Tuya plug on the LAN
(default) or from Home Assistant on demo-hp's guest. 10-minute side by side and a
3-minute control in documentation/audits/plugmeter-2026-10-13/: Home Assistant alone
did not move for 3 minutes, so the LAN reader is the measurement source.
No key, device id or token in the repo; secrets scan 0 hits with a positive control.
2026-10-13 17:07:26 +02:00

34 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# scripts/bench — bench tools that run on DooPlex
## plugmeter.py — the N100's power meter
The N100 demo box (`demo-felhom`) is on a Tuya Wi-Fi plug with a power meter. `plugmeter.py` reads it and
prints CSV (`utc_time, watts, milliamps, volts, kwh_total`) every `--interval` seconds (default 2).
```
~/.venvs/plugmeter/bin/python scripts/bench/plugmeter.py --once # one reading
~/.venvs/plugmeter/bin/python scripts/bench/plugmeter.py --duration 600 > a.csv # 10 minutes
~/.venvs/plugmeter/bin/python scripts/bench/plugmeter.py --source ha --once # through Home Assistant
```
- **`--source tuya` (default) — use this for measurements.** It talks to the plug on the home LAN and
makes it re-measure on every read; a new value every 2 s. Each value is the plug's previous measurement
(it answers a refresh with what it holds), so a row lags by about one interval. About one read in four takes
up to 8 s instead of 2 s; the row is late, not lost.
- **`--source ha` — the backup.** Home Assistant on demo-hp's guest (`https://ha.enkisfelhom.hu`, installed
from the Felhom catalog) reads the plug through Tuya's cloud. **On its own it did not change for 3 minutes**
(2026-10-13); it moves only when something makes the plug report — the tuya reader does. It keeps history and graphs. Its `felhom-bench` user is local-access-only, so the tool connects
to the guest's LAN address and still checks the certificate by name.
Setup (done 2026-10-13, `documentation/audits/plugmeter-2026-10-13/`): a user venv
(`python3 -m venv ~/.venvs/plugmeter && ~/.venvs/plugmeter/bin/pip install tinytuya`), and the files under
`~/.config/felhom-bench/` (700; every file 600): `plug.json` (device id, local key, address, data points),
`ha.json`, `ha.token`, and the tinytuya wizard's output. **None of them ever goes into a repo.**
`kwh_total` is the plug's `add_ele` counter — energy since the plug last reported to the cloud, not a
lifetime total. Use watts × time for energy.
When the plug moves address or is paired again: re-run the tinytuya wizard in `~/.config/felhom-bench/`
(credentials `TUYA_ID`, `TUYA_SECRET`, `TUYA_DEVICE_ID` from `~/.config/credentials`, region `eu`) and
update `plug.json`. Its output prints the key — send it to a file, never to a terminal or a log.