@scrypted/arlo 0.11.38 → 0.11.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,54 +4,91 @@
4
4
 
5
5
  The Arlo Plugin connects Scrypted to Arlo Cloud, allowing you to access all of your Arlo cameras in Scrypted.
6
6
 
7
- It is highly recommended to create a dedicated Arlo account for use with this plugin and share your cameras from your main account, as Arlo only permits one active login to their servers per account. Using a separate account allows you to use the Arlo app or website simultaneously with this plugin, otherwise logging in from one place will log you out from all other devices.
7
+ Arlo no longer limits active logins per account, so you can use the Arlo app, website, and this plugin simultaneously without logging out of any devices. However, be mindful of any potential conflicts or issues that may arise when using the plugin concurrently with other Arlo services.
8
8
 
9
- The account you use for this plugin must have either SMS or email set as the default 2FA option. Once you enter your username and password on the plugin settings page, you should receive a 2FA code through your default 2FA option. Enter that code into the provided box, and your cameras will appear in Scrypted. Or, see below for configuring IMAP to auto-login with 2FA.
9
+ The account you use for this plugin must have either **SMS** or **email** set as the default 2FA option. Once you enter your username and password on the plugin settings page, you should receive a 2FA code through your default 2FA option. Enter that code into the provided box, and your cameras will appear in Scrypted. Or, see below for configuring IMAP to auto-login with 2FA.
10
10
 
11
11
  If you experience any trouble logging in, clear the username and password boxes, reload the plugin, and try again.
12
12
 
13
- If you are unable to see shared cameras in your separate Arlo account, ensure that both your primary and secondary accounts are upgraded according to this [forum post](https://web.archive.org/web/20230710141914/https://community.arlo.com/t5/Arlo-Secure/Invited-friend-cannot-see-devices-on-their-dashboard-Arlo-Pro-2/m-p/1889396#M1813). Verify the sharing worked by logging in via the Arlo web dashboard.
13
+ > **Note:** If you add or remove cameras in your Arlo account, ensure that you reload this plugin to get the updated camera state from Arlo Cloud.
14
14
 
15
- **If you add or remove cameras from your main Arlo account, or share/un-share/re-share cameras with the Arlo account used with this plugin, ensure that you reload this plugin to get the updated camera state from Arlo Cloud.**
15
+ ---
16
16
 
17
17
  ## General Setup Notes
18
18
 
19
- * Ensure that your Arlo account's default 2FA option is set to either SMS or email.
20
- * Motion events notifications must be turned on in the Arlo app. If you are receiving motion push notifications, Scrypted will also receive motion events. If you are using any downstream plugins (e.g. Homekit), you can disable the Arlo app notifications in your phone's notification settings after they've been enabled inside of the Arlo app. This way, you are not getting double notifications for motion events.
21
- * Disable smart detection and any cloud/local recording in the Arlo app. Arlo Cloud permits one active RTSP/DASH stream, so any smart detection or recording features may prevent downstream plugins (e.g. Homekit) from successfully pulling the video feed after a motion event.
22
- * It is highly recommended to enable the Rebroadcast plugin to allow multiple downstream plugins (e.g. Homekit) to pull the video feed within Scrypted.
23
- * The plugin supports pulling WebRTC, RTSP, or DASH streams from Arlo Cloud. It is recommended to use WebRTC for streaming and RTSP for recording. DASH is inconsistent in reliability, and may return finicky codecs that require additional FFmpeg output arguments, e.g. `-vcodec h264`. *Note that all options will ultimately pull the same video stream feed from your camera, and they cannot be used at the same time due to the single stream limitation. If you have the stream open while Scrypted tries to record, it will not work.*
24
- * If using newer model cameras (e.g. Essential Generation 2) with downstream plugins (e.g. Homekit), the RTSP/DASH streams must be transcoded for streaming and recording. Transcoding can be enabled per camera in the `Extensions` section and you must select transcoding for the streams you are using RTSP/DASH. WebRTC transcoding is not required for streaming, but is required for recording.
25
- * If using WebRTC, it is recommended to leave all settings as `default` in the stream settings. This will allow Scrypted to work the most effeciently as the streams from Arlo Cloud are already compatible with Scrypted and downstream plugins (e.g. Homekit) for streaming. WebRTC has shown to be inconsistent in recordings in downstream plugins (e.g. Homekit) and requires transcoding of the audio, therefore it is recommended to use RTSP for recording when using WebRTC for streaming. It is recommended to set RTSP to `FFmpeg (TCP)` for the parser and leave everything else default. You will set the Local, Remote, and Low Resolution Streams to WebRTC and Local and Remote Recoding Streams to RTSP.
26
- * If using a downstream plugin (e.g. Homekit) and using WebRTC, the recommended RTP Sender in the Homekit plugin is `default`. Even if you are using RTSP to record. If you are only using RTSP/DASH and not using WebRTC at all, the recommended RTP Sender is `FFmpeg`.
27
- * Prebuffering should only be enabled if the camera is wired to a persistent power source, such as a wall outlet, solar panels do not appear to be sufficient. Prebuffering will only work if your camera does not have a battery or `Plugged In to External Power` is selected.
19
+ - **2FA Requirement:** Ensure that your Arlo account's default 2FA option is set to either SMS or email. Without this, you will not be able to log in and use the plugin. The plugin will require you to enter a 2FA code once your credentials are entered. This code is sent to you via your selected method, and you will need to input it into the plugin settings.
20
+
21
+ - **Motion Event Notifications:** Motion event notifications must be enabled in the Arlo app. This is important because when motion is detected, the plugin will receive these events and trigger actions. If you are receiving push notifications directly from Arlo, you can disable these notifications in your phone's settings after enabling them in the Arlo app. This avoids receiving duplicate alerts from both the Arlo app and Scrypted or any other downstream options.
28
22
 
29
- Note that streaming cameras uses extra Internet bandwidth, since video and audio packets will need to travel from the camera through your network, out to Arlo Cloud, and then back to your network and into Scrypted.
23
+ - **Smart Detection & Recording Settings:** Disable smart detection and any cloud or local recording options in the Arlo app. Arlo limits to a single active stream per camera. If smart detection or any recording is enabled, it may conflict with the plugin’s ability to stream video, particularly when motion events trigger. Disabling these features ensures that you can get uninterrupted access to the live feed for downstream services (like HomeKit) to access the video stream properly.
24
+
25
+ - **Rebroadcast Plugin:** It is highly recommended to enable the Rebroadcast Plugin in Scrypted. This will allow multiple downstream integrations (such as HomeKit) to access the video feed from a single camera simultaneously. Without the rebroadcast plugin, only one device or platform can access the video feed at a time.
26
+
27
+ - **Stream Types:** The plugin supports three types of video streams pulled from Arlo Cloud:
28
+ - **WebRTC**: This stream option is the standard connection type for most cameras and doorbells through the Arlo app. The connection process does take a little longer, but does seem to be reliable. Downstream services (like HomeKit) may automatically transcode WebRTC streams for recording because of the audio requirements for HomeKit Secure Video.
29
+ - **Cloud RTSP**: This stream is usually faster in connecting and recording. Downstream services (like HomeKit) may automatically transcode Cloud RTSP streams for live streaming because of the audio requirements for HomeKit Live Streaming.
30
+ - **Cloud DASH**: This stream is the least reliable and may require additional configurations like `-vcodec h264` when used with FFmpeg.
31
+ - **Synthetic Stream**: Entering a name for a Synthetic stream creates a new stream option that feeds one of the streams above into a synthetically transcode the stream on-demand with the ffmpeg arguments provided. You can only feed one stream in at a time here.
32
+
33
+ Note that Arlo’s single-stream limitation means you can only use one of these stream types at a time. If downstream service (like HomeKit) tries to access a camera while the stream is already open, it may prevent recording. Therefore, it is recommended to use the same stream for all streams in Scrypted and the Rebroadcast plugin will handle sending the same stream to multiple places, i.e. streaming while recording.
34
+
35
+ - **Newer Camera Models (e.g., Arlo Essential Gen 2):** If you are using newer models such as the Essential Gen 2, and you are integrating with downstream services (like HomeKit), you may need to transcode the Cloud RTSP/DASH streams for use. This will require using the FFmpeg (TCP) Parser or setting up a Synthetic stream and using the Synthetic stream. This is not necessary for WebRTC streaming, but it is required for recording RTSP/DASH streams.
36
+
37
+ - **Downstream Plugin RTP Sender:** The recommended RTP Sender in HomeKit or similar plugins is `default`. If you have any issues with recording or streaming, try setting the RTP Sender to `FFmpeg`. The default configuration helps ensure compatibility between Scrypted and downstream services.
38
+
39
+ - **Prebuffering:** Enable prebuffering only if the camera is connected to a constant power source (e.g., wall outlet). Solar panels often do not provide sufficient power for prebuffering to function correctly. This feature is most useful for wired cameras with a steady power supply, and will only work when the camera is plugged into an external power source or does not have a battery.
40
+
41
+ > **Bandwidth Usage:** Keep in mind that streaming and recording video uses extra bandwidth, as video and audio streams must travel from your camera to Arlo Cloud, and then from Arlo Cloud to your network, before finally reaching Scrypted. This additional round-trip may affect your network speed and performance.
42
+
43
+ ---
30
44
 
31
45
  ## IMAP 2FA
32
46
 
33
- The Arlo Plugin supports using the IMAP protocol to check an email mailbox for Arlo 2FA codes. This requires you to specify an email 2FA option as the default in your Arlo account settings.
47
+ The plugin supports using **IMAP** to automatically retrieve Arlo 2FA codes from email. Your Arlo account must have **email** selected as the default 2FA method.
48
+
49
+ - Tested with Gmail, but compatible with any IMAP provider.
50
+ - See [Gmail IMAP settings](https://support.google.com/mail/answer/7126229?hl=en).
51
+ - Generate a Gmail [App Password](https://support.google.com/accounts/answer/185833?hl=en) to use in place of your normal password.
34
52
 
35
- The plugin should work with any mailbox that supports IMAP, but so far has been tested with Gmail. To configure a Gmail mailbox, see [here](https://support.google.com/mail/answer/7126229?hl=en) to see the Gmail IMAP settings, and [here](https://support.google.com/accounts/answer/185833?hl=en) to create an App Password. Enter the App Password in place of your normal Gmail password.
53
+ The plugin looks for 2FA codes sent from `do_not_reply@arlo.com`. If you use an email forwarding service (e.g. iCloud Hide My Email), confirm that the sender address is not overwritten, and update the plugin’s IMAP settings accordingly.
36
54
 
37
- The plugin searches for emails sent by Arlo's `do_not_reply@arlo.com` address when looking for 2FA codes. If you are using a service to forward emails to the mailbox registered with this plugin (e.g. a service like iCloud's Hide My Email), it is possible that Arlo's email sender address has been overwritten by the mail forwarder. Check the email registered with this plugin to see what address the mail forwarder uses to replace Arlo's sender address, and update that in the IMAP 2FA settings.
55
+ ---
38
56
 
39
57
  ## Virtual Security System for Arlo Sirens
40
58
 
41
- In external integrations like Homekit, sirens are exposed as simple on-off switches. This makes it easy to accidentally hit the switch when using the Home app. The Arlo Plugin creates a "virtual" security system device per siren to allow Scrypted to arm or disarm the siren switch to protect against accidental triggers. This fake security system device will be synced into Homekit as a separate accessory from the camera, with the siren itself merged into the security system accessory.
59
+ Sirens in HomeKit appear as simple on/off switches, which are easy to accidentally trigger. This plugin creates a virtual security system device for each siren to prevent accidental activation.
42
60
 
43
- Note that the virtual security system is NOT tied to your Arlo account at all, and will not make any changes such as switching your device's motion alert armed/disarmed modes. For more information, please see the README on the virtual security system device in Scrypted.
61
+ - The virtual system is synced to HomeKit as a separate accessory.
62
+ - This is **not tied to actual Arlo Security Modes**—it only protects the siren from accidental activation.
63
+ - See the in-plugin README for details on the virtual security system.
64
+
65
+ ---
44
66
 
45
67
  ## Security System for Arlo Security Modes
46
68
 
47
- In external integrations like Homekit, the Arlo App Security Modes are exposed as a security system. This allows users to change the security mode, Away, Home, or Standby, of the Arlo App from the Home App or the Scrypted Management Console. These security modes in the Arlo App can be used to determine which cameras send notifications. This can be useful when using automations in the Home App to determine when people arrive and leave and which cameras are sending notifications to record.
69
+ The plugin exposes Arlo App Security Modes (Away, Home, Standby) as a security system in Scrypted and HomeKit. This lets you automate camera notification behavior based on mode.
70
+
71
+ ### Example Automation Flow
48
72
 
49
- For example, have all Arlo Cameras set to Stream & Record in the Home App both Home and Away in the Recording Options. Set up the Away Security Mode in the Arlo App to have all cameras send notifications. Set up the Home Security Mode in the Arlo App to only have the cameras you want to send notifications while you are at home. Set up the Standby Security Mode to have none of the cameras send notifications. Now, you can use Automations in the Home App to change the Security Mode of the Virtual Security System so that the Security Mode in the Arlo App changes and only sends notifications for the cameras you want based on your automations. HKSV Recordings are done based on the notifications so even though you are home according to the Home App and the camera is set to Stream & Record in the Home App, it will only record when Scrypted receives the notification.
73
+ 1. In the Home app:
74
+ - Set all cameras to "Stream & Record" for both Home and Away.
75
+ 2. In the Arlo app:
76
+ - Configure the **Away mode** to send notifications from all cameras.
77
+ - Configure the **Home mode** to send notifications from select cameras.
78
+ - Configure **Standby mode** to disable all notifications.
79
+ 3. Use automations in the Home app to switch the Arlo security mode by controlling the virtual system in Scrypted.
50
80
 
51
- Multiple Security Systems are created, one for each location. A location is defined as a User Location, a location created on the account signed into Scrypted, and a Shared Location, a location that is shared from another account to the account signed into Scrypted. Each Location has a name in the Arlo App and this name is passed to Scrypted for identification.
81
+ > Scrypted only receives events from Arlo when notifications are enabled for a camera in the selected security mode. HomeKit Secure Video recordings depend on receiving these notifications.
52
82
 
53
- Note that this will not set up or modify settings of the Security Modes in the Arlo App, only change which one is active.
83
+ Multiple virtual security systems may be created—one per location (user or shared). Each system is labeled according to its location name in the Arlo app.
84
+
85
+ > Note: The plugin does **not** modify your Arlo mode settings—only switches between existing ones.
86
+
87
+ ---
54
88
 
55
89
  ## Video Clips
56
90
 
57
- The Arlo Plugin will show video clips available in Arlo Cloud for cameras with cloud recording enabled. These clips are not downloaded onto your Scrypted server, but rather streamed on-demand. Deleting clips is not available in Scrypted and should be done through the Arlo app or the Arlo web dashboard.
91
+ The plugin will display video clips from Arlo Cloud for cameras with cloud recording enabled.
92
+
93
+ - Clips are streamed on-demand, not downloaded to your Scrypted server.
94
+ - To delete clips, use the Arlo mobile app or web dashboard.
package/dist/plugin.zip CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrypted/arlo",
3
- "version": "0.11.38",
3
+ "version": "0.11.40",
4
4
  "description": "Arlo Plugin for Scrypted",
5
5
  "license": "Apache",
6
6
  "repository": {