From 713f0b0cb498d720e8ccf93feb5a79c105784847 Mon Sep 17 00:00:00 2001
From: Christian Elberfeld <elberfeld@web.de>
Date: Thu, 29 Jun 2023 23:34:26 +0200
Subject: [PATCH] Removed homematic, added max cube

---
 group_vars/prod                               |   9 +-
 .../templates/config/configuration.yaml       |  31 +--
 intern/docker_homematic/tasks/main.yml        |  37 ----
 .../templates/docker-compose.yml              |  44 -----
 .../docker_homematic/templates/telegraf.conf  | 178 ------------------
 site.yml                                      |   7 -
 .../etc/icinga/conf.d/hosts_manual.conf       |   4 +-
 7 files changed, 13 insertions(+), 297 deletions(-)
 delete mode 100644 intern/docker_homematic/tasks/main.yml
 delete mode 100644 intern/docker_homematic/templates/docker-compose.yml
 delete mode 100644 intern/docker_homematic/templates/telegraf.conf

diff --git a/group_vars/prod b/group_vars/prod
index 6fe86661..12f44120 100644
--- a/group_vars/prod
+++ b/group_vars/prod
@@ -114,8 +114,9 @@ esphome_devices:
   - { id: "status",        name: "Status/Strom",  groups: "gHauptraum",     sensors: [ "stromverbrauch", "warpzone_status" ] }
   - { id: "vortragsraum",  name: "Vortragsraum",  groups: "gVortragsraum",  sensors: [ "Temp", "pressure", "humidity" ] }
 
-#Global Homematic configuration 
-homematic:
-  ccu2_host: 192.168.0.15
+# Global eQ3 Max configuration 
+eq3max:
+  cube_host: 192.168.0.15
   devices_heizung:
-    - { name: "HeizungKlo", id: "OEQ0663079" }
+    - { name: "E-Werkstatt-Mitte", id: "MEQ1814738" }
+#    - { name: "HeizungKlo", id: "OEQ0663079" }
diff --git a/intern/docker_homeassistant/templates/config/configuration.yaml b/intern/docker_homeassistant/templates/config/configuration.yaml
index 12a9e438..4efc5178 100644
--- a/intern/docker_homeassistant/templates/config/configuration.yaml
+++ b/intern/docker_homeassistant/templates/config/configuration.yaml
@@ -54,32 +54,13 @@ influxdb:
   token: {{ influxdb_token }}
   default_measurement: units
 
-# Homematic CCU2
-# https://www.home-assistant.io/integrations/homematic/
-homematic:
-  local_port: {{ homematic_callback_port }}
-  interfaces:
-    rf:
-      host: {{ homematic.ccu2_host }}
-      resolvenames: json
-      callback_ip: {{ int_ip4 }}
-      callback_port: {{ homematic_callback_port }}
-    ip:
-      host: {{ homematic.ccu2_host }}
-      port: 2010
-      callback_ip: {{ int_ip4 }}
-      callback_port: {{ homematic_callback_port }}
-    groups:
-      host: {{ homematic.ccu2_host }}
-      port: 9292
-      resolvenames: json
-      path: /groups
-      callback_ip: {{ int_ip4 }}
-      callback_port: {{ homematic_callback_port }}
-  hosts:
-    ccu2:
-      host: {{ homematic.ccu2_host }}
 
+# eQ3 Max 
+maxcube:
+  gateways:
+    - host: {{ eq3max.cube_host }}
+      port: 62910
+      scan_interval: 60
 
 # zonenstatus wird vom hauptschalter gesteuert, switch02 ping ist nicht mehr notwendig
 # https://www.home-assistant.io/integrations/ping/
diff --git a/intern/docker_homematic/tasks/main.yml b/intern/docker_homematic/tasks/main.yml
deleted file mode 100644
index af0b0c29..00000000
--- a/intern/docker_homematic/tasks/main.yml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-
-- include: ../functions/get_secret.yml
-  with_items:
-   - { path: "{{ basedir }}/influxdb_password",            length: 12 }
-   - { path: "{{ basedir }}/influxdb_token",               length: 32 }
-
-
-- name: "create folder struct for {{ basedir }}"
-  file: 
-    path: "{{ item }}"
-    state: "directory"
-  with_items:
-    - "{{ basedir }}"
-
-
-- name: "copy config files for {{ basedir }}"
-  template:
-    src: "{{ item }}"
-    dest: "{{ basedir }}/{{ item }}"
-  with_items:
-    - docker-compose.yml
-    - telegraf.conf
-  register: config_files
-
-
-- name: "stop {{ servicename }} docker"
-  docker_compose:
-    project_src: "{{ basedir }}"
-    state: absent
-  when: config_files.changed 
-
-
-- name: "start {{ servicename }} docker"
-  docker_compose:
-    project_src: "{{ basedir }}"
-    state: present
diff --git a/intern/docker_homematic/templates/docker-compose.yml b/intern/docker_homematic/templates/docker-compose.yml
deleted file mode 100644
index 70faec0a..00000000
--- a/intern/docker_homematic/templates/docker-compose.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-version: "3"
-
-services:
-  
-  app:
-
-    image: sfudeus/homematic_exporter:2023-05-21
-    restart: always
-    command: "--ccu_host {{ homematic.ccu2_host }} --ccu_port 2001 --port {{ homematic_metrics_port }}"
-    ports:
-      - "{{ int_ip4 }}:{{ homematic_metrics_port }}:{{ homematic_metrics_port }}"
-    networks:
-      - default
-
-  
-  influxdb:
-
-    image: influxdb:2.6.1
-    restart: always
-    ports:
-      - "{{ int_ip4 }}:{{ influxdb_port }}:8086"
-    volumes:
-      - "{{ basedir }}/influxdb:/var/lib/influxdb2"
-    environment:
-      DOCKER_INFLUXDB_INIT_MODE: setup
-      DOCKER_INFLUXDB_INIT_USERNAME: homematic
-      DOCKER_INFLUXDB_INIT_PASSWORD: {{ influxdb_password }}
-      DOCKER_INFLUXDB_INIT_ORG: homematic
-      DOCKER_INFLUXDB_INIT_BUCKET: homematic
-      DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: {{ influxdb_token }}
-    networks:
-      - default
-
-
-  telegraf:
-
-    image: telegraf:1.25.3
-    restart: always
-    depends_on: 
-      - app
-      - influxdb
-    volumes:
-      - "{{ basedir }}/telegraf.conf:/etc/telegraf/telegraf.conf:ro"
diff --git a/intern/docker_homematic/templates/telegraf.conf b/intern/docker_homematic/templates/telegraf.conf
deleted file mode 100644
index 44d51b32..00000000
--- a/intern/docker_homematic/templates/telegraf.conf
+++ /dev/null
@@ -1,178 +0,0 @@
-# Telegraf Configuration
-#
-# Telegraf is entirely plugin driven. All metrics are gathered from the
-# declared inputs, and sent to the declared outputs.
-#
-# Plugins must be declared in here to be active.
-# To deactivate a plugin, comment out the name and any variables.
-#
-# Use 'telegraf -config telegraf.conf -test' to see what metrics a config
-# file would generate.
-#
-# Environment variables can be used anywhere in this config file, simply surround
-# them with ${}. For strings the variable must be within quotes (ie, "${STR_VAR}"),
-# for numbers and booleans they should be plain (ie, ${INT_VAR}, ${BOOL_VAR})
-
-
-# Global tags can be specified here in key="value" format.
-[global_tags]
-  # dc = "us-east-1" # will tag all metrics with dc=us-east-1
-  # rack = "1a"
-  ## Environment variables can be used as tags, and throughout the config file
-  # user = "$USER"
-
-# Configuration for telegraf agent
-[agent]
-  ## Default data collection interval for all inputs
-  interval = "5s"
-  ## Rounds collection interval to 'interval'
-  ## ie, if interval="10s" then always collect on :00, :10, :20, etc.
-  round_interval = true
-
-  ## Telegraf will send metrics to outputs in batches of at most
-  ## metric_batch_size metrics.
-  ## This controls the size of writes that Telegraf sends to output plugins.
-  metric_batch_size = 100
-
-  ## Maximum number of unwritten metrics per output.  Increasing this value
-  ## allows for longer periods of output downtime without dropping metrics at the
-  ## cost of higher maximum memory usage.
-  metric_buffer_limit = 10000
-
-  ## Collection jitter is used to jitter the collection by a random amount.
-  ## Each plugin will sleep for a random time within jitter before collecting.
-  ## This can be used to avoid many plugins querying things like sysfs at the
-  ## same time, which can have a measurable effect on the system.
-  collection_jitter = "0s"
-
-  ## Default flushing interval for all outputs. Maximum flush_interval will be
-  ## flush_interval + flush_jitter
-  flush_interval = "10s"
-  ## Jitter the flush interval by a random amount. This is primarily to avoid
-  ## large write spikes for users running a large number of telegraf instances.
-  ## ie, a jitter of 5s and interval 10s means flushes will happen every 10-15s
-  flush_jitter = "0s"
-
-  ## By default or when set to "0s", precision will be set to the same
-  ## timestamp order as the collection interval, with the maximum being 1s.
-  ##   ie, when interval = "10s", precision will be "1s"
-  ##       when interval = "250ms", precision will be "1ms"
-  ## Precision will NOT be used for service inputs. It is up to each individual
-  ## service input to set the timestamp at the appropriate precision.
-  ## Valid time units are "ns", "us" (or "µs"), "ms", "s".
-  precision = ""
-
-  ## Log at debug level.
-  # debug = false
-  ## Log only error level messages.
-  # quiet = false
-
-  ## Log target controls the destination for logs and can be one of "file",
-  ## "stderr" or, on Windows, "eventlog".  When set to "file", the output file
-  ## is determined by the "logfile" setting.
-  # logtarget = "file"
-
-  ## Name of the file to be logged to when using the "file" logtarget.  If set to
-  ## the empty string then logs are written to stderr.
-  # logfile = ""
-
-  ## The logfile will be rotated after the time interval specified.  When set
-  ## to 0 no time based rotation is performed.  Logs are rotated only when
-  ## written to, if there is no log activity rotation may be delayed.
-  # logfile_rotation_interval = "0d"
-
-  ## The logfile will be rotated when it becomes larger than the specified
-  ## size.  When set to 0 no size based rotation is performed.
-  # logfile_rotation_max_size = "0MB"
-
-  ## Maximum number of rotated archives to keep, any older logs are deleted.
-  ## If set to -1, no archives are removed.
-  # logfile_rotation_max_archives = 5
-
-  ## Pick a timezone to use when logging or type 'local' for local time.
-  ## Example: America/Chicago
-  # log_with_timezone = ""
-
-  ## Override default hostname, if empty use os.Hostname()
-  hostname = ""
-  ## If set to true, do no set the "host" tag in the telegraf agent.
-  omit_hostname = false
-
-###############################################################################
-#                            OUTPUT PLUGINS                                   #
-###############################################################################
-
-# Configuration for sending metrics to InfluxDB 2.0
-[[outputs.influxdb_v2]]
-  ## The URLs of the InfluxDB cluster nodes.
-  ##
-  ## Multiple URLs can be specified for a single cluster, only ONE of the
-  ## urls will be written to each interval.
-  ##   ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
-  urls = ["http://influxdb:8086"]
-
-  ## Token for authentication.
-  token = "{{ influxdb_token }}"
-
-  ## Organization is the name of the organization you wish to write to.
-  organization = "homematic"
-
-  ## Destination bucket to write into.
-  bucket = "homematic"
-
-  ## The value of this tag will be used to determine the bucket.  If this
-  ## tag is not set the 'bucket' option is used as the default.
-  # bucket_tag = ""
-
-  ## If true, the bucket tag will not be added to the metric.
-  # exclude_bucket_tag = false
-
-  ## Timeout for HTTP messages.
-  # timeout = "5s"
-
-  ## Additional HTTP headers
-  # http_headers = {"X-Special-Header" = "Special-Value"}
-
-  ## HTTP Proxy override, if unset values the standard proxy environment
-  ## variables are consulted to determine which proxy, if any, should be used.
-  # http_proxy = "http://corporate.proxy:3128"
-
-  ## HTTP User-Agent
-  # user_agent = "telegraf"
-
-  ## Content-Encoding for write request body, can be set to "gzip" to
-  ## compress body or "identity" to apply no encoding.
-  # content_encoding = "gzip"
-
-  ## Enable or disable uint support for writing uints influxdb 2.0.
-  # influx_uint_support = false
-
-  ## Optional TLS Config for use on HTTP connections.
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-
-
-###############################################################################
-#                            INPUT PLUGINS                                    #
-###############################################################################
-
-# Read metrics from one or many prometheus clients
-[[inputs.prometheus]]
-  ## An array of urls to scrape metrics from.
-  urls = ["http://app:{{ homematic_metrics_port }}/metrics"]
-
-  ## Metric version controls the mapping from Prometheus metrics into Telegraf metrics.
-  ## See "Metric Format Configuration" in plugins/inputs/prometheus/README.md for details.
-  ## Valid options: 1, 2
-  # metric_version = 1
-
-  ## Url tag name (tag containing scrapped url. optional, default is "url")
-  # url_tag = "url"
-
-  ## Whether the timestamp of the scraped metrics will be ignored.
-  ## If set to true, the gather time will be used.
-  # ignore_timestamp = false
-
diff --git a/site.yml b/site.yml
index afe0ed36..8cb8e2f0 100644
--- a/site.yml
+++ b/site.yml
@@ -95,13 +95,6 @@
         homematic_callback_port: 8060,
         influxdb_port: 38086       
       }
-    - { 
-        role: intern/docker_homematic, tags: homematic, 
-        servicename: homematic, 
-        basedir: /srv/homematic,
-        homematic_metrics_port: 8010,
-        influxdb_port: 48086       
-      }
     - { 
         role: intern/docker_mqtt, tags: mqtt, 
         servicename: mqtt,
diff --git a/webserver/docker_icinga/templates/etc/icinga/conf.d/hosts_manual.conf b/webserver/docker_icinga/templates/etc/icinga/conf.d/hosts_manual.conf
index b0812786..d1f7c2a8 100644
--- a/webserver/docker_icinga/templates/etc/icinga/conf.d/hosts_manual.conf
+++ b/webserver/docker_icinga/templates/etc/icinga/conf.d/hosts_manual.conf
@@ -74,10 +74,10 @@ object Host "wz-ap-werkstatt" {
   groups = [ "network" ]
 }
 
-object Host "homematic-ccu2" {
+object Host "eq3max-cube" {
   import "generic-host"
 
-  address = "{{ homematic.ccu2_host }}"
+  address = "{{ eq3max.cube_host }}"
 
   groups = [ "network" ]
 }
-- 
GitLab