Background
Earlier this year, in the spring, my house backup standby generator died. It was pretty old, and the generator company diagnosing it determined it was likely the rotor or stator, both of which were not worth the cost to replace. They installed a new generator for me, a 10 kW from Generac.
Generac's standby generators currently come with their Evolution 2.0 controller. Being a home automation and general tech enthusiast, I was delighted when setting it up to see that it could connect to my Wi-Fi. Connecting it unlocks access through their website and an app where you can view information about your generator. Though setting it up and seeing basic information was free, I was immediately presented with an option to upgrade to their Premium subscription service, which enables real-time alerts.
Generac Cloud Integration
This was pretty disappointing. I just spent thousands of dollars on this appliance and it comes with free web and app monitoring, but push notifications are locked behind a subscription service? Kind of a ridiculous, but not a big deal, I thought, if I can bring the generator into Home Assistant, since I can easily send push notifications to my phone myself using an automation. After looking around, I found the ha-generac Home Assistant integration.
I was able to install the integration, make a nice dashboard that displayed my generator information, and wrote a simple automation to send me a push notification whenever the generator status changes. Problem solved. I had this running for a few months before a problem cropped up related to authentication failures. I started looking more into how the integration works.
The integration uses Generac's website API, which is a restful-like JSON API. There's no official documentation for it: people reverse engineered the API by looking at the resources loaded when you load their website. It's a fairly simple API and looks easy to use. The authentication process was even reverse engineered, making it easy to log in via Home Assistant. Unfortunately, around August 2025, Generac changed their authentication process to require clicking a "I'm not a robot" box, which breaks scripted logins like Home Assistant's.
The integration's maintainer, Jose Santiago, was able to keep the integration working by documenting a workaround where you have to log in to the website and copy a session cookie into your Home Assistant configuration. While this works, the cookie does seem to expire seemingly randomly, requiring the whole process to be executed again. By this point, I was pretty frustrated with Generac and started looking for alternatives.
Genmon
After doing some research, I came across genmon. It's a free, open source generator monitoring application designed to run on a small device like a Raspberry Pi. After I read through the documentation, I was honestly a little overwhelmed. Setting it up looked daunting, and I wasn't entirely sure I wanted to start messing with the hardware of the expensive generator I just purchased.
I was feeling pretty spiteful at this point though, wanting to free myself from Generac's locked cloud service. I read more and determined that all I needed was a little adapter board for a Raspberry Pi called a HAT (Hardware Attached on Top). I already had a Raspberry Pi 3 lying around that I wasn't using and I found a premade kit that comes with the Molex connector to plug into the generator and terminals for powering the unit via the 12V battery, all for $65:
I fired up my 3D printer and printed a case for it from here. It almost fit, but I had to cut some extra space to get the connectors to be accessible:
I installed Raspberry Pi OS on it, installed the genmon software, plugged in a USB wifi adapter, and made sure it was accessible. I was ready to install! It ended up being much easier than I had thought. All I had to do was unplug the generac unit from the Molex slot and plug in the Rapsberry Pi instead:
Home Assistant
I'm a huge fan of Home Assistant, so I did want to get this data into my Home Assistant instance. This would allow me to integrate the data into my home dashboards and also set up an automation to send my phone a push notification on status changes.
There is a genmon mqtt addon that will publish data to an MQTT server. I already had the MQTT addon server running in Home Assistant, so all I had to do was configure a username and password and quickly got it connected.
Unfortunately, while the data was being populated in MQTT, I only found scattered, incomplete YAML files for configuring MQTT sensor entities in Home Assistant for genmon. I ended up creating my own and published instructions for setting it up here. I set up the push notification automation and built a nice little dashboard:
Conclusion
Everything's working great now, and I love that it's fully local to my home network without any cloud dependencies.
I do want to get on my soapbox for a bit and voice my strong disappointment with Generac here. I'll first say that I'm not anti-cloud. I use many cloud services and even have several cloud-based integrations in Home Assistant. I also pay for several subscription services, when I feel they're adding value.
In this case though, Generac is blocking third parties from using their cloud service, even if you have a paid subscription. It's the MyQ fiasco all over again, and companies keep making this mistake.
I get it though, I really do: it costs money to run cloud services, companies are looking to recoup those costs, and obviously they want to make money. And people like me are not the majority demographic using these services. I think their strategy though is fundamentally flawed. What these companies fail to realize is that enthusiasts like me are your evangelists if you get it right: we write blog posts, we make YouTube videos, and we recommend products to our family and friends. Pissing us off doesn't help your product.
I don't like to give criticism without suggesting alternatives, so here are two ways Generac could have done better here:
- Add third-party OAuth support to your APIs. You can even require a paid subscription to enable it, but give people access in a secure way to your APIs. You don't even really have to worry about backwards compatibility: the open source community will just patch things when the API changes.
- Allow access to the Generac wifi module on the local network. If you open up a port that serves the device's API, people can connect to it locally on their network (e.g. from Home Assistant) without any reliance on your cloud service at all. And this really doesn't impact your revenue since the goodwill from the community will likely outweigh the tiny loss of subscribers from small fraction of people who actually want local access.
Some examples of companies doing this the right way:
- TP-Link's Tapo cameras, which have a cloud based subscription service but also open up their cameras on your network via the open ONVIF protocol, if you enable it.
- TRMNL, who provide a cloud hosted service for managing an e-ink display, but they also publish their entire server suite on GitHub if you want to host it yourself locally.
Here's to hoping that more companies start doing better.