New Custom Component: Eero Integration

I recently built an integration for Eero Wi-Fi routers. There’s more details at the GitHub repo here here so I won’t completely repeat myself but needless to say it should be pretty straightforward for anyone familiar with using custom_components.

It’s been running very stable for me for a few weeks now, so I suppose I should share with others. Feel free to try it out and give feedback on any problems or additional features desired. I’m already working on more improvements as mentioned in the readme.

I have yet to upgrade to v6.x firmware nor have I tested without a Secure subscription, so I’m anxious to hear results from others on those points.

If anyone is willing to help clean it up and manage a Home Assistant PR, I’ll be glad to support but I don’t have the time (or experience) to do all of that work on my own :wink:

Finally, the community thread for the project(s) that I started from is here, but I thought it better to start a new thread due to the amount of changes between that project and mine.

Enjoy!

2 Likes

This is awesome, thank you so much, works great so far.

The github docs imply that once added via HACS it should be added as a normal integration. Eero does show there, but clicking it just flashes the screen back to the add dialog and it is not present. Is this meant to use the yaml settings from the prior versions? I don’t have a problem editing whatever, but the github has no docs for it.

Eero Pro 6 with secure sub. (Ad blocker turned off since it breaks HA’s updater and the HACS component I use for our bedroom AC).

Recent errors:

Error handling request

1:08:28 PM – helpers/data_entry_flow.py (ERROR) - message first occurred at 1:07:14 PM and shows up 3 times

Request for https://homegraph.googleapis.com/v1/devices:reportStateAndNotification failed: 404

1:07:08 PM – Google Assistant (ERROR)

You are using a custom integration for eero which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.

1:06:12 PM – loader.py (WARNING)

To start I should point out that my primary device trackers are webhooked homekit. They work incredibly well EXCEPT they don’t survive a reboot.

I’ve learned to keep the app up and have it tied to my user as a second tracker so a boot doesn’t show no one home if I’m home. I don’t have to worry about doors locking, thermostats dropping out of comfort, and all my door/window sensors triggering alarms.

I’m thinking about adding a switch that gets set when the tracker is and restoring the tracker based on that switch since it will persist.

But the eero tracking would help me avoid that and it gives all the mgmt tools too.

Here is the specific error in full

Logger: aiohttp.server
Source: helpers/data_entry_flow.py:42
First occurred: 9:03:14 AM (1 occurrences)
Last logged: 9:03:14 AM

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 418, in start
    resp = await task
  File "/usr/local/lib/python3.8/site-packages/aiohttp/web_app.py", line 458, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.8/site-packages/aiohttp/web_middlewares.py", line 119, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 18, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 72, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 127, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 129, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 136, in post
    return await super().post(request)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 60, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 81, in post
    result = self._prepare_result_json(result)
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 141, in _prepare_result_json
    return super()._prepare_result_json(result)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 42, in _prepare_result_json
    data["data_schema"] = voluptuous_serialize.convert(
  File "/usr/local/lib/python3.8/site-packages/voluptuous_serialize/__init__.py", line 39, in convert
    pval = convert(value, custom_serializer=custom_serializer)
  File "/usr/local/lib/python3.8/site-packages/voluptuous_serialize/__init__.py", line 112, in convert
    raise ValueError('Unable to convert schema: {}'.format(schema))
ValueError: Unable to convert schema: <function string at 0xffff82f0e700>

Here is info tab

System Health

|arch|aarch64|
| --- | --- |
|dev|false|
|docker|true|
|hassio|false|
|installation_type|Home Assistant Container|
|os_name|Linux|
|os_version|5.4.0-1022-raspi|
|python_version|3.8.5|
|timezone|America/New_York|
|version|0.115.2|
|virtualenv|false|

All related boxes.
[formerly clustered, now just physically stacked next to main pc all gigabit ethernet to modem]
RPi 4 / 8gb Ubuntu groovy 64bit boot from ssd with HA in docker
RPi 4 / 8gb Ubuntu groovy 64bit boot from ssd with MariaDB in docker
RPi 4 / 8gb Ubuntu groovy 64bit boot from ssd with Mosquitto in docker
RPi 4 / 8gb Ubuntu groovy 64bit boot from ssd with NginxProxyManager in docker
[center of house for best radio use - no easy wire fishing there so WiFi]
RPi 4 / 8gb Rasbian beta 64bit boot from ssd with Zigbee2MQTT and OpenZWave Beta in docker
[centered amount 8 MiFlora clones so WiFi again]
M5 Atom Lite OpenMQTTGateway

Linked to HomeKit (telling watch to unlock doors is VERY useful) and manually to Google Home (not Nabu Casa because I already had servers that needed exposing).

Just in case I’ve since removed NUT integration since I don’t really care about seeing my UPS stuff. Also removed IPP for the printers since I just didn’t care.

I found the issue. The github project is missing the requirements.txt and they aren’t documented. I’m manually chasing them now.

Although I’m also moving to mqtt device trackers for my homekit updates so this becomes less important.

Reposting from community thread…

Edit: I’m dumb! Found the options when I reselected my network

Hi! I just started using Home Assistant and am at the limits of my comfort zone! I’ve installed your schmittx addon and it’s sitting in integrations. I can see five devices and a 33 entities like download speed, number of connected devices etc.

However I cannot for the life of me figure out where I find the actual list of connected devices, the eero device to which they’re connected etc. I see from the discussion above that this is possible but I’m at a loss! I was hoping to be able to assign devices to people for tracking purposes but am totally clueless as to how to do it.

I should say that so far all my tinkering is pretty much in the web-based UI. Do I need to be somewhere else to enable these things?

What is the platform named when creating a device tracker using this integration? I’m new to the game and figured most stuff out but having a tough time sorting out how to create the device trackers. Any help would be greatly appreciated.

Sorry for the slow response.

If you’re still having trouble with device trackers, just ensure you select the desired clients during the eero integration setup process within Home Assistant. Then, Home Assistant will create a device tracker entity for each client selected (ex. device_tracker.mikes_iphone).

Is there a way to re-run setup of eero component to select devices to be tracked or do you have to delete the integration entirely (and any customizations to entity names/etc0?

You should be able to change the tracked devices via Configuration > Integrations > Eero > Options and then follow the prompts.

Edit: nevermind – a reboot of my PC (running HA on VM) seems to have fixed the problem. I rebooted HA per instructions but not sure why the integration didn’t show up previously.

Hi @schmittx, could you provide a little bit for instruction on step 3 of installation? I was able to get through step 1 & 2, and I see the eero folder under custom_components, but searching for eero in Configuration > Integrations doesn’t turn up anything. Am I looking in the wrong place?

Is it not recommended to use this for presence detection? It took about 6 minutes in my initial tests, and I’m wondering if there is a way to speed that up.

Great work. It works great (until it fails, but I guess that will be solved). I encountered this issue too

The integration stops working after restart. All devices become “unavailable” and thus the automations fail.

Hello! I tried to install this, but I can’t get past the login. I tried my Amazon account email address, but I get “unknown error occurred”. I tried by phone number in various formats (61xxx, +61xxx), but I never receive an SMS.

Does anyone have any suggestions?

2 Likes

The repository has not been updated in months and issue sims are piling up. Is this an abandoned component?

I am new to Home Assistant and exploring various integrations. I’d also like to know if this is working before installing.