hopefully works now
This commit is contained in:
parent
d32ae3e92f
commit
b18357e524
50
power.py
50
power.py
@ -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())
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user