-
Notifications
You must be signed in to change notification settings - Fork 36
Description
Sometimes I find myself away from home during power events, and while I do not worry as much since I have battery backups, and WOL running, I do find it useful to know when such events happen so I can figure out what's actually wrong when I have family members asking why the Jellyfin server isn't loading. So I would like to propose a feature which should solve most of that problem.
Feature Overview: On a power event, a wolnut process will trigger an email to be sent via the email package. This will be configurable, like other features and clients are via YAML.
Assumptions: This feature will assume that the entirety of the network stack (at least the important bits) are on battery backup and functioning during a power event.
Proposed Implementation:
A new script named notif.py is created which houses all of the email functions, this can be triggered in the cli.py script after logging events take place. For example, here's a snippet with an added function call (Line 68-73 in cli.py):
# Power Loss Event
if "OB" in power_status and not on_battery:
state_tracker.mark_all_online_clients()
state_tracker.set_ups_on_battery(True, battery_percent)
on_battery = True
logger.warning("UPS switched to battery power.")
mail.send_warning() # Calls email logic and sends specified messageThe mail.send_warning() function would trigger the logic to send the message to the configured email address. The configuration file could look something like this:
mail:
address: "email@example.com"This might need some tweaking as I haven't looked too deep into what else might be required for reliably getting emails sent via python libraries. Would love some feedback on this, and eventually some help creating tests as I have not done much in the way of creating tests in python. Cheers o/