Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # For the record, capnchamomile made this work well enough to
- # finish the required hacking. Thanks Dan!
- # You're welcome!
- from pymodbus.client.sync import ModbusSerialClient as ModbusClient
- import paho.mqtt.client as mqtt
- from time import sleep, gmtime, strftime
- import datetime
- mqtt_client = mqtt.Client()
- mqtt_client.connect("192.168.10.202")
- client = ModbusClient(method='rtu', port='/dev/ttyUSB0', baudrate=115200, stopbits=1, bytesize=8, timeout=2)
- client.connect()
- while True:
- result = client.read_input_registers(0x3100,20, unit=1)
- solarWatt = float(result.registers[2] / 100.0)
- solarVoltage = float(result.registers[0] / 100.0)
- solarCurrent = float(result.registers[1] / 100.0)
- batteryVoltage = float(result.registers[4] / 100.0)
- chargeCurrent = float(result.registers[5] / 100.0)
- loadWatts = float(result.registers[19] / 100.0)
- # mqtt_client.publish("solar", "|-------------------------------|")
- mqtt_client.publish("solar/solarVoltage", str(solarVoltage))
- mqtt_client.publish("solar/solarCurrent", str(solarCurrent))
- mqtt_client.publish("solar/solarWattage", str(solarWatt))
- mqtt_client.publish("solar/batteryVoltage", str(batteryVoltage))
- mqtt_client.publish("solar/chargeCurrent", str(chargeCurrent))
- mqtt_client.publish("solar/loadWatts", str(loadWatts))
- # mqtt_client.publish("solar", strftime("%m-%d-%Y %H:%M:%S", gmtime()))
- sleep(60)
- mqtt_client.disconnect()
- client.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement