mirror of
https://github.com/alexhopeoconnor/SunGather.git
synced 2026-10-23 19:12:11 +10:00
Fix PVOutput 0 values
This commit is contained in:
@@ -41,7 +41,7 @@ class export_mqtt(object):
|
|||||||
for ha_sensor in config.get('ha_sensors'):
|
for ha_sensor in config.get('ha_sensors'):
|
||||||
self.ha_sensors.append(ha_sensor)
|
self.ha_sensors.append(ha_sensor)
|
||||||
|
|
||||||
logging.info(f"MQTT: Configured {config.get('host')}:{config.get('port', 1883)}")
|
logging.info(f"MQTT: Configured {config.get('host')}:{config.get('port', 1883)}, HA Enabled = {config.get('homeassistant', False)}")
|
||||||
|
|
||||||
return self._isConfigured
|
return self._isConfigured
|
||||||
|
|
||||||
@@ -97,6 +97,7 @@ class export_mqtt(object):
|
|||||||
config_msg['device'] = { "name":"Solar Inverter", "mf":"Sungrow", "mdl":self.model, "connections":[["address", self.inverter_ip ]]}
|
config_msg['device'] = { "name":"Solar Inverter", "mf":"Sungrow", "mdl":self.model, "connections":[["address", self.inverter_ip ]]}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
logging.debug(f'MQTT: Topic; {ha_topic}, Message: {config_msg}')
|
||||||
result = self.mqtt_client.publish(ha_topic, json.dumps(config_msg), retain=True)
|
result = self.mqtt_client.publish(ha_topic, json.dumps(config_msg), retain=True)
|
||||||
result.wait_for_publish()
|
result.wait_for_publish()
|
||||||
if result.rc != mqtt.MQTT_ERR_SUCCESS:
|
if result.rc != mqtt.MQTT_ERR_SUCCESS:
|
||||||
|
|||||||
@@ -76,17 +76,20 @@ class export_pvoutput(object):
|
|||||||
# Add new data to old data and increase count of data points
|
# Add new data to old data and increase count of data points
|
||||||
for parameter in self.parameters:
|
for parameter in self.parameters:
|
||||||
if parameter.get('name')[0] == 'v':
|
if parameter.get('name')[0] == 'v':
|
||||||
if not self.collected_data.get(parameter.get('name'),False):
|
if self.collected_data.get(parameter.get('name'),False):
|
||||||
|
if parameter.get('multiple'):
|
||||||
|
self.collected_data[parameter.get('name')] = round(self.collected_data[parameter.get('name')] + (inverter.get(parameter.get('register')) * parameter.get('multiple')),3)
|
||||||
|
else:
|
||||||
|
self.collected_data[parameter.get('name')] = round(self.collected_data[parameter.get('name')] + inverter.get(parameter.get('register')),3)
|
||||||
|
else:
|
||||||
if inverter.get(parameter.get('register')):
|
if inverter.get(parameter.get('register')):
|
||||||
self.collected_data[parameter.get('name')] = 0
|
if parameter.get('multiple'):
|
||||||
|
self.collected_data[parameter.get('name')] = round(inverter.get(parameter.get('register')) * parameter.get('multiple'),3)
|
||||||
|
else:
|
||||||
|
self.collected_data[parameter.get('name')] = inverter.get(parameter.get('register'))
|
||||||
else:
|
else:
|
||||||
logging.warning(f"PVOutput: {parameter.get('name')} configured to use {parameter.get('register')} but inverter is not returning this register")
|
logging.warning(f"PVOutput: {parameter.get('name')} configured to use {parameter.get('register')} but inverter is not returning this register")
|
||||||
|
elif parameter.get('name') == 'c1':
|
||||||
if parameter.get('multiple'):
|
|
||||||
self.collected_data[parameter.get('name')] = round(self.collected_data[parameter.get('name')] + (inverter.get(parameter.get('register')) * parameter.get('multiple')),3)
|
|
||||||
else:
|
|
||||||
self.collected_data[parameter.get('name')] = round(self.collected_data[parameter.get('name')] + inverter.get(parameter.get('register')),3)
|
|
||||||
if parameter.get('name') == 'c1':
|
|
||||||
cumulative_energy = parameter.get('value')
|
cumulative_energy = parameter.get('value')
|
||||||
|
|
||||||
if self.collected_data.get('count',False):
|
if self.collected_data.get('count',False):
|
||||||
@@ -104,7 +107,7 @@ class export_pvoutput(object):
|
|||||||
if v[1] == '6' or v[1] == '7': # Round to 1 decimal place
|
if v[1] == '6' or v[1] == '7': # Round to 1 decimal place
|
||||||
self.collected_data[v] = round(self.collected_data[v] / self.collected_data['count'], 1)
|
self.collected_data[v] = round(self.collected_data[v] / self.collected_data['count'], 1)
|
||||||
else: # Getting errors when uploading decimals for power/energy so return INT
|
else: # Getting errors when uploading decimals for power/energy so return INT
|
||||||
self.collected_data[v] = int(self.collected_data[v] / self.collected_data['count'])
|
self.collected_data[v] = int((self.collected_data[v] / self.collected_data['count']))
|
||||||
|
|
||||||
data_point = str(now.strftime("%Y%m%d")) + "," + str(now.strftime("%H:%M"))
|
data_point = str(now.strftime("%Y%m%d")) + "," + str(now.strftime("%H:%M"))
|
||||||
|
|
||||||
@@ -121,6 +124,7 @@ class export_pvoutput(object):
|
|||||||
self.payload_data = self.payload_data + ";"
|
self.payload_data = self.payload_data + ";"
|
||||||
else:
|
else:
|
||||||
self.payload_data = ""
|
self.payload_data = ""
|
||||||
|
|
||||||
self.payload_data = self.payload_data + data_point
|
self.payload_data = self.payload_data + data_point
|
||||||
|
|
||||||
self.batch_count +=1
|
self.batch_count +=1
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
__version__ = '0.2.5'
|
__version__ = '0.2.6'
|
||||||
Reference in New Issue
Block a user