Commit Graph

173 Commits

Author SHA1 Message Date
Franck Nijhof
f98d95c76f Fix camera token to trigger authentication IP ban (#75870) 2022-07-28 19:07:59 +02:00
uvjustin
c5912f0fae Cleanup unused camera constants (#75772)
Cleanup unused camera constants after #75452
2022-07-26 23:04:08 +02:00
uvjustin
d989e4373d Remove websocket_api send_big_result (#75452) 2022-07-19 21:08:11 -07:00
uvjustin
6b60fb9541 Don't use executor in send_big_result (#75427) 2022-07-19 08:40:23 -05:00
uvjustin
01a4a83bab Improve stream playback on high latency cameras (#72547)
* Disable LL-HLS for HLS sources
* Add extra wait for Nest cameras
2022-06-17 01:48:52 +10:00
uvjustin
73f2bca377 Make Stream.stop() async (#73107)
* Make Stream.start() async
* Stop streams concurrently on shutdown
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-06-08 00:10:53 +08:00
J. Nick Koston
f7626bd511 Speed up camera tokens (#73098) 2022-06-05 12:28:57 -10:00
Franck Nijhof
8f4caf4141 Clean up accessing event helpers via hass (#72011) 2022-05-17 19:36:29 +02:00
uvjustin
32b3ce5727 Clean up use_wallclock_as_timestamps in generic (#71940) 2022-05-16 09:06:54 -07:00
uvjustin
221b77297e Declare exports from stream explicitly (#71898) 2022-05-15 17:58:57 +02:00
Trevor North
074dfd5a21 Allow RTMP sources for RTSPtoWeb (#71695) 2022-05-11 15:05:42 -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
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
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
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
Franck Nijhof
6b9c2d8295 Add shorthand attribute support to Camera platform (#59837) 2021-11-25 16:03:53 +01: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
Marc Mueller
84618fa831 Use assignment expressions 30 (#58714) 2021-10-30 16:33:42 +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
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
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
Paulus Schoutsen
6a7968593d Make camera source check faster (#51035) 2021-05-24 17:27:13 +01:00
Dermot Duffy
2e1037005c Allow camera stream to fail safely (#50728) 2021-05-17 20:34:25 -07:00
Ruslan Sayfutdinov
8e2b3aab44 Enable strict type checks for camera platform (#50395) 2021-05-10 15:12:15 +02:00
Ruslan Sayfutdinov
9b058551f7 Enable type checks for camera platform (#50179) 2021-05-09 18:04:57 +02:00
Tobias Sauerwein
2b79c91813 Clean up camera service schema (#49151) 2021-04-13 13:07:05 +02:00
Erik Montnemery
346a724ac3 Mark base components' state_attribute @final, rename others to extra_state_attributes (#48161)
* Mark base state_attributes @final, rename others to extra_state_attributes

* Fix calendar, update tests
2021-03-21 10:38:24 +01:00
Allen Porter
4aa4f7e285 Rollback stream StreamOutput refactoring in PR#46610 (#46684)
* Rollback PR#46610

* Update stream tests post-merge
2021-02-20 06:49:39 -08:00
Allen Porter
4236f6e5d4 Fix stream keepalive on startup (#46640)
This was accidentally dropped in a previous PR that refactored the interaction
between stream and camera. This is difficult to test from the existing
preload stream tests, so leaving untested for now.
2021-02-16 20:46:44 -08:00
Allen Porter
08201d146b Separate HLS logic out of core StreamOutput to prepare for discontinuity (#46610)
Separate the HLS stream view logic out of StreamOutput since the hls
stream view is about to get more complex to track discontinuities. This
makes the idle timeout, shutdown, and coupling between hls and record
more explicit.
2021-02-16 06:59:43 -08:00
Allen Porter
b33753f334 Move camera timeouts to constants (#46262)
Addresses feedback from pr #45431.  Also removes an redundant `create_stream` timeout.
2021-02-08 21:21:14 -08:00