Eine Lösung hatte ich ja weiter oben bereits skizziert.
Beim Stromausfall muss der R-Pi darüber informiert werden, so dass er sauber runterfahren kann. Das kannst du über die USV direkt machen, die die entsprechende Schnittstelle hat und kompatibel mit der Software ist, die unter Linux laufen muss, wie z.B. NUT.
Wenn die USV keine Schnittstelle hat, dann könntest du die Einspeisung der USV überwachen, z.B. mit dem Shelly Plus PM Mini - WLAN Leistungsmesser, bei dem du im Prinzip nur schauen musst, ob das Gerät, dass du ins WLAN hängst, noch per ping erreichbar ist. Wenn es nicht mehr auf ping reagiert, dann hast du einen Stromausfall oder die Sicherung hat ausgelöst. Solltest du noch ein anderes Gerät in deinem Netzwerk haben (managed Switch, Smarthome Gerät, etc.), dann könntest du auch dieses Gerät als Indikator für Stromausfall per ping überwachen und bei Nicht-Antwort die FritzBox ausschalten und den R-Pi runterfahren.
Die Fritzbox kann man wie schon oben geschrieben keinen ordentlichen shut down Befehl geben. Daher musst du dieser gezielt über eine schaltbar Steckdose ausschalten. (Hinweis: Selbst managed Switches und Router der bekannten Hersteller in grossen IT / OT Installationen erhalten keinen „ordentlichen shut down Befehl“, sondern werden spannungslos gemacht und aus die Maus).
Den Fall „Strom wieder da“ hatte ich ja oben beschrieben.
Eine Alternative zum „Strom wieder da“ wäre der Einsatz eines Zeitrelais, an das du die Fritzbox hängst, so dass diese zeitverzögert wieder mit Strom versorgt wird. Das würde gehen, wenn deine USV eine dermaßen kurze Batterielaufzeit hat, dass bei Stromausfall der R-Pi dies über den Strommesser mitbekommt, sich ausschaltet und ein paar Minuten danach schon kein Saft mehr da ist und damit die Fritzbox auch aus ist. Ansonsten könnte es passieren, dass sich er R-Pi abschaltet, der Strom wiederkommt und die Fritzbox noch alive ist.
Und es gibt sicherlich noch andere Möglichkeiten, deine Szenario umzusetzen.