Commit Graph

514 Commits (285fdeb581c485047dd6beb9e9acd6b8798601b9)

Author SHA1 Message Date
Allen Porter 5e49457c65
Add camera/stream platform diagnostics, exercised with nest (#69780) 2022-04-26 22:33:04 -07:00
Marc Mueller 9b9b553521
Disable no-self-use [pylint] (#70641)
* Disable no-self-use

* Remove disable comments
2022-04-25 07:41:01 -07:00
Franck Nijhof c93c7e8eff
Replace Camera STREAM_ constants with StreamType enum (#69871) 2022-04-11 16:27:27 -07:00
Franck Nijhof 93571c2d01
Add EntityFeature enum to Camera (#69072) 2022-04-01 09:38:03 -07:00
J. Nick Koston f5a13fc51b
Add ability to exclude attributes from being recorded by entity domain (#68824) 2022-03-29 20:13:08 -07:00
J. Nick Koston 8e3454e46a
Remove legacy compatiblity for camera platforms that do not support width/height (#68039)
- async_camera_image or camera_image must accept the width and
  height arguments
2022-03-12 20:47:14 +02:00
GitHub Action 66d757115c [ci skip] Translation update 2022-03-11 00:21:48 +00:00
Franck Nijhof 63957787c4
Update PyTurboJPEG to 1.6.6 (#67800) 2022-03-07 23:26:30 +01:00
jan iversen 0d8ff3d724
Add codeowner to internal integrations that are without (#67286) 2022-02-28 09:06:16 +01:00
Paulus Schoutsen 7e4b63690d
Fix camera content type while browsing (#67256) 2022-02-26 10:02:13 +01:00
Paulus Schoutsen 0a6c8f8e6c
Improve not shown handling (#67247) 2022-02-25 11:52:14 -08:00
GitHub Action 6364e81be5 [ci skip] Translation update 2022-02-24 00:17:55 +00:00
Marc Mueller 45d8d04c40
Use assignment expressions [other] (#66882) 2022-02-19 17:22:51 +01:00
Paulus Schoutsen fec8c2ab82
Add support for MJPEG cameras to camera media source (#66499) 2022-02-14 17:04:19 +01:00
uvjustin c222be0958
Catch ConnectionResetError when writing MJPEG in camera (#66245) 2022-02-10 12:25:31 -08:00
Paulus Schoutsen 716a1e2a64
Add camera media source (#65977) 2022-02-08 14:32:02 -08:00
Paulus Schoutsen 08083f399e
Convert some tests to async and drop usage get_test_home_assistant (#64394)
* Fix some tests

* Update MS tests

* Convert last logbook tests to async
2022-01-18 19:37:17 -08:00
Josh Soref ab73d7c347
spelling: components/camera (#64242)
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-01-17 16:27:39 +01:00
Marc Mueller 67c35652f0
Update typing - collections.abc (2) (#63934) 2022-01-12 09:04:37 +01:00
Erik Montnemery 9c9dc4cb8c
Import websocket_api (part 1) (#63905) 2022-01-11 18:24:08 +01:00
Allen Porter 596edc8919
Add a stream_id parameter to the WebRTC provider (#63625)
* Add a stream_id parameter to the WebRTC provider

Add an additional stream id parameter (effectively, the camera entity id)
to allow updating an existing stream source when the strema changes. This
is useful for stream sources that have expiring URLs, like Nest.

* Redefine the provider using a type

* Use old typing methods for type definintion to pass python3.8 pylint
2022-01-10 17:56:18 -08:00
Franck Nijhof c339233421
Update PyTurboJPEG to 1.6.5 (#63803) 2022-01-10 13:28:04 +01:00
Franck Nijhof 31f37f3363
Update PyTurboJPEG to 1.6.4 (#63553) 2022-01-06 08:56:39 -08:00
Allen Porter 81aff973ea
Keep entity state management within entity (#63183)
Simplify the entity state management for webrtc providers, incurring
extra state writes on startup.  Followup post-review comments for PR #62962
2022-01-01 11:22:48 -08:00
Allen Porter 0dee4f85f0
Implement an rtsp to webrtc registry in camera (#62962)
* Implement a webrtc to rtsp support in camera as a registry

Allow integrations to register a provider that can convert an RTSP stream and WebRTC offer to a WebRTC answer. This is
planned to be used by the RTSPtoWebRTC server integration as an initial pass, but could
support other server implementations as well (or even native implementationf or that matter).

* Fix test bug to improve test covergae and restructure statements

* Add missing call to refresh webrtc providers

* Run provider refresh in parallel since it may send RPCs

* Replace for loop with any

* Fix pylint warning to use a generator
2021-12-31 13:44:33 -08:00
uvjustin 9dbba6b7f2
Use lock in Camera.create_stream (#62757)
Rename create_stream to async_create_stream in Camera
Rename get_image to async_get_image in Stream
Rename get_image to async_get_image in KeyFrameConverter
2021-12-25 04:14:43 +08:00
Erik Montnemery cb2c2d98c3
Remove unnecessary checks before calling os.makedirs (#62576) 2021-12-23 09:59:31 +01:00
Allen Porter 6ae7b928ea
Add a camera specific logger to help diagnose stream errors (#61647)
* Add a camera specific logger to help diagnose stream errors

Add a camera specific logger to help users associate stream errors with a particular camera.
Issue #54659

* Apply code review feedback

* Update package name based on manual testing
2021-12-19 19:42:37 -08:00
Allen Porter 647febd7d8
Mark camera unavailable when keepalive stream fails (#62294)
* Mark camera unavailable when keepalive stream fails

Add a listener in stream that notifies camera when the stream state has changed, and
use that to inform the camera `available` property. Update the property to be set
only from the main loop where it is read to reduce thread safety races.

Issue #54659

* Fix pylint import related errors

* Address lint naming errors

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-12-19 09:09:59 -08:00
Juan Jesús García de Soria 4526d25697
Update PyTurboJPEG to v1.6.3 (#60400) 2021-11-27 08:35:07 -10:00
Franck Nijhof 6b9c2d8295
Add shorthand attribute support to Camera platform (#59837) 2021-11-25 16:03:53 +01:00
GitHub Action e98977fb49 [ci skip] Translation update 2021-11-21 00:13:51 +00:00
Allen Porter 8ce3f18295
Remove unused stream_type attribute (#59625)
Remove this stream type that was previously renamed to frontend_stream_type
2021-11-13 04:45:18 -08:00
GitHub Action f00effaba2 [ci skip] Translation update 2021-11-13 00:11:56 +00:00
Marc Mueller 84618fa831
Use assignment expressions 30 (#58714) 2021-10-30 16:33:42 +02:00
Marc Mueller 7063c05127
Use assignment expressions 33 (#58717) 2021-10-30 16:32:41 +02:00
Allen Porter dafea00f41
Rename `stream_type` to `frontend_stream_type` (#57923)
Camera devices may support multiple stream sources so we want to clarify that
this is meant to decide which stream source is used in the frontend only.

Will set stream_type temporarily to allow rollout without breaking nightly,
and this will be removed after frontend is updated.
2021-10-17 20:16:29 -07:00
Marc Mueller 2b72b7b7b9
Use assignment expressions 09 (#57790) 2021-10-17 20:19:56 +02:00
Allen Porter 7d4dd94da8
Add WebSocket API for intiting a WebRTC stream (#57034)
* Add WebSocket API for intiting a WebRTC stream

See https://github.com/home-assistant/architecture/discussions/640

* Increase test coverage for webrtc camera stream

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-07 22:13:14 -07:00
Marc Mueller 565a9fea6b
Import Callable from collections.abc (2) (#56776) 2021-09-29 14:06:51 +02:00
Franck Nijhof 655dc890e4
Upgrade PyTurboJPEG to 1.6.1 (#56571) 2021-09-23 15:34:34 +02:00
Marc Mueller 48bada5a18
Update pylint to 2.11.1 (#56364) 2021-09-18 13:52:59 +02:00
J. Nick Koston fbcf21412d
Only warn once per entity when the async_camera_image signature needs to be updated (#55238) 2021-08-26 09:36:25 -07:00
J. Nick Koston dc851b9dd5
Ensure camera scaling always produces an image of at least the requested width and height (#55033) 2021-08-24 10:44:12 +02:00
Franck Nijhof d8eedaf9fd
Upgrade PyTurboJPEG to 1.5.2 (#54992) 2021-08-21 16:58:25 -05:00
Marc Mueller 69e413ac1e
Update pylint to 2.10.1 (#54963)
* Update pylint to 2.10.0

* useless-suppression

* Consider-using-tuple

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Use dict.items()

* Add pylint disable

* Use pylint 2.10.1

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-08-21 10:41:23 +02:00
J. Nick Koston 1e14b3a0ac
Ensure camera handles non-jpeg image sources correctly (#54474) 2021-08-11 08:12:46 -07:00
J. Nick Koston e99576c094
Pass width and height when requesting camera snapshot (#53835) 2021-08-10 19:33:06 -05:00
jan iversen 19245a5b63
Add CameraEntityDescription to camera integration (#53636) 2021-07-28 21:09:45 +02:00
GitHub Action 0c5ce9cac2 [ci skip] Translation update 2021-07-07 00:11:57 +00:00