Einrichten knxd mit MDT SCN-IP000.02

Aus FHEMWiki
Version vom 22. Januar 2017, 14:31 Uhr von SirUli (Diskussion | Beiträge) (pthsem ist keine Abhängigkeit mehr)

Vorwort

Im Rahmen einer Machbarkeitsstudie ging es um das Thema Zählererfassung im betrieblichen Umfeld. Dazu sollten diverse Techniken und Bus-Systeme mit einbezogen werden. Als eine Art (halb privates) Nebenprojekt kam auch die Verknüpfung zwischen FHEM und einem KNX-Zählerbaustein zum Einsatz. Es gibt hier im Wiki zwar schon die Beschreibung Einrichten_von_eibd_für_das_Weinzierl_IP_730_Interface, aber diese beschäftigt sich mit anderer Hardware und dem eib-daemon.

Voraussetzungen

Hardware

  • MDT IP-Interface SCN-IP000.02. Wird später als IP-Tunneling-Device verwendet. Adresse wird über DHCP bezogen. Sollte geändert werden
  • MDT 4fach Binäreingang BE-04000.01. Dient als Zählermodul
  • MDT Spannungsversorgung STV-0160.01. Achtung! Es kann keine Standard 24V Spannungsversorgung verwendet werden, da diese nicht die für KNX benötigte Drossel enthält

Software

  • FHEM 5.7 Installation auf Raspberry Pi 3, gemäß Anleitung (folgt!), Raspian Jessie
  • ETS 5.0 wird für die Konfiguration der KNX-Komponenten benötigt. Kostenfreie Demo-Lizenz. Beschränkt auf 5 Geräte. Download von KNX.org
  • Katalog-Datei für die ETS vom Binär-Eingang. Quelle: MDT-Homepage

Installation von knxd

KNX-Daemon für Linux installieren: Knxd#Installation

Konfiguration von knxd

  • /etc/knxd.conf anlegen. Relevant ist nur die letzte Zeile. Die originale Datei enthält eine für das System nicht funktionierende Konfiguration. Daher wird der gesamte Inhalt der Datei hier dokumentiert.
# configuration for knxd.service
#KNXD_OPTS="-u /tmp/eib -b ip:"

# The default options are "-u /tmp/eib -b ip:"
# which tell knxd to route between all of
#  /tmp/eib (legacy socket (-u))
#  multicast client (-b ip:).
# The knxd.socket file also tells knxd to listen to
#  /run/eib (socket activation via systemd)
#  TCP port 6720 (socket activation via systemd)

# *** DO NOT use "-u" / "-u /run/knx" or "-i" / "-i 6720" here.
# Systemd already does that on behalf of knxd, via 'knx.socket'.

# If you have KNX hardware on a serial port or USB, add the appropriate
# "-b TYPE:…" option. In this case, you probably want to set up a multicast
# server, not a client (i.e. use "-D -T -R -S", not "-b ip:").
# DO NOT use both.
#
# If your KNX hardware is a KNX/IP gateway that doesn't do multicast,
# use "-b ipt:192.168.1.2" (or its DNS name) to talk to it.
#
# KNX MUST NOT have more than one path between any two devices. Thus,
# you need to make sure that the KNX/IP gateway does not route multicast
# before you use both "-S" and "-b ipt:".

# The default bus address of knxd is 0.0.1. If that's in use in your KNX
# network (or if you run more than one knxd on your network), set a
# different address (-e 15.0.99).


# Run `knxd --help` to get a complete list of available options and drivers.

## DO NOT use the following options:
## -i           -- /lib/systemd/system/knxd.socket does this for us
## -u /run/knx  -- likewise
## -d           -- /lib/systemd/system/knxd.service expects knxd to run in the foreground

###############################################################################
# This file is ignored when NOT using systemd: edit /etc/default/knxd instead #
###############################################################################
KNXD_OPTS="-e 1.0.240  -b ipt:192.168.0.88"

Die 192.168.0.88 ist exemplarisch für die IP-Adresse eures KNX-Gateways.

  • Der Daemon sollte auch einem Jessie-System mit dem System starten.

Der Status des KNX-Dienstes kann mit systemctl status knxd.service geprüft werden. Die Ausgabe sollte so ähnlich aussehen:

root@rasspi-fhem99:~# systemctl status knxd.service
● knxd.service - KNX Daemon
   Loaded: loaded (/lib/systemd/system/knxd.service; enabled)
   Active: active (running) since Mo 2016-04-11 13:35:53 CEST; 14s ago
 Main PID: 1258 (knxd)
   CGroup: /system.slice/knxd.service
           └─1258 /usr/bin/knxd -e 1.0.240 -b ipt:192.168.0.88

Wichtig ist, dass die IP-Adresse des Gateways und die eib-Adresse (1.0.240) in der letzten Zeile stehen.

Der Dienst kann auch manuell gestartet und gestoppt werden: Start:

systemctl start knxd.service

Beenden:

systemctl stop knxd.service
systemctl stop knxd.socket

Achtung! wird der Dienst beendet während FHEM in benutzt, hängt sich FHEM auf und muss neu gestartet werden.

  • Definition des IP-Gateways in FHEM:
define KNX TUL eibd:192.168.0.1 1.0.240

192.168.0.1 Adresse des KNX-Daemons, i.d.R. localhost

1.0.240 EIB-Adresse für FHEM/KNXD

Nach dem FHEM-Neustart sollte das neue Device "KNX" den Status "Initialized" haben.

Installation/Konfiguration ETS

Die ETS wird benötigt um KNX-Sensoren/Aktoren zu parametrieren und ihnen EIB-konforme Adressen zuzuweisen. Ich empfehle an dieser Stelle das Dokument "Grundlagenwissen zum KNX Standard", welches von KNX.org heruntergeladen werden kann.

Einrichtung des Binäreingangs BE-04000-01 in ETS

  • Bevor der Binär-Eingang benutzt werden kann, muss dieser in ETS konfiguriert werden.

Dazu wird in ETS zunächst ein Projekt angelegt. Als "Linientyp" wird TP (Twisted Pair) definiert. Das IP-Gateway wird von der ETS selbstständig gefunden.

  • Bevor das Gerät selbst in ETS angezeigt werden kann, muss eine Struktur für das Gerät erzeugt werden:

Ets struktur.png

1 Gebäudestruktur: Haus -> Keller -> Unterverteilung

2 Adressstruktur: "1 Haupt" -> "1/1 Mittel" -> "1/1/1 Schalter" 1.1.1 ist demnach die spätere Adresse für Schalteingang A des 4fach Geräts

3 Katalog-Import: Hier wird der Katalog für das Gerät importiert. Dieser wird dann per DragNDrop auf die erstellte Struktur "Unterverteilung" gezogen


  • Jetzt kann das Gerät "Binäreingang 4-fach..." parametriert werden. Dazu im mittleren Fenster den Reiter "Parameter" wählen

Geraet parametrieren.png

Hier kann jetzt für jeden Eingang des Bausteins die entsprechende Funktion eingestellt werden, z.B. Schalter, Zähler, usw.

  • Aus dem unteren Fenster werden nun per Drag N Drop die erstellten Gruppenadressen auf die jeweiligen Eingänge des Geräts gezogen. Damit wird auch die EIB-Adresse für jeden Eingang festgelegt.
  • Jetzt muss das Gerät noch programmiert werden. Dazu Programmieren -> Physikalische Adresse und Applikationsprogramm

Installation/Konfiguration FHEM

  • In FHEM sollten jetzt die neu erzeugten EIB-Geräte angezeigt werden. Voraussetzung ist ein aktiviertes AutoCreate in fhem.cfg
define autocreate autocreate
  • Fhem eib.png
  • Der Schalteingang wird als Glühbirne dargestellt
  • Beim Zählereingang steht nur der Zählerstand als HEX-Zahl. In der ETS lässt sich für den Zähleingang festlegen, wie oft er Counter-Werte übertragen soll, z.B. alle 30 Impulse sollen übermittelt werden