mirror of
https://github.com/alexhopeoconnor/SunGather.git
synced 2026-10-23 19:12:11 +10:00
Adds an optional default value for register values. Will be used if datarange values don't match.
This commit is contained in:
@@ -1140,6 +1140,7 @@ registers:
|
|||||||
value: "Restarting"
|
value: "Restarting"
|
||||||
- response: 0x4000
|
- response: 0x4000
|
||||||
value: "EMS Run"
|
value: "EMS Run"
|
||||||
|
default: "Unknown"
|
||||||
models: ["SH5K-20","SH3K6","SH4K6","SH5K-V13","SH5K-30","SH3K6-30","SH4K6-30","SH5.0RS","SH3.6RS","SH4.6RS","SH6.0RS","SH10RT","SH8.0RT","SH6.0RT","SH5.0RT"]
|
models: ["SH5K-20","SH3K6","SH4K6","SH5K-V13","SH5K-30","SH3K6-30","SH4K6-30","SH5.0RS","SH3.6RS","SH4.6RS","SH6.0RS","SH10RT","SH8.0RT","SH6.0RT","SH5.0RT"]
|
||||||
- name: "running_state"
|
- name: "running_state"
|
||||||
level: 2
|
level: 2
|
||||||
|
|||||||
@@ -233,14 +233,18 @@ class SungrowInverter():
|
|||||||
|
|
||||||
# We convert a system response to a human value
|
# We convert a system response to a human value
|
||||||
if register.get('datarange'):
|
if register.get('datarange'):
|
||||||
|
match = False
|
||||||
for value in register.get('datarange'):
|
for value in register.get('datarange'):
|
||||||
if value['response'] == rr.registers[num]:
|
if value['response'] == rr.registers[num]:
|
||||||
register_value = value['value']
|
register_value = value['value']
|
||||||
|
match = True
|
||||||
|
if not match:
|
||||||
|
default = register.get('default')
|
||||||
|
logging.debug(f"No matching value for {register_value} in datarange of {register_name}, using default {default}")
|
||||||
|
register_value = default
|
||||||
|
|
||||||
if register.get('accuracy'):
|
if register.get('accuracy'):
|
||||||
register_value = round(register_value * register.get('accuracy'),2)
|
register_value = round(register_value * register.get('accuracy'), 2)
|
||||||
|
|
||||||
# Set the final register value with adjustments above included
|
# Set the final register value with adjustments above included
|
||||||
self.latest_scrape[register_name] = register_value
|
self.latest_scrape[register_name] = register_value
|
||||||
|
|||||||
Reference in New Issue
Block a user