v0.3.2 - Command sniffer (capture official-app payloads)
Diagnostic release to unblock models where commands are accepted by the cloud (HTTP 200) but the machine stays silent (e.g. Eletta Explore).
Added
- Command sniffer (passive diagnostic). The coordinator now watches the binary command channel (
data_request/app_data_request) and the response channel on every poll. When a command is written by the official Coffee Link app (one this integration did not send), its exact bytes are captured, decoded, and logged (CAPTURED app->machine command ...). - New diagnostic sensor "Last Captured Command". State = the captured base64 frame; attributes decode it (family, beverage, action, recipe params, CRC validity, timestamp) and include
matches_integration- whether the app structural bytes (payload + CRC, timestamp ignored) equal what this integration would generate. That is the ground-truth needed to tell a wrong-payload bug apart from an environmental one. decode_command/builder_structural_b64/summarize_decodedhelpers (pure, 17 unit tests over real captured frames).
How to use (if your machine ignores commands)
- Update to v0.3.2 and reload the integration.
- Open the official Coffee Link app and brew a beverage.
- In Developer Tools -> States, read
sensor.<machine>_last_captured_command. - If
matches_integration: false, paste the attributes into an issue - the app uses different bytes for your model and the builder can be fixed.
Notes
- No extra API calls and no change to command encoding - safe for the reference PrimaDonna Soul.