Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion packages/modules/common/abstract_device.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,5 +75,14 @@ def set_power_limit(self, power_limit: float) -> None:


class DeviceDescriptor:
def __init__(self, configuration_factory: Type):
def __init__(self,
configuration_factory: Type,
compatibility_bat_active: bool = False,
compatibility_bat_note: Optional[str] = None,
compatibility_device_note: Optional[str] = None,
special_icon: Optional[str] = None):
self.configuration_factory = configuration_factory
self.compatibility_bat_active = compatibility_bat_active
self.compatibility_bat_note = compatibility_bat_note
self.compatibility_device_note = compatibility_device_note
self.special_icon = special_icon
10 changes: 9 additions & 1 deletion packages/modules/devices/alpha_ess/alpha_ess/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,12 @@ def error_handler():
)


device_descriptor = DeviceDescriptor(configuration_factory=AlphaEss)
device_descriptor = DeviceDescriptor(
configuration_factory=AlphaEss,
compatibility_bat_active=True,
compatibility_bat_note="Kann Entladung nur komplett sperren. Über Webinterface oder App müssen einmalig Zeiten "
"für das Netzladen definiert werden. (Einstellungen - Funktionseinstellungen - Netzladen/Entladen). Hier einen "
"durchgängigen Zeitraum eintragen (Ladezeit_1: 00:00-23:00, Ladezeit_2: 23:00-00:00). Den Schalter 'Netzladen' "
"deaktivieren!",
compatibility_device_note="Für den Alpha Smile (ohne HI) wird ein Alpha Kit benötigt"
)
4 changes: 3 additions & 1 deletion packages/modules/devices/batterx/batterx/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,6 @@ def main(argv: List[str]) -> None:
run_using_positional_cli_args(read_legacy, argv)


device_descriptor = DeviceDescriptor(configuration_factory=BatterX)
device_descriptor = DeviceDescriptor(configuration_factory=BatterX,
compatibility_bat_active=True,
compatibility_bat_note="Kann Entladung nur komplett sperren.")
6 changes: 5 additions & 1 deletion packages/modules/devices/deye/deye/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,8 @@ def main(argv: List[str]):
run_using_positional_cli_args(read_legacy, argv)


device_descriptor = DeviceDescriptor(configuration_factory=Deye)
device_descriptor = DeviceDescriptor(
configuration_factory=Deye,
compatibility_device_note="Einige Versionen des LSE3 Dongles sind kompatibel. Die Auslesung über den LSW3 ist "
"nicht möglich!\nBei Inkompatibilität kann unser Netzwerk Modbus Adapter v2 eingesetzt werden."
)
6 changes: 5 additions & 1 deletion packages/modules/devices/good_we/good_we/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,8 @@ def initializer():
)


device_descriptor = DeviceDescriptor(configuration_factory=GoodWe)
device_descriptor = DeviceDescriptor(
configuration_factory=GoodWe,
compatibility_device_note="Der Lan-Dongle ist nicht ausreichend. Benötigt wird das Wifi-LAN-Kit, welches "
"in 2 Versionen vorliegt.\nBei Unklarheiten kann der GoodWe Support das zum Wechselrichter kompatible Kit nennen."
)
6 changes: 5 additions & 1 deletion packages/modules/devices/growatt/growatt/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,8 @@ def error_handler():
)


device_descriptor = DeviceDescriptor(configuration_factory=Growatt)
device_descriptor = DeviceDescriptor(
configuration_factory=Growatt,
compatibility_device_note="Einige Versionen des LSE3 Dongles sind kompatibel. Die Auslesung über den LSW3 ist "
"nicht möglich!\nBei Inkompatibilität kann unser Netzwerk Modbus Adapter v2 eingesetzt werden."
)
6 changes: 5 additions & 1 deletion packages/modules/devices/huawei/huawei/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,8 @@ def error_handler():
)


device_descriptor = DeviceDescriptor(configuration_factory=Huawei)
device_descriptor = DeviceDescriptor(
configuration_factory=Huawei,
compatibility_device_note="Die Auslesung über den Huawei SDongle hängt von der verwendeten Dongle-Version und "
"Firmware ab.\nIm Falle von Inkompatibilität kann eine Auslesung über unseren Netzwerk Modbus Adapter v2 erfolgen."
)
4 changes: 3 additions & 1 deletion packages/modules/devices/sigenergy/sigenergy/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,6 @@ def initializer():
)


device_descriptor = DeviceDescriptor(configuration_factory=Sigenergy)
device_descriptor = DeviceDescriptor(configuration_factory=Sigenergy,
compatibility_bat_active=True,
compatibility_bat_note="Kann Entladung nur komplett sperren.")
6 changes: 5 additions & 1 deletion packages/modules/devices/sofar/sofar/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,8 @@ def initializer():
)


device_descriptor = DeviceDescriptor(configuration_factory=Sofar)
device_descriptor = DeviceDescriptor(
configuration_factory=Sofar,
compatibility_device_note="Einige Versionen des LSE3 Dongles sind kompatibel. Die Auslesung über den LSW3 ist "
"nicht möglich!\nBei Inkompatibilität kann unser Netzwerk Modbus Adapter v2 eingesetzt werden."
)
5 changes: 4 additions & 1 deletion packages/modules/devices/solarmax/solarmax/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,7 @@ def main(argv: List[str]):
run_using_positional_cli_args(read_legacy, argv)


device_descriptor = DeviceDescriptor(configuration_factory=Solarmax)
device_descriptor = DeviceDescriptor(
configuration_factory=Solarmax,
compatibility_device_note="Kann nicht aktiv laden. Steuerbar ab Solarmax Firmware 3.4.4. Zur Nutzung muss die "
"Funktion 'Connectivity+' durch den Solarmax Support freigeschaltet werden.")
6 changes: 5 additions & 1 deletion packages/modules/devices/solis/solis/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,8 @@ def initializer():
)


device_descriptor = DeviceDescriptor(configuration_factory=Solis)
device_descriptor = DeviceDescriptor(
configuration_factory=Solis,
compatibility_device_note="Benötigt einen Solis Datalogger, der auch Modbus TCP-fähig ist.\nWelcher Datalogger "
"für einen speziellen Wechselrichtertyp benötigt wird, kann der Solis Support beantworten."
)
5 changes: 4 additions & 1 deletion packages/modules/devices/sungrow/sungrow_sg/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,7 @@ def initializer():
)


device_descriptor = DeviceDescriptor(configuration_factory=SungrowSG)
device_descriptor = DeviceDescriptor(
configuration_factory=SungrowSG,
compatibility_device_note="Ältere Modelle verfügen über einen nativen LAN-Port, neue Modelle benötigen den "
"Winet-S oder Winet-S2 Dongle.")
5 changes: 4 additions & 1 deletion packages/modules/devices/sungrow/sungrow_sh/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,7 @@ def initializer():
)


device_descriptor = DeviceDescriptor(configuration_factory=SungrowSH)
device_descriptor = DeviceDescriptor(
configuration_factory=SungrowSH,
compatibility_device_note="Ältere Modelle verfügen über einen nativen LAN-Port, neue Modelle benötigen den "
"Winet-S oder Winet-S2 Dongle.")
7 changes: 6 additions & 1 deletion packages/modules/devices/tesla/tesla/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,9 @@ def initializer():
)


device_descriptor = DeviceDescriptor(configuration_factory=Tesla)
device_descriptor = DeviceDescriptor(
configuration_factory=Tesla,
compatibility_device_note="Tesla hat die lokale API Anfang 2025 mittels Firmwareupdate abgeschaltet.\nFür "
"Neuanlagen muss aktuell auf unsere Zählerkits zurückgegriffen werden.",
special_icon="ℹ️"
)
Loading