- Update apiBase: api.viessmann.com → api.viessmann-climatesolutions.com
(Viessmann renamed their IoT API host; old domain is NXDOMAIN)
- Extend --test-viessmann context to 120s
- Add 30s propagation wait before read-back in both Stage 3 and Restore:
cloud accepts writes immediately but gateway polls on its own schedule,
so GET returns the last confirmed device value with ~30s lag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds GetDHWTemperature() to the Viessmann client (GET on the DHW feature
endpoint) and a --test-viessmann CLI flag that runs three stages without
starting the EMS control loop:
Stage 1: read current DHW setpoint (confirms auth + endpoint path)
Stage 2: write same value back, read-back to confirm round-trip
Stage 3: write +1°C, read-back to confirm, restore original
The +1°C delta is below the heat pump's 5°C hysteresis so the compressor
will not fire, but the change is visible in the Viessmann app for visual
confirmation before trusting the WW boost logic in production.
Usage: ./ems --config /etc/ems/ems-config.yaml --test-viessmann
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>