Exemplo n.º 1
0
import logging
import sys

import custom_components.goodwe.goodwe_inverter as inverter

logging.basicConfig(
    format=
    "%(asctime)-15s %(funcName)s(%(lineno)d) - %(levelname)s: %(message)s",
    stream=sys.stderr,
    level=getattr(logging, "DEBUG", None),
)

# Set the appropriate IP address
IP_ADDRESS = "192.168.1.14"

inverter = asyncio.run(inverter.discover(IP_ADDRESS, 8899))
response = asyncio.run(inverter.read_runtime_data())

for (sensor, _, _, unit, name, _) in inverter.sensors():
    print(f"{sensor}: \t\t {name} = {response[sensor]} {unit}")

# print(asyncio.run(inverter.send_command("AA55C07F0102000241", (80,))))

# print(asyncio.run(inverter.send_command("F703B798000136C7")))
# Read settings
# print(asyncio.run(inverter.send_command("AA55C07F0109000248")))

# General mode
# print(asyncio.run(inverter.send_command("AA55C07F03590100029B")))
# Off grid mode
# print(asyncio.run(inverter.send_command("AA55C07F03590101029C")))
Exemplo n.º 2
0
    frame_bytes = bytearray(frame)
    for i in range(1, len(frame_bytes) - 2, 1):
        checksum += frame_bytes[i] & 255
    frame_bytes[len(frame_bytes) - 2] = int((checksum & 255))
    return frame_bytes.hex()


result = asyncio.run(search_inverters()).decode("utf-8").split(",")
print(
    f"Located inverter at IP: {result[0]}, mac: {result[1]}, name: {result[2]}"
)

# EM/ES
try_command("AA55C07F0102000241", result[0])
# SolarGo ?
try_command("7F03753100280409", result[0])
# Omnik v5 ?
try_command("197d0001000dff045e50303036564657f6e60d", result[0])
# Omnik 4 ?
sn = bytes(result[2][10:], 'utf-8').hex()
try_command(omnik_command(sn), result[0])
# Omnik 4 reversed ?
sn = "".join(reversed([sn[i:i + 2] for i in range(0, len(sn), 2)]))
try_command(omnik_command(sn), result[0])

print(f"Identifying inverter at IP: {result[0]}")
inverter = asyncio.run(discover(result[0], 8899))
print(
    f"Identified inverter model: {inverter.model_name}, serialNr: {inverter.serial_number}"
)
Exemplo n.º 3
0
import custom_components.goodwe.goodwe_inverter as inverter

logging.basicConfig(
    format="%(asctime)-15s %(funcName)s(%(lineno)d) - %(levelname)s: %(message)s",
    stream=sys.stderr,
    level=getattr(logging, "DEBUG", None),
)

# Set the appropriate IP address
IP_ADDRESS = "192.168.1.14"

PORT = 8899
TIMEOUT = 2
RETRIES = 3

inverter = asyncio.run(inverter.discover(IP_ADDRESS, PORT, TIMEOUT, RETRIES))
print(f"Identified inverter\n"
      f"- Model: {inverter.model_name}\n"
      f"- SerialNr: {inverter.serial_number}\n"
      f"- Version: {inverter.software_version}"
      )

response = asyncio.run(inverter.read_runtime_data())

for (sensor, _, _, unit, name, _) in inverter.sensors():
    print(f"{sensor}: \t\t {name} = {response[sensor]} {unit}")

#response = asyncio.run(inverter.read_settings_data())

#for (sensor, _, _, unit, name, _) in inverter.settings():
#    print(f"{sensor}: \t\t {name} = {response[sensor]} {unit}")