## Requires NUT2 from PIP from nut2 import PyNUTClient import os import requests import json from datetime import datetime from influxdb import InfluxDBClient from time import sleep ### telegram logging # API Key apikey = '1857016076:AAGVag6tEtEpJHNpPtLyHYU-JsnN7arwDRk' # Key of your chat. chatid = '840699197' def logTelegram(message): os.system("curl --silent -X POST https://api.telegram.org/bot" + apikey + "/sendMessage -d chat_id=" + chatid +" -d text=\""+ message +"\"") ### end telegram logging def uploadInflux(data, host='192.168.0.13', port=8086): # Main upload for UPS in data: # bind_params = {'host': str(UPS)} json_body = [ { "measurement": "data", "tags": { 'ups': str(UPS), }, "fields": { "battery": data[UPS]["battery.charge"], "runtime-s": data[UPS]["battery.runtime"], "load": data[UPS]["ups.load"], } } ] client = InfluxDBClient(host, port, database = "telegraf") # Init connection to Influx Server client.write_points(json_body) # Write Speedtest results # try: # hostList = os.environ["hosts"] # hostList = hostList.replace(" ","").split(",") # except: # print("error with hosts entry, please make sure in format -> 10.x.x.1, 10.x.x.2") # host hostList = ['10.0.5.2', '10.0.5.181'] upslist = {} ## pull all the UPSes froom each host into a nice dict for host in hostList: upslist[host] = [] client = PyNUTClient(host, '3493') for UPS in client.list_ups(): upslist[host].append(UPS) # print(upslist) data = {} ## Pull whatever data we would like into a dict of each ups for host in upslist: client = PyNUTClient(host, '3493') for UPS in upslist[host]: data[UPS] = client.list_vars(UPS) uploadInflux(data) # client = PyNUTClient('10.0.5.181', '3493') # # print(client.list_ups()) # print(client.list_vars("Net-UPS1"))