Merge pull request #75 from michbeck100/feature/add_default_value

Adds an optional default value for register values.
This commit is contained in:
bohdan-s
2022-11-16 14:04:09 +11:00
committed by GitHub
2 changed files with 9 additions and 4 deletions
+2 -1
View File
@@ -1,4 +1,4 @@
version: 0.2.0
version: 0.2.1
vendor: Sungrow
registers:
- read:
@@ -1144,6 +1144,7 @@ registers:
value: "Restarting"
- response: 0x4000
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","SH10RT-V112","SH8.0RT","SH6.0RT","SH5.0RT"]
- name: "running_state"
level: 2
+7 -3
View File
@@ -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