301 lines
8.2 KiB
Plaintext
301 lines
8.2 KiB
Plaintext
"""Sunsynk hybrid inverter sensor definitions."""
|
|
|
|
CELSIUS = "°C"
|
|
KWH = "kWh"
|
|
AMPS = "A"
|
|
VOLT = "V"
|
|
WATT = "W"
|
|
|
|
_SENSORS = []
|
|
|
|
##########
|
|
# Battery
|
|
##########
|
|
_SENSORS += (
|
|
(182, "Battery temperature", CELSIUS, 0.1),
|
|
(183, "Battery voltage", VOLT, 0.01),
|
|
(184, "Battery SOC", "%"),
|
|
(190, "Battery power", WATT, -1),
|
|
(191, "Battery current", AMPS, -0.01),
|
|
)
|
|
|
|
#################
|
|
# Inverter Power
|
|
#################
|
|
_SENSORS += (
|
|
(175, "Inverter power", WATT, -1),
|
|
(154, "Inverter voltage", VOLT, 0.1),
|
|
(193, "Inverter frequency", "Hz", 0.01),
|
|
)
|
|
|
|
#############
|
|
# Grid Power
|
|
#############
|
|
_SENSORS += (
|
|
(609, "Grid frequency", "Hz", 0.01),
|
|
(169, "Grid power", WATT, -1), # L1(167) + L2(168)
|
|
(167, "Grid LD power", WATT, -1), # L1 seems to be LD
|
|
(168, "Grid L2 power", WATT, -1),
|
|
(150, "Grid voltage", VOLT, 0.1),
|
|
(598, "Grid voltage L1", VOLT, 0.1),
|
|
(599, "Grid voltage L2", VOLT, 0.1),
|
|
(600, "Grid voltage L3", VOLT, 0.1),
|
|
((160, 161), "Grid current", AMPS, (0.01, 0.01)),
|
|
(172, "Grid CT power", WATT, -1),
|
|
)
|
|
|
|
#############
|
|
# Load Power
|
|
#############
|
|
_SENSORS += (
|
|
(178, "Load power", WATT, -1), # L1(176) + L2(177)
|
|
(176, "Load L1 power", WATT, -1),
|
|
(177, "Load L2 power", WATT, -1),
|
|
)
|
|
|
|
################
|
|
# Solar Power 1
|
|
################
|
|
_SENSORS += (
|
|
(186, "PV1 power", WATT, -1),
|
|
(109, "PV1 voltage", VOLT, 0.1),
|
|
(110, "PV1 current", AMPS, 0.1),
|
|
)
|
|
|
|
################
|
|
# Solar Power 2
|
|
################
|
|
_SENSORS += (
|
|
(187, "PV2 power", WATT, -1),
|
|
(111, "PV2 voltage", VOLT, 0.1),
|
|
(112, "PV2 current", AMPS, 0.1),
|
|
)
|
|
|
|
###################
|
|
# Power on Outputs
|
|
###################
|
|
_SENSORS += (
|
|
(166, "AUX power", WATT, -1),
|
|
(175, "Essential power 1", WATT, (1, 1, -1)),
|
|
(167, "Essential power 1", WATT, (1, 1, -1)),
|
|
(166, "Essential power 1", WATT, (1, 1, -1)),
|
|
(172, "Non-Essential power", WATT, (1, -1)),
|
|
(167, "Non-Essential power", WATT, (1, -1)),
|
|
)
|
|
|
|
###################
|
|
# Energy
|
|
###################
|
|
_SENSORS += (
|
|
(60, "Day Active Energy", KWH, -0.1),
|
|
(70, "Day Battery Charge", KWH, 0.1),
|
|
(71, "Day Battery discharge", KWH, 0.1),
|
|
(77, "Day Grid Export", KWH, 0.1),
|
|
(76, "Day Grid Import", KWH, 0.1),
|
|
# Sensor (200, "Day Load Power", KWH, 0.01),
|
|
(84, "Day Load Energy", KWH, 0.1),
|
|
(108, "Day PV Energy", KWH, 0.1),
|
|
(61, "Day Reactive Energy", "kVarh", -0.1),
|
|
# Sensor ((201, 202), "History Load Power", KWH, 0.1),
|
|
(67, "Month Grid Energy", KWH, 0.1),
|
|
(66, "Month Load Energy", KWH, 0.1),
|
|
(65, "Month PV Energy", KWH, 0.1),
|
|
((63, 64), "Total Active Energy", KWH, 0.1), # signed?
|
|
((72, 73), "Total Battery Charge", KWH, 0.1),
|
|
((74, 75), "Total Battery Discharge", KWH, 0.1),
|
|
((81, 82), "Total Grid Export", KWH, 0.1),
|
|
((78, 80), "Total Grid Import", KWH, 0.1),
|
|
((85, 86), "Total Load Energy", KWH, 0.1),
|
|
((96, 97), "Total PV Energy", KWH, 0.1),
|
|
((98, 99), "Year Grid Export", KWH, 0.1),
|
|
((87, 88), "Year Load Energy", KWH, 0.1),
|
|
((68, 69), "Year PV Energy", KWH, 0.1),
|
|
)
|
|
|
|
##########
|
|
# General
|
|
##########
|
|
RATED_POWER = ((16, 17), "Rated power", WATT, 0.1)
|
|
_SENSORS.append(RATED_POWER)
|
|
_SENSORS += (
|
|
(0, "Device Type"),
|
|
((103, 104, 105, 106, 107), "Fault"),
|
|
(59, "Overall state"),
|
|
(92, "SD Status", ""), # type: ignore
|
|
((3, 4, 5, 6, 7), "Serial"),
|
|
(90, "DC transformer temperature", CELSIUS, 0.1),
|
|
(95, "Environment temperature", CELSIUS, 0.1),
|
|
(91, "Radiator temperature", CELSIUS, 0.1),
|
|
(194, "Grid Connected Status"),
|
|
)
|
|
###########
|
|
# Settings
|
|
###########
|
|
_SENSORS += (
|
|
(200, "Control Mode"),
|
|
(230, "Grid Charge Battery current", AMPS, -1),
|
|
(232, "Grid Charge enabled", "", -1),
|
|
(312, "Battery charging voltage", VOLT, 0.01),
|
|
(603, "Bat1 SOC", "%"),
|
|
(611, "Bat1 Cycle"),
|
|
)
|
|
|
|
|
|
#BATTERY_EQUALIZATION_VOLTAGE = NumberRWSensor (
|
|
# 201, "Battery Equalization voltage", VOLT, 0.01, min=MIN_VOLTAGE, max=MAX_VOLTAGE
|
|
#)
|
|
#BATTERY_ABSORPTION_VOLTAGE = NumberRWSensor (
|
|
# 202, "Battery Absorption voltage", VOLT, 0.01, min=MIN_VOLTAGE, max=MAX_VOLTAGE
|
|
#)
|
|
#BATTERY_FLOAT_VOLTAGE = NumberRWSensor (
|
|
# 203, "Battery Float voltage", VOLT, 0.01, min=MIN_VOLTAGE, max=MAX_VOLTAGE
|
|
#)
|
|
|
|
#BATTERY_SHUTDOWN_CAPACITY = NumberRWSensor (217, "Battery Shutdown Capacity", "%")
|
|
#BATTERY_RESTART_CAPACITY = NumberRWSensor (218, "Battery Restart Capacity", "%")
|
|
#BATTERY_LOW_CAPACITY = NumberRWSensor (
|
|
# 219,
|
|
# "Battery Low Capacity",
|
|
# "%",
|
|
# min=BATTERY_SHUTDOWN_CAPACITY,
|
|
# max=BATTERY_RESTART_CAPACITY,
|
|
#)
|
|
#BATTERY_SHUTDOWN_CAPACITY.max = BATTERY_LOW_CAPACITY
|
|
#BATTERY_RESTART_CAPACITY.min = BATTERY_LOW_CAPACITY
|
|
|
|
#BATTERY_SHUTDOWN_VOLTAGE = NumberRWSensor (
|
|
# 220, "Battery Shutdown voltage", VOLT, 0.01, min=MIN_VOLTAGE
|
|
#)
|
|
#BATTERY_RESTART_VOLTAGE = NumberRWSensor (
|
|
# 221, "Battery Restart voltage", VOLT, 0.01, max=MAX_VOLTAGE
|
|
#)
|
|
#BATTERY_LOW_VOLTAGE = NumberRWSensor (
|
|
# 222,
|
|
# "Battery Low voltage",
|
|
# VOLT,
|
|
# 0.01,
|
|
# min=BATTERY_SHUTDOWN_VOLTAGE,
|
|
# max=BATTERY_RESTART_VOLTAGE,
|
|
#)
|
|
#BATTERY_SHUTDOWN_VOLTAGE.max = BATTERY_LOW_VOLTAGE
|
|
#BATTERY_RESTART_VOLTAGE.min = BATTERY_LOW_VOLTAGE
|
|
#
|
|
#_SENSORS += (
|
|
# BATTERY_EQUALIZATION_VOLTAGE,
|
|
# BATTERY_ABSORPTION_VOLTAGE,
|
|
# BATTERY_FLOAT_VOLTAGE,
|
|
# BATTERY_SHUTDOWN_CAPACITY,
|
|
# BATTERY_RESTART_CAPACITY,
|
|
# BATTERY_LOW_CAPACITY,
|
|
# BATTERY_SHUTDOWN_VOLTAGE,
|
|
# BATTERY_RESTART_VOLTAGE,
|
|
# BATTERY_LOW_VOLTAGE,
|
|
#)
|
|
|
|
#################
|
|
# System program
|
|
#################
|
|
#_SENSORS.append(
|
|
# SelectRWSensor (243, "Priority Mode", options={0: "Battery first", 1: "Load first"})
|
|
#)
|
|
"""
|
|
PROG1_TIME = (250, "Prog1 Time")
|
|
PROG2_TIME = (251, "Prog2 Time", min=PROG1_TIME)
|
|
PROG3_TIME = (252, "Prog3 Time", min=PROG2_TIME)
|
|
PROG4_TIME = (253, "Prog4 Time", min=PROG3_TIME)
|
|
PROG5_TIME = (254, "Prog5 Time", min=PROG4_TIME)
|
|
PROG6_TIME = (255, "Prog6 Time", min=PROG5_TIME)
|
|
PROG1_TIME.min = PROG6_TIME
|
|
PROG1_TIME.max = PROG2_TIME
|
|
PROG2_TIME.max = PROG3_TIME
|
|
PROG3_TIME.max = PROG4_TIME
|
|
PROG4_TIME.max = PROG5_TIME
|
|
PROG5_TIME.max = PROG6_TIME
|
|
PROG6_TIME.max = PROG1_TIME
|
|
|
|
PROG_CHARGE_OPTIONS = {
|
|
4: "No Grid or Gen",
|
|
5: "Allow Grid",
|
|
6: "Allow Gen",
|
|
7: "Allow Grid & Gen",
|
|
}
|
|
PROGRAM = (
|
|
PROG1_TIME,
|
|
PROG2_TIME,
|
|
PROG3_TIME,
|
|
PROG4_TIME,
|
|
PROG5_TIME,
|
|
PROG6_TIME,
|
|
(256, "Prog1 power", WATT, max=RATED_POWER),
|
|
(257, "Prog2 power", WATT, max=RATED_POWER),
|
|
(258, "Prog3 power", WATT, max=RATED_POWER),
|
|
(259, "Prog4 power", WATT, max=RATED_POWER),
|
|
(260, "Prog5 power", WATT, max=RATED_POWER),
|
|
(261, "Prog6 power", WATT, max=RATED_POWER),
|
|
(268, "Prog1 Capacity", "%", min=BATTERY_LOW_CAPACITY),
|
|
(269, "Prog2 Capacity", "%", min=BATTERY_LOW_CAPACITY),
|
|
(270, "Prog3 Capacity", "%", min=BATTERY_LOW_CAPACITY),
|
|
(271, "Prog4 Capacity", "%", min=BATTERY_LOW_CAPACITY),
|
|
(272, "Prog5 Capacity", "%", min=BATTERY_LOW_CAPACITY),
|
|
(273, "Prog6 Capacity", "%", min=BATTERY_LOW_CAPACITY),
|
|
(274, "Prog1 Charge", options=PROG_CHARGE_OPTIONS),
|
|
(275, "Prog2 Charge", options=PROG_CHARGE_OPTIONS),
|
|
(276, "Prog3 Charge", options=PROG_CHARGE_OPTIONS),
|
|
(277, "Prog4 Charge", options=PROG_CHARGE_OPTIONS),
|
|
(278, "Prog5 Charge", options=PROG_CHARGE_OPTIONS),
|
|
SelectRWSensor (279, "Prog6 Charge", options=PROG_CHARGE_OPTIONS),
|
|
)
|
|
#_SENSORS.extend(PROGRAM)
|
|
PROG_VOLT = (
|
|
NumberRWSensor (
|
|
262,
|
|
"Prog1 voltage",
|
|
VOLT,
|
|
0.01,
|
|
min=BATTERY_LOW_VOLTAGE,
|
|
max=BATTERY_FLOAT_VOLTAGE,
|
|
),
|
|
NumberRWSensor (
|
|
263,
|
|
"Prog2 voltage",
|
|
VOLT,
|
|
0.01,
|
|
min=BATTERY_LOW_VOLTAGE,
|
|
max=BATTERY_FLOAT_VOLTAGE,
|
|
),
|
|
NumberRWSensor (
|
|
264,
|
|
"Prog3 voltage",
|
|
VOLT,
|
|
0.01,
|
|
min=BATTERY_LOW_VOLTAGE,
|
|
max=BATTERY_FLOAT_VOLTAGE,
|
|
),
|
|
NumberRWSensor (
|
|
265,
|
|
"Prog4 voltage",
|
|
VOLT,
|
|
0.01,
|
|
min=BATTERY_LOW_VOLTAGE,
|
|
max=BATTERY_FLOAT_VOLTAGE,
|
|
),
|
|
NumberRWSensor (
|
|
266,
|
|
"Prog5 voltage",
|
|
VOLT,
|
|
0.01,
|
|
min=BATTERY_LOW_VOLTAGE,
|
|
max=BATTERY_FLOAT_VOLTAGE,
|
|
),
|
|
NumberRWSensor (
|
|
267,
|
|
"Prog6 voltage",
|
|
VOLT,
|
|
0.01,
|
|
min=BATTERY_LOW_VOLTAGE,
|
|
max=BATTERY_FLOAT_VOLTAGE,
|
|
),
|
|
)
|
|
#_SENSORS.extend(PROG_VOLT)
|
|
"""
|