diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..5211ee0 --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +CCU_HOST=ccu3.local +CCU_USER=user +CCU_PASS=password diff --git a/.gitignore b/.gitignore index 372c13e..c7f5b33 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ __pycache__/ +.env diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c3b6db0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +--- +version: "3" + +#networks: +# traefik: +# external: true + +services: + homematic-exporter: + build: . + #image: sfudeus/homematic_exporter + image: homematic_exporter + restart: unless-stopped +# networks: +# - traefik + ports: + - 8010:8010 + command: --ccu_host "$CCU_HOST" --ccu_user "$CCU_USER" --ccu_pass "$CCU_PASS" --debug +# labels: +# - traefik.enable=true +# - traefik.port=8010 diff --git a/exporter.py b/exporter.py index f8cc34a..77fb7ec 100755 --- a/exporter.py +++ b/exporter.py @@ -68,6 +68,14 @@ class HomematicMetricsProcessor(threading.Thread): 'HM-WDS30-OT2-SM', 'HM-WDS40-TH-I', 'HM-WDS40-TH-I-2', + 'HmIP-BDT', # Homematic IP Dimmaktor für Markenschalter, Unterputzmontage + 'HmIP-DBB', # Homematic IP Türklingeltaster + 'HMIP-eTRV', # Homematic IP Heizkörperthermostat + 'HmIP-eTRV-B1', # Homematic IP Heizkörperthermostat - basic + 'HmIP-SRH', # Homematic IP Fenster-/ Drehgriffkontakt + 'HMIP-WRC2', # Homematic IP Wandtaster 2-fach + 'HmIP-WRC6', # Homematic IP Wandtaster 6-fach + 'HMIP-WTH', # Homematic IP Wandthermostat ] # A list with channel numbers for devices where getParamset @@ -220,15 +228,18 @@ def generate_metrics(self): paramDesc = paramsetDescription.get(key) paramType = paramDesc.get('TYPE') if paramType in ['FLOAT', 'INTEGER', 'BOOL']: + logging.debug("Found {}: desc: {} key: {}".format(paramType, paramDesc, paramset.get(key))) self.process_single_value(devAddress, devType, devParentAddress, devParentType, paramType, key, paramset.get(key)) elif paramType == 'ENUM': logging.debug("Found {}: desc: {} key: {}".format(paramType, paramDesc, paramset.get(key))) self.process_enum(devAddress, devType, devParentAddress, devParentType, paramType, key, paramset.get(key), paramDesc.get('VALUE_LIST')) + elif paramType in ['ACTION', 'STRING']: + logging.debug("Ignoring unsupported paramType {}, desc: {}, key: {}".format(paramType, paramDesc, paramset.get(key))) else: # ATM Unsupported like HEATING_CONTROL_HMIP.PARTY_TIME_START, # HEATING_CONTROL_HMIP.PARTY_TIME_END, COMBINED_PARAMETER or ACTION - logging.debug("Unknown paramType {}, desc: {}, key: {}".format(paramType, paramDesc, paramset.get(key))) + logging.debug("Unknown unsupported paramType {}, desc: {}, key: {}".format(paramType, paramDesc, paramset.get(key))) if paramset: logging.debug("ParamsetDescription for {}".format(devAddress))