hopefully works now

This commit is contained in:
crate 2024-10-09 18:20:15 -05:00
parent d32ae3e92f
commit b18357e524

View File

@ -80,41 +80,47 @@ def send_email(subject, body):
intents = discord.Intents.default() intents = discord.Intents.default()
client = discord.Client(intents=intents) client = discord.Client(intents=intents)
@client.event def send_discord(message):
async def on_ready(): async def message_send():
logger.info(f"Client connected as {client.user}") intents = discord.Intents.default()
client = discord.Client(intents=intents)
async def send_discord(message): @client.event
try: async def on_ready():
user = await client.fetch_user(user_id) logger.info(f"Client connected as {client.user}")
await user.send(message) try:
logger.info(f"Discord message sent: {message}") user = await client.fetch_user(user_id)
except Exception as e: await user.send(message)
logger.error(e) logger.info(f"Discord message sent: {message}")
except Exception as e:
logger.error(e)
finally:
await client.close()
await client.start(bot_token)
asyncio.run(message_send)
def pwr_offline(battery): def pwr_offline(battery):
message = f"{ups_id} UPS is running on battery power! {battery}% charge remaining." message = f"{ups_id} UPS is running on battery power! {battery}% charge remaining."
logger.warning(message) logger.warning(message)
send_email(f"{ups_id}: Power Outage Detected!", message) send_email(f"{ups_id}: Power Outage Detected!", message)
asyncio.run(send_discord(message)) send_discord(message)
def pwr_online(battery): def pwr_online(battery):
message = f"{ups_id} UPS power has been restored. {battery}% charge remaining." message = f"{ups_id} UPS power has been restored. {battery}% charge remaining."
logger.warning(message) logger.warning(message)
send_email(f"{ups_id}: Power On Line", message) send_email(f"{ups_id}: Power On Line", message)
asyncio.run(send_discord(message)) send_discord(message)
def batt_low(battery): def batt_low(battery):
message = f"{ups_id} battery level low: {battery}% charge remaining." message = f"{ups_id} battery level low: {battery}% charge remaining."
logger.warning(message) logger.warning(message)
send_email(f"{ups_id} battery low.", message) send_email(f"{ups_id} battery low.", message)
asyncio.run(send_discord(message)) send_discord(message)
def batt_crit(battery): def batt_crit(battery):
message = f"{ups_id} battery level critial: {battery}% charge remaining, Shutting down PVE." message = f"{ups_id} battery level critial: {battery}% charge remaining, Shutting down PVE."
logger.warning(message) logger.warning(message)
send_email(f"{ups_id} battery critical!!", message) send_email(f"{ups_id} battery critical!!", message)
asyncio.run(send_discord(message)) send_discord(message)
def main(): def main():
logger.info("Starting UPS monitoring service.") logger.info("Starting UPS monitoring service.")
@ -126,7 +132,7 @@ def main():
battery = ups_data['battery_charge'] battery = ups_data['battery_charge']
if status and status != prev_status: if status and status != prev_status:
if status == "OB DISCHRG": if status == "OB DISCHRG":
pwr_offline(battery) pwr_offline(battery)
elif status == "OL": elif status == "OL":
pwr_online(battery) pwr_online(battery)
else: else:
@ -143,17 +149,5 @@ def main():
time.sleep(60) time.sleep(60)
time.sleep(5) time.sleep(5)
async def client_connect():
while True:
try:
await client.start(bot_token)
except Exception as e:
e = str(e)
logger.error(f"Client couldn't connect! {e}")
await asyncio.sleep(300)
if __name__ == "__main__": if __name__ == "__main__":
main() main()
asyncio.run(client_connect())