Arlo: replacement pyarlo module


HASS for me always had issues for any videos using Safari, Firefox and Chrome however seemed to work fine all the time …


@sherrell - great timing, just picked up an Arlo Q and saw this thread about the updated version - thank for your excellent work! I’ll be trying things out over the next few days.

Just to add my investigations into live streaming for when you do have chance to look at this, it seems that if you use a browser to remotely view the stream via, the adobe flash component requires port 80 and 443 to be open on your router (I see a connection error when outside my network). However, viewing the live stream from the mobile app (iOS) seems to work fine without these ports being open! It would be great if you were able to figure out why it works from a mobile and perhaps utilise the same method please? (no rush of course as it may be an impossible task - lots of posts in the Arlo forums say you can’t do a direct stream)

At the moment 80 and 443 are used for my Let’s Encrypt implementation so there no chance I can use these for Arlo. :slight_smile:



I may be confusing myself here, but should I be able to see an entity called alarm_control_panel.aarlo in my entity list? I’m hoping to change modes via HA, but I could be doing something wrong with my setup or have a misunderstanding of how it works.

The logs show it should have been set up (I’m running HA 0.87.1):

2019-02-28 21:15:06 INFO (MainThread) [homeassistant.loader] Loaded aarlo.alarm_control_panel from custom_components.aarlo.alarm_control_panel
2019-02-28 21:15:06 WARNING (MainThread) [homeassistant.loader] You are using a custom component for aarlo.alarm_control_panel which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-02-28 21:15:06 INFO (MainThread) [homeassistant.setup] Setting up alarm_control_panel
2019-02-28 21:15:14 INFO (MainThread) [homeassistant.components.alarm_control_panel] Setting up alarm_control_panel.aarlo
2019-02-28 21:15:14 INFO (MainThread) [homeassistant.setup] Setup of domain alarm_control_panel took 7.8 seconds.

However, when I try to change the mode via HA, the camera mode does not change on my phone. e.g. If I trigger the following, my phone mode stays at Disarmed: (note that I can’t see any alarm_control_panel entity in HA)

Here is my alarm configuration in case it helps:

  - platform: aarlo
    home_mode_name: disarmed
    away_mode_name: armed
    night_mode_name: night

Screenshot of my phone showing available modes:

Thanks in advance.


@jarrah (A bit of background - I don’t actually have a Q camera but I’m trying to get my hands on one locally…) I think the problem here is the same as the Baby Arlo, it needs a fake base station for the camera. I can put some changes into a temporary branch if you’re willing to give it a try.


Yep, very happy to try things out from a dev branch. Thanks!


It’s called arloq - - it runs but I’m not sure what will happen after that!


Excellent, I can confirm that works, thank you!

An entity named alarm_control_panel.aarlo_arloq now appears and I’m able to change Arlo modes from within HA.


Excellent. For once it was an easy one! I’ll pull the changes into the master branch.


I had been using a homemade PyArlo-based REST server to control my Arlo arm state and I’m thrilled to see some development here to improve on it. The only problem is that it’s much more aggressive at logging me out of anything else that I’m using to monitor my system than the original - both the website and the iOS app almost immediately boot me out as this component tries to log back in (with a “logged out? did you log in from elsewhere?” message). I don’t see that addressed above, but forgive me if I missed it. I had a similar coexistence problem before, but I think it was based on the command and not a long-standing session. I can’t even confirm that the component changed the mode before I get kicked out of the app or web site.

Is there a way to make the login process less aggressive? I have scan_interval set to 300.


You absolutely have to create a Home Assistant specific account and grant it access rights to the cameras you wish to use in aarlo.

The new aarlo module opens and reads from an event stream with Arlo - it’s this event stream where motion detection, audio detection and button presses, mode changes are signaled back to Home Assistant - and it will try to keep this stream open at all times. If it detects a close or gets booted off it will wait 5 seconds and log back in which will kick you off where you just logged in.

Even without aarlo you would have seen this anytime you tried to log in from two or more different places with the same account. It actually caused problems internally in the old arlo module. I think it’s a silly limitation, I can’t even log in from the web site and my phone app at the same time…

scan_interval does nothing, everything is asynchronous now and events will be signaled almost immediately. I left it in for now to not break any existing configurations.

Also. if you use gmail you can just add an identifier to the back of your current email address to create different accounts, for example:

[email protected]     # main Arlo account
[email protected]  # secondary Arlo account

Let me know if you get it working.


@Swiftnesses I merged all those card size changes in but I also merged in some changes to lower the data usage. This might help with the 25% CPU usage you were seeing, it’s doing a hell of a lot less work now when updating its media libary. And downloading about 96% less data.


Thanks, yes - all better now. I went about it the wrong way by trying to create a new account on the web, which seems impossible without a new device to set up, did it from my phone, and then realized that the best way to do it is to send an invitation to the new address. Anyway, I’m up and running. Thanks!

I didn’t even think about creating a new account before and just lived with the annoyance of the two instances conflicting periodically.


Glad it’s working.

Me and my wife spent a year using the same account and kicking each other out of the app on our phones before I realized what was up.


I do have a custom mode set up called “doors”, which I use as my “disarmed” mode because you can’t configure certain cameras to be “armed” when the system is disarmed (boo!). I have the following in my configuration.yaml, but it’s still going to “Disarmed” when I disarm it from the control panel:

  - platform: aarlo                 
    home_mode_name: doors
    away_mode_name: armed

I remember having to modify PyArlo a while back to support custom modes, but it looks like you’re using one (“Night”). Am I doing something wrong? Next step will be turning debug on.

Nevermind - it goes to the right mode when I set it to “Armed Home”. It looks like the control panel doesn’t always let me do what I what. For instance, when I’m home and in “doors” mode", the only option it gives me is “Disarm”, which I never do. I’d prefer to have “Armed Home” and “Armed Away” as my two toggle options. I’ll take a look a the .js.


Internally the alarm code can change from any mode to any mode but, as you noticed, the standard alarm Lovelace card doesn’t let you do that. I know a few people have written custom alarm cards, one of those might help.



I have the problem that I get all the values and also the aarlo_glance crad is working fine if I restart hassio. But after the the values did not update anymore. If I look at the current entity list the last values are from the last time I restart the server.

hassio verion 88.2


What OS/browser? And can you turn on debug and see what is happening? Add something like this your configuration.yaml.

    default: info
        pyaarlo: debug

And make sure to refresh your browser. I’ve had problems with javascript files not being refreshed. You can add a version to your UI yaml if needed (the version number doesn’t matter):

  - type: module
    url: /local/aarlo-glance.js?v=1


@sherrell I pulled the latest files from the master branch and I was not able to change the Arlo state either using the Alarm control card or using services. I do see
DEBUG (MainThread) [pyaarlo] ArloHome:new-mode=armed,id=mode1 in the debug logs and no other errors.


@arsaboo That is the request going in but nothing comes back. Did something crash before that. Is there a back trace further up in the logs?

2019-03-07 11:59:13 DEBUG (EventStream) [pyaarlo] set:4XH5797RAE0C4/signalStrength=4
2019-03-07 11:59:26 DEBUG (MainThread) [pyaarlo] ArloHome:new-mode=armed,id=mode1
2019-03-07 12:07:17 DEBUG (EventStream) [pyaarlo] unhandled response automationRevisionUpdate
2019-03-07 12:07:17 DEBUG (EventStream) [pyaarlo] sending activeAutomations to 4R04797JA6D20
2019-03-07 12:07:17 DEBUG (EventStream) [pyaarlo] ArloHome BASE got activeAutomations
2019-03-07 12:07:17 DEBUG (EventStream) [pyaarlo] set:4R04797JA6D20/activeMode=disarmed

@sherrell that is all…nothing else.