Skip to content

Add VAPIX temperature control MVP handler and parsing#811

Open
Kane610 wants to merge 11 commits into
masterfrom
feat/temperature-control-mvp
Open

Add VAPIX temperature control MVP handler and parsing#811
Kane610 wants to merge 11 commits into
masterfrom
feat/temperature-control-mvp

Conversation

@Kane610
Copy link
Copy Markdown
Owner

@Kane610 Kane610 commented May 23, 2026

Summary

  • add a new temperature control model module for /axis-cgi/temperaturecontrol.cgi?action=statusall
  • add a new temperature control handler and register it in Vapix API discovery initialization
  • parse statusall text output into typed items for sensor/heater/fan entries
  • normalize device status values with support for Running[XX] intensity extraction
  • add dedicated tests for temperature parsing and handler update behavior
  • update Vapix integration tests and request/response contract tests

Scope

This is MVP read-only support for statusall.

  • Included: discovery-wired handler + text parsing + typed model + tests
  • Not included: control actions (start/stop), per-device query endpoints, param.cgi trigger updates, param.cgi fallback initialization

Validation

  • uv run pytest tests/test_temperature_control.py tests/test_vapix.py tests/test_request_response_contracts.py
  • uv run ruff check axis tests
  • uv run mypy axis

Notes

  • uv.lock was intentionally left out of this PR to keep scope focused on temperature API implementation.

Kane610 added 10 commits May 23, 2026 18:58
- Inlined item decoding in GetStatusAllResponse.decode()
- Removed _decode_temperature_item helper
- No behavior change; code is now simpler and idiomatic
- All tests and checks pass, coverage >95%
- Add guideline to include a brief, informative module-level docstring at the top of every new model or interface file, referencing VAPIX documentation when relevant.
@Kane610 Kane610 force-pushed the feat/temperature-control-mvp branch from c8307de to bc0b9fd Compare May 23, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant