From eaf6a0d5f63dd967db72f6b4b25eed0c7e0ce56a Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Tue, 10 Feb 2026 15:01:06 +0100 Subject: [PATCH] user, password and url for dc adapter --- packages/helpermodules/update_config.py | 18 +++++++++++++++++- .../openwb_dc_adapter/chargepoint_module.py | 12 +++++------- .../chargepoints/openwb_dc_adapter/config.py | 8 ++++++-- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 15530c627d..1dcfe6c85a 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -57,7 +57,7 @@ class UpdateConfig: - DATASTORE_VERSION = 107 + DATASTORE_VERSION = 108 valid_topic = [ "^openWB/bat/config/bat_control_permitted$", @@ -2701,3 +2701,19 @@ def upgrade(topic: str, payload) -> None: return {topic: provider} self._loop_all_received_topics(upgrade) self._append_datastore_version(107) + + def upgrade_datastore_108(self) -> None: + def upgrade(topic: str, payload) -> None: + if re.search("openWB/chargepoint/[0-9]+/config", topic) is not None: + config = decode_payload(payload) + if config.get("type") == "openwb_dc_adapter": + if config["configuration"].get("user") is None: + config["configuration"]["user"] = None + if config["configuration"].get("password") is None: + config["configuration"]["password"] = None + if config["configuration"].get("ip_address") is not None: + ip_address = config["configuration"].pop("ip_address") + config["configuration"]["url"] = f'http://{ip_address}/connect.php' + return {topic: config} + self._loop_all_received_topics(upgrade) + self._append_datastore_version(108) diff --git a/packages/modules/chargepoints/openwb_dc_adapter/chargepoint_module.py b/packages/modules/chargepoints/openwb_dc_adapter/chargepoint_module.py index 7a59569d68..414599dde0 100644 --- a/packages/modules/chargepoints/openwb_dc_adapter/chargepoint_module.py +++ b/packages/modules/chargepoints/openwb_dc_adapter/chargepoint_module.py @@ -47,11 +47,11 @@ def __init__(self, config: OpenWBDcAdapter) -> None: raise Exception( "DC-Laden muss durch den Support freigeschaltet werden. Bitte nehme Kontakt mit dem Support auf.") self.efficiency = None + if self.config.configuration.user and self.config.configuration.password: + self.__session.auth = (self.config.configuration.user, self.config.configuration.password) try: - self.__session.post( - f'http://{self.config.configuration.ip_address}/connect.php', - data={'heartbeatenabled': '1'}) + self.__session.post(self.config.configuration.url, data={'heartbeatenabled': '1'}) except Exception: log.exception( f"Verbindung zum Ladepunkt {self.config.id} konnte nicht hergestellt werden. " @@ -62,11 +62,10 @@ def set_current(self, current: float) -> None: current = 0 with SingleComponentUpdateContext(self.fault_state, update_always=False): with self.client_error_context: - ip_address = self.config.configuration.ip_address raw_current = self.subtract_conversion_loss_from_current(current) raw_power = raw_current * 3 * 230 log.debug(f"DC-Stromstärke: {raw_current}A ≙ {raw_power / 1000}kW") - self.__session.post('http://'+ip_address+'/connect.php', data={'power': raw_power}) + self.__session.post(self.config.configuration.url, data={'power': raw_power}) def subtract_conversion_loss_from_current(self, current: float) -> float: return current * (self.efficiency if self.efficiency else 0.9) @@ -77,8 +76,7 @@ def add_conversion_loss_to_current(self, current: float) -> float: def get_values(self) -> None: with SingleComponentUpdateContext(self.fault_state): with self.client_error_context: - ip_address = self.config.configuration.ip_address - json_rsp = self.__session.get('http://'+ip_address+'/connect.php').json() + json_rsp = self.__session.get(self.config.configuration.url).json() if json_rsp["fault_state"] == 1: self.fault_state.warning(json_rsp["fault_str"]) diff --git a/packages/modules/chargepoints/openwb_dc_adapter/config.py b/packages/modules/chargepoints/openwb_dc_adapter/config.py index c29770895b..7f0216772e 100644 --- a/packages/modules/chargepoints/openwb_dc_adapter/config.py +++ b/packages/modules/chargepoints/openwb_dc_adapter/config.py @@ -5,8 +5,12 @@ class OpenWBDcAdapterConfiguration: - def __init__(self, ip_address: Optional[str] = None): - self.ip_address = ip_address + def __init__(self, url: Optional[str] = None, + user: Optional[str] = None, + password: Optional[str] = None): + self.url = url + self.user = user + self.password = password class OpenWBDcAdapter(SetupChargepoint[OpenWBDcAdapterConfiguration]):