Pages Menu
Categories Menu

Gepostet by on Donnerstag, 4. Januar 2018 in Allgemein, Elektrik, Technik

KNX mit Apple Homekit bzw. Siri steuern

KNX mit Apple Homekit bzw. Siri steuern

Von Anfang an fand ich die Idee, unser Haus nur mit der Stimme zu steuern, sehr verlockend. Homekit erschien mir als eine gute Basis, da wir sowieso immer ein iPhone in Reichweite liegen haben. Fertige Hardware zum Mappen der KNX-Geräte in die Homekit-Welt kam für mich nicht in Frage: alles VIEL zu teuer!! (und bei meinen ersten Experimenten im November 2016 auch gar nicht verfügbar).
Nach einiger Recherche bin ich auf das “Homebridge”-Projekt von Nick Farina gestoßen. Die Software basiert auf node.JS und lässt sich (mittlerweile) recht einfach auf einem Raspberry Pi installieren. Es gibt reichlich Plugins zum Anbinden unterschiedlicher Hersteller, unter anderem auch eines für KNX. Das KNX-Plugin setzt einen laufenden KNX Daemon (knxd) im Netzwerk voraus, dieser kann auf dem gleichen Raspberry installiert werden.

Siri bekommt also von Homebridge entsprechende Homekit-kompatible zur Verfügung gestellt. Bei einem Aufruf reicht Homebridge die Anfrage mit den passenden Gruppenadressen an den knxd weiter, welche sie über das KNX-IP-Interface auf den Bus schreibt.

Da ich anfangs ein paar Schwierigkeiten mit der Konfiguration von Homebridge hatte, poste ich hier noch meine config-Dateien, um Euch einen Startpunkt für die eigene Installation zu geben:

Zuerst muss man die config.json aus dem git-Repo in das Homekit-Konfigurationsverzeichnis kopieren. Bei mir reicht folgende Konfiguration aus (die PIN sollte man natürlich ändern…):

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "031-45-154"
    },
 
    "accessories": [],
 
    "platforms": []
}

Weiter geht es mit der Konfiguration des KNX-Plugins (hier nur ein Auszug mit einem Dimmer (Esstisch), einem normalen Schalter (Unterschrankbeleuchtung) und einem Temperatursensor):

{
    "knxd_ip": "[IP oder Hostname des Rechners mit dem knxd]",
    "knxd_port": 6720,
    "AllowWebserver": true,
    "AllowKillHomebridge": true,
    "Devices": [
        {
            "DeviceName": "Esstisch",
            "Services": [
                {
                    "ServiceType": "Lightbulb",
                    "ServiceName": "Esstisch",
                    "Characteristics": [
                        {
                            "Type": "On",
                            "Set": [
                                "1/1/130"
                            ],
                            "Listen": [
                                "1/4/130"
                            ]
                        },
                        {
                            "Type": "Brightness",
                            "Set": [
                                "1/3/130"
                            ],
                            "Listen": [
                                "1/5/130"
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "DeviceName": "Unterschrankbeleuchtung",
            "Services": [
                {
                    "ServiceType": "Lightbulb",
                    "ServiceName": "Unterschrankbeleuchtung",
                    "Characteristics": [
                        {
                            "Type": "On",
                            "Set": [
                                "1/1/123"
                            ],
                            "Listen": [
                                "1/4/123"
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "DeviceName": "Temperatur Wohnzimmer",
            "Services": [
                {
                    "ServiceType": "TemperatureSensor",
                    "ServiceName": "Temperatur WZ",
                    "Characteristics": [
                        {
                            "Type": "CurrentTemperature",
                            "Listen": [
                                "0/3/132"
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "GroupAddresses": []
}

Homebridge fügt beim ersten Start weitere Attribute ein, z.B. “subtype” und “UUID”. Diese benötigt Homekit, um die Geräte später eindeutig identifizieren zu können. Wenn man also an der Konfiguration herumbasteln will, sollte man darauf achten diese Attribute nicht aus Versehen zu überschreiben, weil man sonst jedes mal mit der Einrichtung von Homekit von vorne beginnen muss. Interessant ist auch noch die Option “AllowWebserver”, diese stellt einem eine Website unter der Adresse homebridge-adresse:18081/list zur Verfügung, welche beim Debugging der Konfiguration sehr nützlich sein kann.

Man sollte im Hinterkopf haben, dass man die vergebenen Namen nutzt, um mit Siri zu sprechen, also z.B. “Hey Siri, schalte die Unterschrankbeleuchtung ein”, oder “Hey Siri, dimme den Esstisch auf 50%”. Ich habe ganz bewusst nur wenige Geräte in meine Konfiguration aufgenommen, um Namenskonflikte zu vermeiden und die Namen so kurz wie möglich zu halten. “Hey Siri, schalte Deckenlicht Flur Erdgeschoss ein” ist einfach zu sperrig und man nutzt es sowieso nicht.

1 Kommentar

  1. Ein gute Idee. Das werde ich mir auch überlegen, da ich wie du nicht einsehe so viel Geld auszugeben.

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.