- Improve ONVIF event handeling
- Compliance with latest beta NVR firmware which includes rich notifications for all channels
- Log errors for unexpected/incompatible ONFIV notifications in order for users to report bugs
- Only log ONVIF errors once
- Info log per ONVIF notification
- Simplify code and reduce code duplication
- raise errors instead of passing booleans and add new error types:
- LoginError
- UnexpectedDataError
- InvalidParameterError
- NotSupportedError
- Add firmware commands
- check_new_firmware
- update_firmware
- update_progress
- Add GetRtspUrl command, use that as primary for get_rtsp_stream_source
- Fall back to newest version of rtsp url when no Encoding available
- Split ai_detected and ai_detection_states, fix bool return type
- Full black compliance
- Add workflow tests for black formatting
- Full mypy compliance
- Add workflow tests for mypy type checking
- Countless small bugfixes for edge cases
**Full Changelog**: https://github.com/starkillerOG/reolink_aio/compare/0.2.3...0.3.0