diff --git a/.bumpversion-edge.toml b/.bumpversion-edge.toml index 9bbbc29..72662e8 100644 --- a/.bumpversion-edge.toml +++ b/.bumpversion-edge.toml @@ -1,5 +1,5 @@ [tool.bumpversion] -current_version = "2.11.29" +current_version = "2.11.30" parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)" serialize = ["{major}.{minor}.{patch}"] search = "{current_version}" diff --git a/GridboxConnectorAddon-edge/CHANGELOG.md b/GridboxConnectorAddon-edge/CHANGELOG.md index 462aba4..612c135 100644 --- a/GridboxConnectorAddon-edge/CHANGELOG.md +++ b/GridboxConnectorAddon-edge/CHANGELOG.md @@ -1,5 +1,15 @@ +## 2.11.30 + +### 🚀 Added + +- make possible the disable and enable telemetry + +### 🔨 Fixed + +- sensitive filter fixed + ## 2.11.28 ### 🔨 Fixed diff --git a/GridboxConnectorAddon-edge/GridboxConnector/main_test.py b/GridboxConnectorAddon-edge/GridboxConnector/main_test.py index 7704f3b..64cab97 100644 --- a/GridboxConnectorAddon-edge/GridboxConnector/main_test.py +++ b/GridboxConnectorAddon-edge/GridboxConnector/main_test.py @@ -120,5 +120,19 @@ def test_main_heater(self, mock_retrieve_live_data, mock_init, mock_init_auth,mo viessmann_gridbox_connector.update_sensors(result[0]) mock_heater_sensor.assert_called_once_with(3676,70.9) + def test_logger(self): + import os + import logging + from utils import SensitiveDataFilter + logger = logging.getLogger(__name__) + logger.setLevel(logging.getLevelName(os.getenv('LOG_LEVEL', 'INFO'))) + formatter = logging.Formatter('%(asctime)s %(filename)s:%(lineno)d %(levelname)s - %(message)s') + console_handler = logging.StreamHandler() + console_handler.setFormatter(formatter) + logger.addHandler(console_handler) + logger.addFilter(SensitiveDataFilter()) + login_message = "{'grant_type': 'http://auth0.com/oauth/grant-type/password-realm', 'username': 'username@username', 'password': 'UltraSecret', 'audience': 'my.gridx', 'client_id': 'oZpr934Ikn8OZOHTJEcrgXkjio0I0Q7b', 'scope': 'email openid', 'realm': 'viessmann-authentication-db', 'client_secret': ''}" + logger.info(login_message) + if __name__ == '__main__': unittest.main() diff --git a/GridboxConnectorAddon-edge/GridboxConnector/utils.py b/GridboxConnectorAddon-edge/GridboxConnector/utils.py index 9cd17dc..8360dea 100644 --- a/GridboxConnectorAddon-edge/GridboxConnector/utils.py +++ b/GridboxConnectorAddon-edge/GridboxConnector/utils.py @@ -7,16 +7,17 @@ class SensitiveDataFilter(logging.Filter): def filter(self, record): message = record.getMessage() try: - message_json = json.loads(message) + # Versuche die Nachricht als Python-Dictionary zu parsen + message_dict = ast.literal_eval(message) # Sensible Daten filtern, falls vorhanden sensitive_keys = ['username', 'password', 'id_token', 'access_token', 'client_id'] for key in sensitive_keys: - if key in message_json: - message_json[key] = '***' - # Das modifizierte JSON-Objekt zurück in einen String konvertieren - record.msg = json.dumps(message_json) - except json.JSONDecodeError: - logging.error("Error decoding JSON message") + if key in message_dict: + message_dict[key] = '***' + # Das modifizierte Dictionary zurück in einen String konvertieren + record.msg = str(message_dict) + except (ValueError, SyntaxError): + logging.error(f"Error parsing message: {message}") except Exception as e: logging.error(f"Error filtering sensitive data: {e}") return True diff --git a/GridboxConnectorAddon-edge/cloudSettings.json b/GridboxConnectorAddon-edge/cloudSettings.json index 1faf32b..c759326 100644 --- a/GridboxConnectorAddon-edge/cloudSettings.json +++ b/GridboxConnectorAddon-edge/cloudSettings.json @@ -1,5 +1,5 @@ { - "version": "2.11.29", + "version": "2.11.30", "urls": { "login": "https://gridx.eu.auth0.com/oauth/token", "gateways": "https://api.gridx.de/gateways", diff --git a/GridboxConnectorAddon-edge/config.yaml b/GridboxConnectorAddon-edge/config.yaml index 9b58594..658b38c 100644 --- a/GridboxConnectorAddon-edge/config.yaml +++ b/GridboxConnectorAddon-edge/config.yaml @@ -1,7 +1,7 @@ # https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config --- name: Viessmann Gridbox Connector (edge) -version: "2.11.29" +version: "2.11.30" slug: "gridbox_connector_edge" description: "Viessmann Gridbox Connector (edge)" url: "https://github.com/unl0ck/homeassistant-addon-viessmann-gridbox/tree/main/GridboxConnectorAddon-edge" diff --git a/GridboxConnectorAddon-edge/rootfs/share/cloudSettings.json b/GridboxConnectorAddon-edge/rootfs/share/cloudSettings.json index 1faf32b..c759326 100644 --- a/GridboxConnectorAddon-edge/rootfs/share/cloudSettings.json +++ b/GridboxConnectorAddon-edge/rootfs/share/cloudSettings.json @@ -1,5 +1,5 @@ { - "version": "2.11.29", + "version": "2.11.30", "urls": { "login": "https://gridx.eu.auth0.com/oauth/token", "gateways": "https://api.gridx.de/gateways",