This project was born from an unfortunate real-world experience.
While travelling several thousand miles from home, I was remotely monitoring my Home Assistant installation. Unfortunately, I made the mistake of allowing a software update and the subsequent restart. The Home Assistant host failed to come back online, leaving me with no remote access to my home automation system.
Although this particular failure was caused by a software update, similar situations can occur at any time due to:
Home Assistant becoming unresponsive
A stalled or crashed hosting PC or Raspberry Pi
Internet router lockups
Loss of internet connectivity
Other unexpected system failures
Without someone physically present to reboot the equipment, remote access can be permanently lost.
This project attempts to provide an automatic recovery mechanism for these situations.
My house ⦠> six years using home assistant.
I have a PROD and DEV in my house (mini-PCs now).
I have a Prod at my Guest house mini-PC (different internet even)
I have a Home Assistant Green installed at my gate (different internet)
All shared using remote home assistant.
Never had a system not reboot, never unresponsive ā¦are you solving the wrong issue?
LOL. I update AFTER I have read every release note and the āBreaking Changesā. DEV is immediate, the other are after 2 or 3 days after I test and read all the important notes.
And I am not saying I broke some custom integration on occasion, but booting?
Never encountered it. Make me believe your PI or something ⦠I donāt know.
Take my data point, or not.
I would also say this for many ⦠most people do not look at what is being recorded, what is adding to the database on your storage, etc. A long time ago I turned off all recording of everything and only add what I want long term stats on. People just use the system blind, not realizing that every time TV on or TV off is recorded and maintained.
This has happened to me a half dozen times, so itās realā¦
Old PCās running HAOS. Itās usually a supervisor update, and a power reset brings it up updated. Has happened on 2 of my systems. 8gb of memory and SSDās.
I delete my DB about once a year or so. Blow it away to make a fresh one.
If I have understood your project correctly, you have āinventedā a smart power plug with two outletsā¦
While that may save your bacon in some situations, itās not really a solution to fix it all.
In a well-structured design, (internet-/ lan-/ wifi-) router and home-assistant would be independent entities, each working independently of each other on their own (yes, DHCP for haos, I get that haos is relying on the router to work/ hand out DHCP leases, mDNS, ethernet/ wifi and incoming VPN connectivity). Being able to restart (power-off/ power-on) may be a useful thing (with or without watchdog), but itās not going to provide recovery options of any kind. If you wanted that, a better approach would be running haos inside of a VM, (ideally) with hypervisor side backup options in place. That way youād actually have fully reign over your VMs remotely, restoring an older backup, setting up new ones, etc. - at the expense of relying on the hypervisor as new potential choking point.
Many things, multiple stages of fallback and recovery options (e.g. serial console access) are possible, but youāre quickly leaving the domain that would be sensible to run at home (~without making this your new fulltime job). A better approach would imho be to make router and hypervisor reliable/ dependable to some extent - and then designing a safe failure case (making sure that the defaults, in the absence of your home-assistant controller fall back to safe operations, even if not all bells and whistles are available (this means cloudless/ local-only operations and pushing basic intelligence into your actors (~= having basic fallback decision making inside of your esphome/ tasmota devices, even if they lost access to home-assistant))). And yes, being able to power-off/ power-on components independently of home-assistant (via a on-device webinterface, hosted on the smartplug (~= tasmota/ openbeken, but esphome can also do that)) can be quite useful.