I have been using Home Assistant and trying to get everything in my home connected to one platform. I also use Google Wifi. I have the 3 puck system and it has been great. Now I want to pull some information from Google Wifi and display in Home Assistant. The access points do have an internal API that some people have been able leverage in Home Assistant. Information like
- Current Version
- Last Restart
- Public IP
- New Version
Google Wifi has more information that they are able to show in their app. This is the information I wanted to put into Home Assistant. So off to the internet to see if someone has tried this already.
I found a github repository from Ben Manns that uses the internal diagnostic report API to download a protobuf file from the access point. It hasn’t been updated in 3 years and was not working with the current version of the access point software. So I forked the repo, learned a little bit of go, read up on Google’s protobuf and hacked my way to outputting a valid json file that could be POST’ed to the Home Assistant API.
I tried to only write the code using bash since I wanted to run all of this on a Raspberry Pi that is always on at home. But in trying to get the information showing up in Home Assistant, my yaml file was getting crazy. I ended up writing java code to read the json file and output it in a better format. (Will post to github once I clean up the code)
So now I have a way to pull the following information from Google Wifi…
- Download Speed
- Upload Speed
- Speed Check Date
Per Device information
- Connected : true/false
- IP Address
- Last Seen
- Connection Type (This shows whether it is a Ethernet, Wireless 2.4 or Wireless 5.0 connection)
- DHCP Hostname
This is the only information I care about right now but there is more data in the diagnostic report API. I’ll write another post detailing the information from the protobuf file I have learned.