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()

Reply via email to