Code Monkey home page Code Monkey logo

homebridge-arlo's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar devbobo avatar djelibeybi avatar donavanbecker avatar gatopharaoh avatar smolsoftboi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-arlo's Issues

No base but three movement sensors

After installing and updating, editing the config.json, I search for new accessories in the home app.
The base doesn't show up, but all three cameras. I can only add one of them though. And when I do it shows up in the app as a movement sensor, which by the way doesn't react to any movement (yes, I've been dancing in front of all three).

What am I doing wrong?

2FA support mandated

Received an email saying that 2FA would be a requirement by the end of the year. Is there any plan (I know it hasn’t been updated in a while) to update this to include this else this plugin will no longer work beyond that date. I have the original base station and use it as a reliable way to activate and deactivate the system through Apple Home.

I know I could look at adding it, but have 0 coding experience and totally dependent on other more skilled people than myself for this functionality.

Thanks

Essential Camera

Not able to stream

Describe The Bug: Snapshots come in but when you try to view the video it goes to not responding after a few minutes of loading.

To Reproduce: Try to Stream.

Expected behavior: Video Should Stream.

Homebridge Config:

{
            "name": "Arlo",
            "email": "**************",
            "password": "**************",
            "include_cameras": true,
            "streaming": {
                "videoProcessor": "ffmpeg",
                "videoDecoder": "libx264",
                "videoEncoder": "libx264",
                "audioEncoder": "libopus",
                "packetSize": "1316",
                "maxBitrate": "300"
            },
            "platform": "Arlo"
        }

Environment:

  • Node.js Version: 14.7.0
  • NPM Version: 6.14.7
  • Homebridge Version: 1.2.0-beta.34
  • Homebridge Arlo Version: 2.1.0
  • Homebridge Config UI X Plugin Version: 4.25.1-test.5
  • Operating System: macOS

Can't set mode to Night/Home

I've configured modes correctly, mapping home_arm to mode2 and night_arm to mode3, and the homebridge user is correct. From what I see, the request to set the mode succeeds, I get a notification telling me it was changed, and then quickly the mode gets modified to the default mode.

The request made looks like:
Arlo:REST {"url":"https://arlo.netgear.com/hmsweb/users/devices/notify/<redacted>","method":"POST","body":{"action":"set","resource":"modes","publishResponse":true,"properties":{"active":"mode3"},"from":"<redacted>","to":"<redacted>"},"json":true,"jar":true,"headers":{"xCloudId":"<redacted>","User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS <redacted> like Mac OS X) AppleWebKit/<redacted>(KHTML, like Gecko) Mobile/<redacted> NETGEAR/v1 (iOS Vuezone)","Authorization":"<redacted>"}}

You can see mode3 was selected, which is correct as I mapped it.

The response is simple:

Arlo:REST {"success":true}

After that, I observe the following log repeats a bit for a number of devices.

EventedHTTPServer [] Sending HTTP event '4.11' with data: {"characteristics":[{"aid":4,"iid":11,"value":2}]}

I then see the following:

EventedHTTPServer [::ffff:10.0.0.3] Sending HTTP event '4.10' with data: {"characteristics":[{"aid":4,"iid":10,"value":1}]}

^^ that value:1 seems suspicious.

My config is super-simple:

{
                "platform": "Arlo",
                "name": "Arlo",
                "email": "<redacted>",
                "password": "<redacted>",
                "stay_arm": "mode2",
                "night_arm": "mode3",
                "interval": "6000"
        }

I have the latest version of everything. I've changed all the calls to debugComm locally to call JSON.stringify in order to properly print the entire body, otherwise arrays get printed as [Array].

Work with Arlo Q?

I have two Arlo Q's that I can help test with if needed. All I can access right now is my basestation, which doesn't really help much.

Automatic state-check from server

First of all thank you for your hard work, I really appreciate that!

I was wondering if it was possible to add an automatic state check from server. I mean, let's suppose a member of your family turns on the cameras from the official app for Android: the system is obviously armed but on HomeKit it is not as the alarm was armed in a different way!

Is there a way to implement an automatic state check from the server? (every five minutes or something)

I hope my words will help to make this plugin even better!

2.1.0 stopping homebridge

Describe The Bug:
Updated to 2.1.0 and now Homebridge (1.1.0 or 1.1.1) won't start. Using Arlo Pro cameras. Homebridge never successfully starts, keeps trying. Removing the homebridge-arlo plugin/config allows Homebridge to start. No issues previous to upgrade.

To Reproduce:
Using Homebridge 1.1.0 or 1.1.1, set up homebridge-arlo 2.1.0

Expected behavior:
Expected behavior is successful Homebridge startup while using the plugin.

Logs:
config.json contains this:
{
"platform": "Arlo",
"name": "Arlo",
"email": "myaccountusedfortheplugin",
"password": "mypassword",
"stay_arm": "mode2",
"interval": 6000
},

[6/17/2020, 10:18:20 AM] TypeError: Cannot read property 'videoProcessor' of undefined
at new ArloCameraSource (/usr/local/lib/node_modules/homebridge-arlo/ArloCameraSource.js:26:38)
at ArloPlatform.addAccessory (/usr/local/lib/node_modules/homebridge-arlo/index.js:94:45)
at ArloPlatform. (/usr/local/lib/node_modules/homebridge-arlo/index.js:147:26)
at Arlo.emit (events.js:311:20)
at Arlo. (/usr/local/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:49:26)
at Request._callback (/usr/local/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:310:21)
at Request.self.callback (/usr/local/lib/node_modules/homebridge-arlo/node_modules/request/request.js:185:22)
at Request.emit (events.js:311:20)
at Request. (/usr/local/lib/node_modules/homebridge-arlo/node_modules/request/request.js:1154:10)
at Request.emit (events.js:311:20)
at IncomingMessage. (/usr/local/lib/node_modules/homebridge-arlo/node_modules/request/request.js:1076:12)
at Object.onceWrapper (events.js:417:28)
at IncomingMessage.emit (events.js:323:22)
at endReadableNT (_stream_readable.js:1204:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)

Error starting plugin: cannot read property 'videoProcessor' of type undefined

Describe The Bug:
This seems to be the same/similar bug as described here: #57 (comment)
I tried to add the property "videoProcessor": "ffmpeg" to the config.json, but that didn't help either. I don't use the cameras for streaming through Homebridge, only use it for setting armed/disarmed state of Arlo.

To Reproduce:
I upgraded the homebridge-Arlo plugin from 0.0.3 to 2.0.1. Restarted homebridge, it crashed out and will not stay running.

Expected behavior:
I expected it to load the new plugin without crashing.

Logs:

 [6/27/2020, 4:21:46 PM] TypeError: Cannot read property 'videoProcessor' of undefined
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at new ArloCameraSource (/usr/lib/node_modules/homebridge-arlo/ArloCameraSource.js:26:38)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at ArloPlatform.addAccessory (/usr/lib/node_modules/homebridge-arlo/index.js:94:45)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at ArloPlatform.<anonymous> (/usr/lib/node_modules/homebridge-arlo/index.js:147:26)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at Arlo.emit (events.js:315:20)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at Arlo.<anonymous> (/usr/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:49:26)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at Request._callback (/usr/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:310:21)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at Request.self.callback (/usr/lib/node_modules/homebridge-arlo/node_modules/request/request.js:185:22)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at Request.emit (events.js:315:20)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at Request.<anonymous> (/usr/lib/node_modules/homebridge-arlo/node_modules/request/request.js:1154:10)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at Request.emit (events.js:315:20)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at IncomingMessage.<anonymous> (/usr/lib/node_modules/homebridge-arlo/node_modules/request/request.js:1076:12)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at Object.onceWrapper (events.js:421:28)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at IncomingMessage.emit (events.js:327:22)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at endReadableNT (_stream_readable.js:1221:12)
Jun 27 16:21:46 raspberrypi homebridge[22829]:     at processTicksAndRejections (internal/process/task_queues.js:84:21) ```

**Homebridge Config:**

```json
"platform": "Arlo",
��������"name": "Arlo",
��������"email": "myusername",
��������"password": "mypassword",
��������"stay_arm": "mode2",
��������"night_arm": "mode3",
��������"interval": 3000,
��������"videoProcessor": "ffmpeg"
��������}, ```

**Screenshots:**

**Environment:**

* **Node.js Version**: 12.18.0
* **NPM Version**: 6.14.4
* **Homebridge Version**: 1.1.1
* **Homebridge Config UI X Plugin Version**: NOT USING THIS PLUGIN
* **Operating System**: Raspbian

Avoid camera discovery

Hi, I would understand if is it possible avoid discovery of camers: after homebridge startup I receive the following message:

[Arlo] Found: Camera - xxxxx [xxxxxxxx]

but I need only commands for base station (already available). Moreover I don't want to see all cameras available in Homekit when I add new device.
Is there a flag to avoid this?

Thanks

Should the basestation be treated as a security system?

The 4-states vs 2-states thing is a bit weird, but most unhelpfully, HomeKit does not allow presence events to automatically trigger state changes in security systems.

I wanted to set up HomeKit automations such that if I go out during the day, the Arlo will be armed, but because it's a security system, HomeKit requires me to confirm the state change manually on my phone, which makes the automation pretty useless. It can be worked around with an additional HomeKit device that triggers the Arlo, but I can't help but wonder if it might just be easier/better to have homebridge-arlo register the base station as a simple switch.

Can't get stay_arm or night_arm modes to work

I'm not sure if this is a bug, a change in the Arlo API or user error, but I can't seem to get either of the stay_arm or night_arm modes to trigger via HomeKit.

I can see via the debug logs that homebridge-arlo is sending the right mode name (Night) and it seems to get a success: true response::

Arlo { url: 'https://arlo.netgear.com/hmsweb/users/devices/notify/[REDACTED]',
Feb 10 15:14:42 homebridge homebridge[31492]:   method: 'POST',
Feb 10 15:14:42 homebridge homebridge[31492]:   body:
Feb 10 15:14:42 homebridge homebridge[31492]:    { action: 'set',
Feb 10 15:14:42 homebridge homebridge[31492]:      resource: 'modes',
Feb 10 15:14:42 homebridge homebridge[31492]:      publishResponse: true,
Feb 10 15:14:42 homebridge homebridge[31492]:      properties: { active: 'Night' },
Feb 10 15:14:42 homebridge homebridge[31492]:      from: '[REDACTED]',
Feb 10 15:14:42 homebridge homebridge[31492]:      to: '[REDACTED]' },
Feb 10 15:14:42 homebridge homebridge[31492]:   json: true,
Feb 10 15:14:42 homebridge homebridge[31492]:   jar: true,
Feb 10 15:14:42 homebridge homebridge[31492]:   headers:
Feb 10 15:14:42 homebridge homebridge[31492]:    { xCloudId: '[REDACTED]',
Feb 10 15:14:42 homebridge homebridge[31492]:      'User-Agent': 'request',
Feb 10 15:14:42 homebridge homebridge[31492]:      Authorization: '[REDACTED]' } }
Feb 10 15:14:43 homebridge homebridge[31492]: 2018-02-10T15:14:43.890Z Arlo { success: true }

Interestingly, Home reports that "Arlo was armed for night" or "Arlo was armed for stay", but it actually just switches to "Armed" in both cases when I check in the Arlo app, not the custom "Home" or "Night" modes I've configured.

Arlo Baby music playback control (as switch)

Is your feature request related to a problem? Please describe.
Arlo Baby has native HomeKit support for the camera, lights, and sensors. However the lullaby/music playback is not part of it.

Describe the solution you'd like
Expose arlo baby lullaby playback state with a switch, so users can toggle play/pause from Home and Siri.

Describe alternatives you've considered
n/a

Scheduled state

Is your feature request related to a problem? Please describe.
Need a state to set the arlo to Scheduled Mode in arlo interface modes

Describe the solution you'd like
Change Homebridge Night mode to use the Scheduled mode

Describe alternatives you've considered
Away and off can be used for arm and disarm

Additional context
And Away can be used for custom modeX modes that was created in Arlo Modes

    {
        "name": "Arlo",
        "email": "[email protected]",
        "password": "Nianta1991",
        "Away": "Schedule",
        "off": "mode0",                              (( Or Mode X)) to disarm
        "streaming": {
            "videoDecoder": "h264_mmal",
            "videoEncoder": "h264_omx",
            "packetSize": 564
        },
        "platform": "Arlo"
    }
]

}

Cannot run homebridge

====================
[8/12/2017, 3:51:44 PM] ERROR LOADING PLUGIN homebridge-arlo:
[8/12/2017, 3:51:44 PM] Error: Plugin /usr/local/lib/node_modules/homebridge-arlo requires a HomeBridge version of >=0.4.1 which does not satisfy the current HomeBridge version of 0.3.4. You may need to upgrade your installation of HomeBridge.
at Plugin.load (/usr/local/lib/node_modules/homebridge/lib/plugin.js:56:11)
at Server. (/usr/local/lib/node_modules/homebridge/lib/server.js:112:14)
at Array.forEach (native)
at Server._loadPlugins (/usr/local/lib/node_modules/homebridge/lib/server.js:108:22)
at new Server (/usr/local/lib/node_modules/homebridge/lib/server.js:43:24)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:26:16)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
[8/12/2017, 3:51:44 PM] ====================
[8/12/2017, 3:51:47 PM] Loaded plugin: homebridge-nest
[8/12/2017, 3:51:47 PM] Registering platform 'homebridge-nest.Nest'
[8/12/2017, 3:51:47 PM] ---
[8/12/2017, 3:51:48 PM] Loaded plugin: homebridge-philipshue
[8/12/2017, 3:51:48 PM] Registering platform 'homebridge-philipshue.PhilipsHue'
[8/12/2017, 3:51:48 PM] ---
[8/12/2017, 3:51:48 PM] Loaded plugin: homebridge-platform-myq
[8/12/2017, 3:51:48 PM] Registering platform 'homebridge-platform-myq.MyQ'
[8/12/2017, 3:51:48 PM] ---
[8/12/2017, 3:51:48 PM] Loaded plugin: homebridge-xbox-one
[8/12/2017, 3:51:48 PM] Registering accessory 'homebridge-xbox-one.Xbox'
[8/12/2017, 3:51:48 PM] ---
[8/12/2017, 3:51:48 PM] Loaded config.json with 0 accessories and 3 platforms.
[8/12/2017, 3:51:48 PM] ---
[8/12/2017, 3:51:48 PM] Loading 3 platforms...
[8/12/2017, 3:51:48 PM] Initializing Nest platform...
[8/12/2017, 3:51:48 PM] Fetching Nest devices.
[8/12/2017, 3:51:48 PM] [MyQ Platform] Initializing MyQ platform...
/usr/local/lib/node_modules/homebridge/lib/api.js:106
throw new Error("The requested platform '" + name + "' was not registered by any plugin.");
^

Error: The requested platform 'Arlo' was not registered by any plugin.
at API.platform (/usr/local/lib/node_modules/homebridge/lib/api.js:106:13)
at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:263:45)
at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:71:36)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:40:10)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3

Siri commands not working remotely

I'm currently overseas and noticed that Siri won't control Arlo remotely (out of the house). If I try the documented phrases, here's how she responds: "Sorry, I can't control your Home Security System."

Also, I can't get her to even think about switching to night mode because she always hears "tonight" instead of "to night" which confuses the poor thing.

If someone can confirm whether the commands work inside the house, I'm happy to update the README.md to document the restriction about using Siri at home vs away from home.

The streaming-pr ffmpeg command doesn't work with the original Arlo cameras

Ping @cbpowell and @devbobo

The ffmpeg command generated by ArloCameraSource.js assumes there is both a video and audio stream delivered by Arlo. However, the original Arlo cameras do not have a microphone therefore there is no audio stream.

If I change the video stream to -map 0:0 and comment out the entire audio stream processing block then the live stream works* just fine:

--- ArloCameraSource.js.orig	2018-12-20 17:59:11.749436930 +1100
+++ ArloCameraSource.js	2018-12-20 18:03:18.785305480 +1100
@@ -469,7 +469,7 @@
                     // Video
                     let ffmpegCommand = '-rtsp_transport tcp' +
                     vDecoder +
-                    ' -re -i ' + streamURL + ' -map 0:1' +
+                    ' -re -i ' + streamURL + ' -map 0:0' +
                     ' -c:v ' + vEncoder +
                     ' -pix_fmt yuv420p' +
                     ' -r ' + fps +
@@ -490,24 +490,24 @@
                     '&pkt_size=' + packetsize;

                     // Audio
-                    ffmpegCommand+= ' -map 0:0' +
-                    ' -acodec ' + acodec +
-                    additionalAudioCommands +
-                    ' -flags +global_header' +
-                    ' -f null' +
-                    ' -ar ' + asamplerate + 'k' +
-                    ' -b:a ' + abitrate + 'k' +
-                    ' -bufsize ' + abitrate * 2 + 'k' +
-                    ' -ac 1' +
-                    ' -payload_type 110' +
-                    ' -ssrc ' + audioSsrc +
-                    ' -f rtp' +
-                    ' -srtp_out_suite AES_CM_128_HMAC_SHA1_80' +
-                    ' -srtp_out_params ' + audioKey.toString('base64') +
-                    ' srtp://' + targetAddress + ':' + targetAudioPort +
-                    '?rtcpport=' + targetAudioPort +
-                    '&localrtcpport=' + targetAudioPort +
-                    '&pkt_size=' + packetsize;
+                    //ffmpegCommand+= ' -map 0:1?' +
+                    //' -acodec ' + acodec +
+                    //additionalAudioCommands +
+                    //' -flags +global_header' +
+                    //' -f null' +
+                    //' -ar ' + asamplerate + 'k' +
+                    //' -b:a ' + abitrate + 'k' +
+                    //' -bufsize ' + abitrate * 2 + 'k' +
+                    //' -ac 1' +
+                    //' -payload_type 110' +
+                    //' -ssrc ' + audioSsrc +
+                    //' -f rtp' +
+                    //' -srtp_out_suite AES_CM_128_HMAC_SHA1_80' +
+                    //' -srtp_out_params ' + audioKey.toString('base64') +
+                    //' srtp://' + targetAddress + ':' + targetAudioPort +
+                    //'?rtcpport=' + targetAudioPort +
+                    //'&localrtcpport=' + targetAudioPort +
+                    //'&pkt_size=' + packetsize;
  • assuming you have a new enough version of ffmpeg. I run Homebridge on an Oracle Linux 7 box and I installed ffmpeg-2.8.15-1.el7.nux.x86_64.rpm from Nux Desktop but 2.8.15 is too old to handle the stream from Arlo as you require ffmpeg 3.4 or higher for the stream source.

When I upgraded to ffmpeg-3.4.2-1.el7_5.awel.0.x86_64.rpm from AWEL Media Packages it progressed from the Operation Not Permitted error I was getting initially. Once the stream actually started, then it barfed on the video/audio mismatch issue.

So, some logic is needed to determine whether the camera has a microphone or not and build the ffmpeg command accordingly.

BTW, I grabbed https://github.com/jeffreydwalter/arlo and tested with https://github.com/jeffreydwalter/arlo/blob/master/examples/arlo-streamingvideo.py and my original Arlo generates the following video:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : 4N7168730FD8D_1545290171659
    encoder         : Lavf57.83.100
  Duration: 00:00:10.03, start: 0.000000, bitrate: 523 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x352, 520 kb/s, 24.64 fps, 24 tbr, 90k tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler

Hope that helps! I'm not a node developer, but if I get a chance over the break I might try and fix this myself and submit a PR. But no guarantees I'll have the time, as I'm a (very) newly married man.

Arlo Baby

Would it be possible to use Arm/Disarm function of the plugin with the Arlo Baby and have the other HomeKit things work via the HomeKit support?

I installed the plugin, but the log shows:

[10/23/2019, 9:10:08 AM] [Baby] Initializing Arlo platform...
[10/23/2019, 9:10:08 AM] Loading 0 accessories...

Nothing Shows Up in Home app

After installing and configuring this plugin, my Arlo Baby camera is detected but nothing shows up in the Home app.

In the log, the camera is detected...

[2019-2-10 22:05:37] [Arlo] Found: Camera - Bedroom CCTV [50E177S4472E2]

I went through some of the code and it seems that this.api.publishCameraAccessories("homebridge-arlo", [accessory]); has been called correctly and on homebridge's library, the right accessory object was received.

[2019-2-10 22:05:37] publishCameraAccessories 'homebridge-arlo' {[ PlatformAccessory {
    displayName: '50E177S4472E2',
    UUID: '9a3e791c-4cfb-4808-a307-498177a9d276',
    category: 17,
    services: [ [Service], [Service], [Service], [Service], [Service] ],
    reachable: false,
    context: {},
    cameraSource: 
     ArloCameraSource {
       _events: {},
       _eventsCount: 0,
       _maxListeners: undefined,
       log: [Function],
       accessory: [Circular],
       device: [ArloCamera],
       services: [Array],
       streamControllers: [Array],
       lastSnapshot: null } } ]}

Plugin does not arm the camera anymore

Good morning, this is serious.

It seems the plugin does not activate the cameras anymore. I tried changing the password and re-installing the plugin.

Can anybody confirm?
Thanks

Move NPM access.

Are you wanting npm access so you can control homebridge-Arlo on there? Or are you okay with how we have it right now? Also if you are wanting to get npm transferred over to, you should join the discord server to make the transition easier.

Arlo Cameras are not responding when i try to connect from outside of my WiFi

Hey all,

i do have an issue with the Arlo plugin and might some one else also have this issue or probably a solution :)

Yesterday i installed the following plugin - https://github.com/cbpowell/homebridge-arlo.git and completed all the described actions below to configure streaming with Raspberry PI3.

My setup is:
- Apple TV 4k (5th gen) as Apple Home Hub
- Raspberry PI3 with Debian Stretch Lite and Homebridge (0.4.45)
- iPad Pro / Mini and iPhone
- a separate Arlo account only for the Homebridge Plugin
- Three Arlo Pro Cameras with Basestation and one Arlo Pro 2 which seems to be unsupported by this plugin right now)

I’m able to open and view the live stream, but only when i’m connected to my WiFi (same network were are ATV, iPad, PI connected too)

If i’m outside of my WiFi and connected via 3G / 4G i always get the message „camera is not responding“.

I tried to use the iPad Mini as Apple Home Hub (connected to power and screen always on) - but this also won’t help.

The log of Homebridge doesn’t tell me anything helpful. :(

Any Ideas?
Daniel

Plugin broken in Homebridge 1.0.1

Errors out, preventing Homebridge startup.

[37m[4/27/2020, 8:40:53 AM] [39m[31mTypeError: Cannot read property 'length' of undefined[39m [31m at Object.encode (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/tlv.ts:18:14)[39m [31m at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/camera/RTPStreamManagement.ts:1160:39[39m [31m at Array.forEach (<anonymous>)[39m [31m at StreamController.RTPStreamManagement._supportedVideoStreamConfiguration (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/camera/RTPStreamManagement.ts:1153:31)[39m [31m at StreamController.RTPStreamManagement (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/camera/RTPStreamManagement.ts:508:51)[39m [31m at new StreamController (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/camera/RTPStreamManagement.ts:1375:5)[39m [31m at ArloCameraSource._createStreamControllers (/usr/local/lib/node_modules/homebridge-arlo/index.js:547:32)[39m [31m at new ArloCameraSource (/usr/local/lib/node_modules/homebridge-arlo/index.js:490:14)[39m [31m at ArloPlatform.addAccessory (/usr/local/lib/node_modules/homebridge-arlo/index.js:82:45)[39m [31m at ArloPlatform.<anonymous> (/usr/local/lib/node_modules/homebridge-arlo/index.js:135:26)[39m [31m at Arlo.emit (events.js:311:20)[39m [31m at Arlo.<anonymous> (/usr/local/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:49:26)[39m [31m at Request._callback (/usr/local/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:310:21)[39m [31m at Request.self.callback (/usr/local/lib/node_modules/homebridge-arlo/node_modules/request/request.js:185:22)[39m [31m at Request.emit (events.js:311:20)[39m [31m at Request.<anonymous> (/usr/local/lib/node_modules/homebridge-arlo/node_modules/request/request.js:1154:10)[39m [31m at Request.emit (events.js:311:20)[39m [31m at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/homebridge-arlo/node_modules/request/request.js:1076:12)[39m [31m at Object.onceWrapper (events.js:417:28)[39m [31m at IncomingMessage.emit (events.js:323:22)[39m [31m at endReadableNT (_stream_readable.js:1204:12)[39m [31m at processTicksAndRejections (internal/process/task_queues.js:84:21)[39m [37m[4/27/2020, 8:40:53 AM] [39mGot SIGTERM, shutting down Homebridge...

Video streaming seems to work, audio does not

Describe Your Problem:
I am trying to get audio transcoding/streaming working. It would appear that 2.1.0 build of this plugin also install the ffmpeg-for-homebridge plugin depedency (https://github.com/homebridge/ffmpeg-for-homebridge), which I guess has some preconfigured settings for Homebridge installs. So based on the information on that page, I'm guessing it installed ffmpeg with libfdk-aac audio transcoder? I don't really know enough about ffmpeg to verify this. That said, the Arlo plugin documentation refers to both "libfdk_aac" and "libfdk-aac" so I've tried both my config.json, but neither seem to work.

When I launch the live feed of the camera, the video stream connects and properly updates, and the audio channel takes over on the iOS device (e.g. if some music is playing, it's properly faded out, in anticipation of audio feed from Home app), but it just plays silence/dead air.

EDITED: Also, I noticed in the homebridge-arlo documentation this bit: "Defaults to the libopus codec, and currently Homebridge-Arlo tells HomeKit it only supports the Opus audio type." If that information is still accurate--that the plugin tells HomeKit it only supports Opus audio type--then does that mean that making any change to to the audioEncoder would have no effect anyway?

Logs:
No pertinent logs that I can think of. There are no errors that I've found.
Homebridge Config:

"streaming": {
                "videoProcessor": "ffmpeg",
                "audioEncoder": "libopus" (have also tried "libfdk-aac" and "libfdk_aac")
                     }

Screenshots:
N/A

Environment:

  • Node.js Version: 12.18.1
  • NPM Version: 6.14.5
  • Homebridge Version: 1.1.1
  • Operating System: Raspbian

Snapshots, Video?!

I really appreciate your work getting the arlo camera's working. I know you're probably not done with the feature by any stretch, but I'm here to help if you need it.

Right now, the snapshots seem to be almost fully stable, it doesn't always get an update though, and clicking on a camera from Apple Home tries to get a fresh snapshot, but that seems to fail, and the video doesn't seem to work either, it says 'prepareStream' and then 'handleStreamRequest', and in Home it says 'No Response. Again, sorry if I'm jumping the gun on this, but I'm excited for this development.

Motion detector not working

Describe The Bug:
I don't get any motion within the Home app. The sensors are there, but no change of state if I walk in front of my Arlo camera. Any clue why?

To Reproduce:
Install the plugin and add the camera within the Home app. There are motion detectors added, but these give no motion detection.

Expected behavior:
The motion detector should give 'motion detected' ones Arlo is turned on and someone walks in front of the camera. The motion detectors/settings are corrected, because I receive a message from the Arlo app.

Logs:
No interested logs

Homebridge Config:

{
"name": "Arlo",
"email": "xxx",
"password": "xxx",
"interval": 6000,
"stay_arm": "mode2",
"night_arm": "mode1",
"include_cameras": true,
"streaming": {
"videoProcessor": "ffmpeg"
},
"platform": "Arlo"
},

Environment:

Tijdzone GMT+0100
Raspbian GNU/Linux Buster (10)
raspberrypi
xxx
xxx
v12.18.3
v6.14.8
homebridge
/var/lib/homebridge
/var/lib/homebridge/config.json
Yes

Simply won't show up in Homekit

hi there, so I've followed the instructions for the basic install to try and get my Arlo ultra hub onto the Homekit app however it doesn't show up at all. I'm not sure if this is because the ultra is now natively compatible or because I have 2 factor auth. but anyways id still like to use the plugin to be able to arm and disarm the Arlo cameras from the home app as this can't be done even with the current Arlo support.

Possible to use alarm trigger in Homekit.

Hi,
Arm and disarm is working fine in my setup.
I use scenes to change the state.

Next I want to act on an movement within camera ranges if armed.

Is there a way to use a trigger in Homekit?
If not, any hints, eg IFTTT or any other homebridge plugins?

Frank

Video Doorbell

Any possibility of adding the ability to add the Arlo video doorbell?

Snapshot is only working for a special period of time

Hi,

I have installed the normal devbobo/homebridge-arlo branch release.
I added the cameras nto homekit, I have 2 available.
After starting the homebridge service, the snapshot are working some times fpr 2, the other time only for one hour.
AFter that is is stopping.

In the homebridge log, there is no error.
You can see the following line:
[arlo] snapshot request: Camera XXX

But no snapshot is created.
In the log there will be no other entries ...
No skipping, no downloading ...

Is this known? Do I have to use another branch?
An actual snapshot will be enough for me, I need no live video.

Motion detector not working

Describe The Bug:
I don't get any motion within the Home app. The sensors are there, but no change of state if I walk in front of my Arlo camera. Any clue why?

To Reproduce:
Install the plugin and add the camera within the Home app. There are motion detectors added, but these give no motion detection.

Expected behavior:
The motion detector should give 'motion detected' ones Arlo is turned on and someone walks in front of the camera. The motion detectors/settings are corrected, because I receive a message from the Arlo app.

Logs:
No interested logs

Homebridge Config:

{
"name": "Arlo",
"email": "xxx",
"password": "xxx",
"interval": 6000,
"stay_arm": "mode2",
"night_arm": "mode1",
"include_cameras": true,
"streaming": {
"videoProcessor": "ffmpeg"
},
"platform": "Arlo"
},

Environment:

Tijdzone GMT+0100
Raspbian GNU/Linux Buster (10)
raspberrypi
xxx
xxx
v12.18.3
v6.14.8
homebridge
/var/lib/homebridge
/var/lib/homebridge/config.json
Yes

Cameras HD on HomeBridge

Describe Your Problem:
I have added Arlo on HomeBridge but none of my Arlo HD cameras show.... I’ve created a separate account so it doesn’t log out of my iPhone account but none of my cameras show

Any ideas please to resolve

Thanks
Alan
Logs:

Show the Homebridge logs here.
Remove any sensative information.

Homebridge Config:

Show your homebridge config.json here. 
Remove any sensitive information, such as your homebridge-gsh / google-smarthome token.

Screenshots:

Environment:

  • Node.js Version:
  • NPM Version:
  • Homebridge Version:
  • Homebridge GSH Plugin Version:
  • Homebridge Config UI X Plugin Version:
  • Operating System:

Motion detector not working

Since the latest update, streaming is working...awesome!

However, I still don't get any motion within the Home app. The sensors are there, but no change of state if I walk in front of my Arlo camera. Any clue why?

Unable to get video stream from any cameras, but stills are working

Describe The Bug:
I've successfully added my four Arlo cameras (1st gen with the bridge) to Homebridge, and get stills from the last time they detected motion, but no video. I have FFMPEG plugin installed. Log info below:

To Reproduce:
No video streaming happens when camera is clicked/tapped on in Home app.

Expected behavior:
Video streaming on individual camera when clicked/tapped on in Home app.

Logs:
On boot, Homebridge says the following:
[8/20/2020, 4:27:11 PM] [Arlo] Online: Base Station XXXXX [XXXX]
[8/20/2020, 4:27:11 PM] [Arlo] Found: Camera - Front Room [XXXX]
[8/20/2020, 4:27:11 PM] [Arlo] Found: Camera - Backyard [XXXX]
[8/20/2020, 4:27:11 PM] [Arlo] Found: Camera - Basement [XXXX]
[8/20/2020, 4:27:11 PM] [Arlo] Found: Camera - Living Room [XXXX]

When opening Home app on iOS or Mac, it successfully requests and receives the snapshots:
[8/20/2020, 4:31:36 PM] [Arlo] Snapshot downloaded: Camera Living Room [XXXX]
[8/20/2020, 4:31:36 PM] [Arlo] Snapshot downloaded: Camera Backyard [XXXX]
[8/20/2020, 4:32:36 PM] [Arlo] Snapshot request: Camera Front Room [XXXX]
[8/20/2020, 4:32:36 PM] [Arlo] Snapshot request: Camera Living Room [XXXX]
[8/20/2020, 4:32:37 PM] [Arlo] Snapshot downloaded: Camera Living Room [XXXX]
[8/20/2020, 4:32:37 PM] [Arlo] Snapshot request: Camera Backyard [XXXX]
[8/20/2020, 4:32:37 PM] [Arlo] Snapshot downloaded: Camera Front Room [XXXX]
[8/20/2020, 4:32:38 PM] [Arlo] Snapshot downloaded: Camera Backyard [XXXX]

But I'm not seeing anything happening in the Homebridge log when I try to stream from any of the cameras.

Homebridge Config:

        {
            "name": "Arlo",
            "email": "XXXX",
            "password": "XXXX",
            "include_cameras": true,
            "streaming": {
                "videoProcessor": "ffmpeg",
                "packetSize": "1316",
                "maxBitrate": "300"
            },
            "platform": "Arlo"
        }

Environment:

  • Node.js Version: 12.14.0
  • NPM Version: 6.14.5
  • Homebridge Version: 1.12
  • Homebridge Config UI X Plugin Version: 4.26.0
  • Operating System: Raspian Docker

Arlo account

Does the homebridge account keep logged in, if i set Arlo to away in the Arlo app the status for some time keeps being reflected back to homebridge, after a while this stops until the next restart of homebridge.

ERROR LOADING PLUGIN homebridge-arlo

When I startup homebridge on my server, it throws an error that looks like this:

ERROR LOADING PLUGIN homebridge-arlo
ReferenceError: Invalid left-hand side in assignment
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge-arlo/node_modules/node-arlo/index.js:3:18)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)

Everything else in homebridge works except for this. Thank you!

State Schedule?

Hi,
Is it possible to set/access the state "Schedule"?

//BR Tony

ARLO now with native Homekit support

Hey,

since this week there is a native homekit support from ARLO available.
I had the chance to have a look to a friends of mine config.
Stupid thing is that there will be no security system with this 4 several settings present, only the cams and the motion sensor.
Live view, integrated pushes is fine working.

I know this is also availabble in the plugin, but this never worked for me.

When I have a look into ARLO it finds automatically the security system expanded from this plugin, but nothing more.
Having a look to homekit itself, I see the base, but cannot add it because I do not know the pin.

Had anybode else get it worked in a combination?

Unable to see all Arlo Q camera in Homebridge

Describe Your Problem:
I have 4 Arlo Q cameras, 3 Arlo Q Plus cameras (which do appear) and one Arlo Q camera that does not appear in HomeBridge.

Logs:

[8/2/2020, 21:23:45] [HB Supervisor] Starting Homebridge with extra flags: -I -D
[8/2/2020, 21:23:45] [HB Supervisor] Started Homebridge v1.1.1 with PID: 1006
[8/2/2020, 21:23:48] Loaded config.json with 0 accessories and 2 platforms.
[8/2/2020, 21:23:48] ---
[8/2/2020, 21:23:52] Loaded plugin: [email protected]
[8/2/2020, 21:23:52] Registering platform 'homebridge-arlo.Arlo'
[8/2/2020, 21:23:52] ---
[8/2/2020, 21:23:52] Loaded plugin: [email protected]
[8/2/2020, 21:23:52] Registering platform 'homebridge-config-ui-x.config'
[8/2/2020, 21:23:52] ---
[8/2/2020, 21:23:52] Loading 2 platforms...
[8/2/2020, 21:23:52] [Config] Initializing config platform...
[8/2/2020, 21:23:52] [Config] Running in Service Mode
[8/2/2020, 21:23:52] [Arlo] Initializing Arlo platform...
Setup Payload:
X-HM://XXXXXXXXXX
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:
                       
    ┌────────────┐     
    │ XXX-XX-XXX │     
    └────────────┘     
                       
[8/2/2020, 21:23:53] Homebridge is running on port 51543.
[8/2/2020, 21:23:57] [Arlo] Found: Camera - 4HE165SXXXXXX [4HE165SXXXXXX]
[8/2/2020, 21:23:57] [Arlo] Found: Camera - 4HE265SXXXXXX [4HE265SXXXXXX]
[8/2/2020, 21:23:57] [Arlo] Found: Camera - 4HE265SXXXXXX [4HE265SXXXXXX]
[8/2/2020, 21:23:57] 4HE165SXXXXXX is running on port 39459.
[8/2/2020, 21:23:57] Please add [4HE165SXXXXXX] manually in Home app. Setup Code: XXX-XX-XXX 
[8/2/2020, 21:23:57] 4HE265SXXXXXX is running on port 34325.
[8/2/2020, 21:23:57] Please add [4HE265SXXXXXX] manually in Home app. Setup Code: XXX-XX-XXX 
[8/2/2020, 21:23:57] 4HE265SXXXXXX is running on port 38491.
[8/2/2020, 21:23:57] Please add [4HE265SXXXXXX] manually in Home app. Setup Code: XXX-XX-XXX 

Of note, I have a fourth Arlo Q camera that does not appear that has a serial number like: 4CD15CSXXXXXX. This is a plain Arlo Q camera, not an Arlo Q Plus. The 4HE.... cameras are all Arlo Q Plus models (plugged in via Ethernet)

Homebridge Config:

{
    "bridge": {
        "name": "Homebridge 8927",
        "username": "XX:XX:XX:XX:XX:XX",
        "port": 51543,
        "pin": "XXX-XX-XXX"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        },
        {
            "name": "Arlo",
            "email": "[email protected]",
            "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
            "include_cameras": true,
            "platform": "Arlo",
            "streaming": {
                "videoProcessor": "ffmpeg"
            }
        }
    ]
}

Screenshots:

Environment:

  • Node.js Version: v12.18.2
  • NPM Version: v6.14.7
  • Homebridge Version: 1.1.1
  • Homebridge GSH Plugin Version: Not sure what this is, sorry.
  • Homebridge Config UI X Plugin Version:4.24.0
  • Operating System: Raspbian

Define away and off/disarm?

I have it working except I would like to know if it is possible to define the Away (armed) and Off (Disarmed)? The Armed isn't as crucial as disarmed due to living in a dodgy area I like to use the 4 modes to turn off zones as I use some areas less frequently and then have a master armed for Away.

Also if it is of any help to any one else, I couldn't edit modes on desktop safari on Mac and Firefox and IE on Windows. Chrome on Mac was the fix to be able to edit to achieve ModeX.

Sorry if this is the wrong spot to place this, new to GitHub.

Can't activate night and stay mode

Maybe someone can help. I created two additional modes and got the corresponding strings from the web interface as described in the readme - they are actually mode2 and mode3. I then added

"stay_arm": "mode2",
"night_arm": "mode3"

to my config.json. Now whenever I try to activate one of those two modes HomeKit activates it but then immediately jumps back to the deactivated status. The away status works absolutely fine. Any ideas?

Add Support for 2FA

Arlo just introduced 2 factor authentication.
Old authentication API still works for accounts with 2FA disabled, but enabling 2FA would be a great security improvement.

Thank you in advance.
Regards.

No notifications of state/mode changes

When I change the mode/state of my Arlo outside homebridge, for instance using the Arlo App, the change doesn't seems to be detected by Arlo Homebridge. However on changing the state in Homekit app, all notifications seems to be working.

config.json snippet
"platforms": [ { "email": "[email protected]", "password": "s33cret", "platform": "Arlo", "interval": 3000, "stay_arm": "mode3", "night_arm": "mode2", "name": "Arlo" }, { "error_log": "/var/log/homebridge.stderr.log", "log": "/var/log/homebridge.stdout.log", "platform": "config", "port": 1234, "restart": "/usr/local/bin/supervisorctl restart homebridge", "name": "Config" } ]

New Arlo Pro 2 Cam missing

Hi,

I added yesterday the third cam to my system.
I have 2 Pro and one Pro 2.
The 2 Pro's I can find, but the third one is missing ...

How can I fix that?

Thank you.

TypeError: Cannot read property 'id' of undefined

After installing ARLO and getting homebridge to the latest version I am getting an issue. The system finally does not start. Is there anything I can do?

[2017-12-22 15:53:42] [Arlo] Initializing Arlo platform...
[2017-12-22 15:53:42] Loading 0 accessories...
Setup Payload:
X-HM://0023HR5****
Scan this code with your HomeKit app on your iOS device to pair with Homebridge:
 <...>
[2017-12-22 15:53:42] Homebridge is running on port 51826.
[2017-12-22 15:53:45] [Arlo] Found: Camera - 4N727******** [4N727********]
[2017-12-22 15:53:45] [Arlo] _createStreamControllers
/usr/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:268
        body[Constants.TO]   = device.id;
                                     ^

TypeError: Cannot read property 'id' of undefined
    at Arlo.notify (/usr/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:268:38)
    at ArloCamera.get (/usr/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/ArloCamera.js:23:21)
    at new ArloCameraAccessory (/usr/lib/node_modules/homebridge-arlo/index.js:244:21)
    at ArloPlatform.addAccessory (/usr/lib/node_modules/homebridge-arlo/index.js:82:48)
    at ArloPlatform.<anonymous> (/usr/lib/node_modules/homebridge-arlo/index.js:100:26)
    at emitOne (events.js:96:13)
    at Arlo.emit (events.js:188:7)
    at Arlo.<anonymous> (/usr/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:47:26)
    at Request._callback (/usr/lib/node_modules/homebridge-arlo/node_modules/node-arlo/lib/Arlo.js:280:21)
    at Request.self.callback (/usr/lib/node_modules/homebridge-arlo/node_modules/request/request.js:186:22)

Arlo Baby recognised as "sensor" in HomeKit

I've installed homebridge-arlo and manually added an Arlo Baby into HomeKit. I'm not expecting the camera to work, but for some reason it's recognised by HomeKit as a sensor. As a result, I can't arm/disarm it. Is it simply a matter of homebridge-arlo not recognising the model, and adding support? Or is there something else that I'm missing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.