Files
schleppeUPSConsumption/apcWatts.py
2022-11-28 12:54:15 +01:00

39 lines
901 B
Python

# https://download.schneider-electric.com/files?p_enDocType=Quick+start+guide&p_File_Name=990-9840B-EN.pdf&p_Doc_Ref=SPD_LFLG-A32G3L_EN
import time
from pyModbusTCP.client import ModbusClient
from utils import getConfig
from logger import logger
config = getConfig()
host = config['modbus']['host']
port = config['modbus']['port']
c = ModbusClient(host=host, port=port, unit_id=1, auto_open=True)
def getAmps():
amps = c.read_holding_registers(140, 1)
if amps:
return amps[0] / 32
else:
return getAmps()
def getVolts():
volts = c.read_holding_registers(142, 1)
if volts:
return volts[0] / 64
else:
return getVolts()
def watts():
return getVolts() * getAmps()
while True:
currentWatts = watts()
print('Current power draw: {:.2f}W'.format(currentWatts))
telemetry = { 'watts': currentWatts }
logger.info("Current power draw", es=telemetry)
time.sleep(1)