@@ -56,6 +56,12 @@ class InverterOptions:
5656 dongle_serial_number : int = 0
5757
5858
59+ DRIVER_ERROR_MSG = (
60+ "DRIVER is obsolete; remove it and use PORT schemes "
61+ "(tcp://, serial-tcp://, udp://, /dev/..., or solarman://)."
62+ )
63+
64+
5965@dataclass
6066class Options (MQTTOptions ):
6167 """HASS Addon Options."""
@@ -90,28 +96,18 @@ async def init_addon(self) -> None:
9096 await super ().init_addon ()
9197 logging .addLevelName (LOG_TRACE , "TRACE" )
9298
93- global_solarman = self .driver == "solarman"
9499 if self .driver :
95- _LOG .warning (
96- "DRIVER is obsolete and ignored; use PORT schemes "
97- "(tcp://, serial-tcp://, udp://, /dev/..., or solarman://). "
98- "Got DRIVER=%r" ,
99- self .driver ,
100- )
101- self .driver = ""
100+ _LOG .error (DRIVER_ERROR_MSG )
101+ raise ValueError (DRIVER_ERROR_MSG )
102102
103103 for inv in self .inverters :
104104 inv .ha_prefix = slug (inv .ha_prefix .strip ())
105+ if not inv .ha_prefix :
106+ raise ValueError (f"Inverter { inv .serial_nr } : HA_PREFIX is required" )
105107
106- inv_solarman = inv .driver == "solarman"
107108 if inv .driver :
108- _LOG .warning (
109- "%s: per-inverter DRIVER is obsolete and ignored "
110- "(got %r); use PORT: solarman://... for Solarman" ,
111- inv .ha_prefix or inv .serial_nr ,
112- inv .driver ,
113- )
114- inv .driver = ""
109+ _LOG .error (DRIVER_ERROR_MSG )
110+ raise ValueError (DRIVER_ERROR_MSG )
115111
116112 if inv .port :
117113 normalized = _normalize_legacy_port (inv .port )
@@ -124,21 +120,17 @@ async def init_addon(self) -> None:
124120 )
125121 inv .port = normalized
126122
127- want_solarman = (
128- is_solarman_port (inv .port )
129- or inv_solarman
130- or global_solarman
131- or bool (inv .dongle_serial_number )
132- )
133- if want_solarman and inv .port and not is_solarman_port (inv .port ):
123+ if is_solarman_port (inv .port ) or bool (inv .dongle_serial_number ):
134124 try :
135125 rewritten = as_solarman_port (inv .port )
136126 except ValueError as err :
137- _LOG .warning ("%s: %s" , inv .ha_prefix or inv .serial_nr , err )
138- else :
127+ raise ValueError (
128+ f"{ inv .ha_prefix or inv .serial_nr } : { err } "
129+ ) from err
130+ if rewritten != inv .port :
139131 _LOG .warning (
140132 "%s: Remapped PORT %r to %r "
141- "(use solarman:// and DONGLE_SERIAL_NUMBER; DRIVER is obsolete )" ,
133+ "(use solarman:// and DONGLE_SERIAL_NUMBER)" ,
142134 inv .ha_prefix or inv .serial_nr ,
143135 inv .port ,
144136 rewritten ,
0 commit comments