from pymodbus.client import ModbusTcpClient
import time, json
METER_IP = "192.168.1.100"
client = ModbusTcpClient(METER_IP)
CO2_FACTOR = 0.74 # kg CO2/kWh (Malaysia)
while True:
resp = client.read_holding_registers(0, 10, unit=1)
if resp:
power = resp.registers[0] * 0.1 # kW
energy = resp.registers[2] * 0.01 # kWh
co2 = energy * CO2_FACTOR
print(json.dumps({"power":power,"energy":energy,"co2":co2}))
time.sleep(300)