Website-Icon Wir bauen ein Haus!

KNX Taster mit Homematic IP Wired kombinieren

UPDATE 21.12.2020 – Artikel aktualisiert mit der aktuellen YAML Struktur  der KNX Integration und die Rückkopplung Automatisierung entfernt und  durch „expose“ ersetzt.

Wir hatten uns entschieden, unsere Smart Home Installation auf Basis von Homematic IP Wired einzurichten. Aber wir wollten keine gewöhnlichen o8/15 Taster und die einzigen SPS-Taster, die aktuell mit Homematic IP Wired funktionieren, sind die von GIRA und JUNG.

Uns hatte schon längere Zeit der MDT Glastaster II Smart gefallen, ABER dieser ist nur unter KNX einsetzbar.

Nach etwas Recherche, habe ich rausgefunden, dass wir mit einer geringen Investition, KNX zusammen mit Homematic IP Wired einsetzen könnten. Dafür bräuchten wir nur ein KNX Netzteil, ein KNX IP Gateway und eine ETS Lizenz.

Die ETS Lizenz, war noch ein Punkt welcher mich davon abgeschreckt hatte, KNX mit in unserer Installation zu integrieren. Es kamen entweder die ETS Inside Software für 160€ oder die ETS5 Lite Software für 200€ in Frage.

Wenn man sich aber im KNX eCampus anmeldet, und 85% des kostenlosen ETS5 Kurses durchführt, erhält man einen 70% Rabatt-Gutschein für ETS5 Lite, wodurch der Preis nicht mehr 200€ sondern nur noch 60€ ist. Das hat dazu geführt, dass wir ETS 5 Lite gekauft haben.

Die Kommunikation zwischen dem KNX Bus und Homematic IP Wired, würden wir dann über Home Assistant machen.

KNX mit Homematic IP kombinieren

Um sicherzustellen, dass dies auch richtig funktioniert, haben wir uns einen MDT Taster, ein KNX Netzteil (MEANWELL KNX-20E-640) und ein IP Gateway (GIRA 216800) bestellt, um dies testweise aufzubauen.

Die Testinstallation sollte erstmal einen Homematic IP Funktaster ansteuern, welchen wir im Flur haben. Es macht danach keinen Unterschied, was angesteuert wird, Hauptsache es ist möglich, zwischen dem KNX Bus und der Homematic IP Welt zu kommunizieren.

ETS5 Konfiguration

Der Taster hat die Möglichkeit, im Standby Modus verschiedene Informationen anzuzeigen, dafür kann man Daten in den KNX Bus aus Home Assistant schicken. Hierfür habe ich erstmal im ETS5, Group Addresses erstellt, in welchen ich die Daten dann speichern werde.

Und diese mit dem Taster verknüpft.

Home Assistant Konfiguration

In der configuration.yml im Home Assistant habe ich dafür die verschiedenen Sensoren erstellt. Aktuell erstmal nur die aktuelle Temperatur, Wind Geschwindigkeit und Luftfeuchtigkeit aus Openweather und Tag/Nacht Stand, abhängig von der aktuellen Sonnenposition.

# Sensors
sensor:
  - platform: template
    sensors:
        # Current Temperature
        w_temperature:
          value_template: "{{ state_attr('weather.openweathermap', 'temperature') or '0.0' }}"
          friendly_name: "Temperature"
  - platform: template
    sensors:
        # Current Wind Speed
        w_wind_speed:
          value_template: "{{ state_attr('weather.openweathermap', 'wind_speed') or '0.0' }}"
          friendly_name: "Windspeed"
  - platform: template
    sensors:
        # Current Humidity
        w_humidity:
          value_template: "{{ state_attr('weather.openweathermap', 'humidity') or '0' }}"
          friendly_name: "Humidity"

binary_sensor:
  - platform: template
    sensors:
        # Day/Night status
        is_night:
          value_template: >
          {{ state_attr('sun.sun', 'elevation') | float >= -1.0 }}
        icon_template: >-
          {% if is_state("binary_sensor.is_night", "on") %}
            mdi:weather-sunny
          {% else %}
            mdi:weather-night
          {% endif %}
        friendly_name: "Nightmode"

Als nächstes muss Home Assistant mit dem KNX Bus kommunizieren können, dafür nutzen wir die KNX Integration. Dort können direkt die erstellten Sensorwerte mit der entsprechenden KNX Group Address verknüpfen. Die Time und Datetime Objekte können, ohne Erstellen eines Sensors, übermittelt werden.

# KNX
knx:
    tunneling:
        host: '192.168.1.128' # KNX IP Gateway
        port: 3671
        local_ip: '192.168.1.146' # Home Assistant IP
    expose:
        - type: 'time'
          address: '0/0/2'
        - type: 'datetime'
          address: '0/0/3'
        - type: 'temperature'
          entity_id: 'sensor.w_temperature'
          address: '0/0/4'
        - type: 'speed_ms'
          entity_id: 'sensor.w_wind_speed'
          address: '0/0/5'
        - type: 'humidity'
          entity_id: 'sensor.w_humidity'
          address: '0/0/6'
        # Day/Night status
        - type: 'binary'
          entity_id: 'binary_sensor.is_night'
          address: '0/0/3'
          default: False
        # Status of Light  
        - type: 'binary'
          entity_id: 'switch.000855699c32b8'
          address: '1/0/1'

Somit hätten wir erstmal die Verknüpfung zwischen KNX Bus und Home Assistant hergestellt, inklusive sync des status des HomematicIP Aktors und der Tag/Nacht Einstellung für das Display.

Wenn sich der status des HomematicIP Aktors, durch z.B. eines Bewegungsmelders ändert, wird dies mit dem KNX Bus synchronisiert.

Der nächste Schritt wäre, die Taster zu verknüpfen. Dafür wollen wir die Taster an sich verknüpfen. Dies können wir wie folgt in der configuration.yml hinterlegen

# KNX Switch Mapping
switch:
    - name: light_flur
      address: '1/0/0'
    

Verknüpfung KNX und Homematic IP

Jetzt müssen wir nur noch alles kombinieren. Das machen wir in der automations.yml. Wir haben einmal Licht an/aus durch KNX Tastendruck, welcher an den Homematic IP Taster weitergegeben werden muss.

# KNX Switch Light Flur
- alias: lightFlurKNXOn
  trigger:
    platform: state
    entity_id: switch.light_flur
    to: "on"
  action:
    - service: switch.turn_on
      entity_id: switch.000855699c32b8
- alias: lightFlurKNXOff
  trigger:
    platform: state
    entity_id: switch.light_flur
    to: "off"
  action:
    - service: switch.turn_off
      entity_id: switch.000855699c32b8

Dann müssen wir noch die Rückkopplung erstellen, damit der aktuelle Status des Lichtes an den KNX Bus zurückgespielt wird.

- alias: lightFlurStatusKNXOn
  trigger:
    platform: state
    entity_id: switch.000855699c32b8
    to: "on"
  action:
    - service: switch.turn_on
      entity_id: switch.status_light_flur
- alias: lightFlurStatusKNXOff
  trigger:
    platform: state
    entity_id: switch.000855699c32b8
    to: "off"
  action:
    - service: switch.turn_off
      entity_id: switch.status_light_flur

Und zu guter Letzt, schicken wir an den KNX Bus den Status Tag/Nacht, sobald sich der Wert im Home Assistant ändert.

Die Kommunikation und Rückkopplung über expose hat perfekt funktioniert und als PoC wie man KNX mit Homematic IP kombinieren kann, hat es uns gereicht. Somit haben wir uns entschieden, die komplette Installation mit MDT Taster auszuführen.

Diese Taster werden auch unser Wandthermostat ersetzen, da es ein Model mit und ohne Temperatursensor gibt. Vorteil vom Model mit Temperatursensor ist, dass dieser perfekt mit dem MDT Heizungsaktor funktioniert, welchen wir auch bei uns einbauen werden.