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 weewx-user+unsubscr...@googlegroups.com. 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()