I'm asking for help
For 3 weeks, I try to get along, but I don't succeed
I've created another scrip for data scans
one problem
reads healthy numbers well
negatives (65250 must -286)
I found a formula to calculate
unable to get stuck (65250 -65536 = - 286)
how to make correct numbers
positive and negative
May 6 16:38:27 rimaspetronis weewx[25649]: Vc: 248.60
May 6 16:38:27 rimaspetronis weewx[25649]: Vab: 435.30
May 6 16:38:27 rimaspetronis weewx[25649]: Vbc: 427.40
May 6 16:38:27 rimaspetronis weewx[25649]: Vca: 438.40
May 6 16:38:27 rimaspetronis weewx[25649]: Hz: 50.00
May 6 16:38:27 rimaspetronis weewx[25649]: Kwa: 65437.00
May 6 16:38:27 rimaspetronis weewx[25649]: Kwb: 65439.00
May 6 16:38:27 rimaspetronis weewx[25649]: Kwc: 65422.00
2019 m. kovas 19 d., antradienis 16:10:50 UTC+2, rimas petronis rašė:
>
> good day
>
> sorry my weak english translated with google
> i really liked the program not only watching the weather but watching
> other devices i would like to connect to weewx data in another database
>
> database and other composition
>
> [image: image.png]
>
>
> can be connected
>
--
You received this message because you are subscribed to the Google Groups
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/weewx-user/456cc7c9-fe9b-4b1c-bd30-dfe5ebeda804%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
import syslog
import weewx
from weewx.engine import StdService
from pymodbus.client.sync import ModbusTcpClient
class AddelectricData(StdService):
def __init__(self, engine, config_dict):
# Initialize Superclass
super(AddelectricData, self).__init__(engine, config_dict)
# Grab the configuration parameters for communication with the charge controller
try:
self.bind(weewx.NEW_ARCHIVE_RECORD, self.new_archive_packet)
except KeyError as e:
syslog.syslog(syslog.LOG_ERR, "Electric failed to configure")
def new_archive_packet(self, event):
client = ModbusTcpClient('192.168.1.199', port=502)
try:
client.connect()
rr = client.read_holding_registers(7680, 30, unit=10)
if rr is None:
client.close()
syslog.syslog(syslog.LOG_ERR, "Failed to connect to tristar")
else:
# Voltage Related Statistics
Kwha = float(rr.registers[1]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Kwha: %.2f" % Kwha)
event.record['Kwha'] = Kwha
Kwhr = float(rr.registers[7]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Kwhr: %.2f" % Kwhr)
event.record['Kwhr'] = Kwhr
Aa = float(rr.registers[8]) / 100.00
syslog.syslog(syslog.LOG_DEBUG, "Aa: %.2f" % Aa)
event.record['Aa'] = Aa
Ab = float(rr.registers[9]) / 100.00
syslog.syslog(syslog.LOG_DEBUG, "Ab: %.2f" % Ab)
event.record['Ab'] = Ab
Ac = float(rr.registers[10]) / 100.00
syslog.syslog(syslog.LOG_DEBUG, "Ac: %.2f" % Ac)
event.record['Ac'] = Ac
Va = float(rr.registers[11]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Va: %.2f" % Va)
event.record['Va'] = Va
Vb = float(rr.registers[12]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Vb: %.2f" % Vb)
event.record['Vb'] = Vb
Vc = float(rr.registers[13]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Vc: %.2f" % Vc)
event.record['Vc'] = Vc
Vab = float(rr.registers[14]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Vab: %.2f" % Vab)
event.record['Vab'] = Vab
Vbc = float(rr.registers[15]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Vbc: %.2f" % Vbc)
event.record['Vbc'] = Vbc
Vca = float(rr.registers[16]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Vca: %.2f" % Vca)
event.record['Vca'] = Vca
Hz = float(rr.registers[17]) / 10.00
syslog.syslog(syslog.LOG_DEBUG, "Hz: %.2f" % Hz)
event.record['Hz'] = Hz
Kwa = int(rr.registers[22])
syslog.syslog(syslog.LOG_DEBUG, "Kwa: %.2f" % Kwa)
event.record['Kwa'] = Kwa
Kwb = int(rr.registers[23])
syslog.syslog(syslog.LOG_DEBUG, "Kwb: %.2f" % Kwb)
event.record['Kwb'] = Kwb
Kwc = int(rr.registers[24])
syslog.syslog(syslog.LOG_DEBUG, "Kwc: %.2f" % Kwc)
event.record['Kwc'] = Kwc
Kw = int(rr.registers[25])
syslog.syslog(syslog.LOG_DEBUG, "Kw: %.2f" % Kw)
event.record['Kw'] = Kw
client.close()
except Exception as e:
syslog.syslog(syslog.LOG_ERR, "Error processing record from electric: " + str(e))
client.close()