Skip to content

Commit

Permalink
Support for JSON output to file.
Browse files Browse the repository at this point in the history
  • Loading branch information
githubDante committed Sep 15, 2023
1 parent c07949e commit d91f755
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions deye_controller/deye_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@


def read_inverter(address: str, logger_serial: int, batt_only=False, power_only=False, combo=False,
as_json=False):
as_json=False, to_file=None):
inv = PySolarmanV5(address, int(logger_serial), port=8899, mb_slave_id=1, verbose=False, socket_timeout=10,
error_correction=True)
iterator = []
Expand Down Expand Up @@ -47,7 +47,16 @@ def read_inverter(address: str, logger_serial: int, batt_only=False, power_only=
print(string, flush=True)

if as_json:
print(json.dumps(js, indent=2, default=str))
if to_file:
try:
with open(to_file, 'w') as f:
f.write(json.dumps(js, indent=2, default=str))
print(f'Data saved to: {to_file}')
except Exception as e:
print(f'Error occurred during the write to <{to_file}>. Error: {e}')
print(json.dumps(js, indent=2, default=str))
else:
print(json.dumps(js, indent=2, default=str))

try:
inv.disconnect()
Expand Down Expand Up @@ -89,11 +98,12 @@ def read_from_inverter():
parser.add_argument('--power', help='Read only total power related parameters', action='store_true')
parser.add_argument('--combo', help='Read only power/battery related parameters', action='store_true')
parser.add_argument('--json', help='Show the data as JSON', action='store_true')
parser.add_argument('--out', help='Write the JSON output to this file', required=False, type=str, default=False)
parser.add_argument('address', help='Datalogger IP address')
parser.add_argument('serial', help='Datalogger serial', type=int)
opts = parser.parse_args()
read_inverter(opts.address, opts.serial, batt_only=opts.battery, power_only=opts.power, combo=opts.combo,
as_json=opts.json)
as_json=opts.json, to_file=opts.out)


def test_register():
Expand Down

0 comments on commit d91f755

Please sign in to comment.