mirror of
https://github.com/alexhopeoconnor/SunGather.git
synced 2026-10-20 09:51:28 +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,7 +1140,8 @@ registers:
|
||||
value: "Restarting"
|
||||
- response: 0x4000
|
||||
value: "EMS Run"
|
||||
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"]
|
||||
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"]
|
||||
- name: "running_state"
|
||||
level: 2
|
||||
address: 13001
|
||||
|
||||
@@ -233,14 +233,18 @@ class SungrowInverter():
|
||||
|
||||
# We convert a system response to a human value
|
||||
if register.get('datarange'):
|
||||
match = False
|
||||
for value in register.get('datarange'):
|
||||
if value['response'] == rr.registers[num]:
|
||||
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'):
|
||||
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
|
||||
self.latest_scrape[register_name] = register_value
|
||||
|
||||
Reference in New Issue
Block a user