Einrichtungshinweise für die Vorbereitung auf die Alexa Sprachsteuerung.
Es wird keine Installation in Ihrem lokalen Netzwerk benötigt
Für die Nutzung des CCU VPN-AddOns wird eine HConnect Premium Lizenz bzw. eine HConnect Basis Lizenz plus HConnect VPN Lizenz benötigt
Für eine lokale Installation des HConnect Gateways ohne CCU VPN-AddOn folgen Sie bitte die entsprechenden Anweisungen in den unten aufgeführten Abschnitten zur Installation auf verschiedenen Platformen. Klappen Sie dazu am besten diesen Abschnitt oben rechts (Neben 'Nutzen Sie das CCU VPN-AddOn') mit dem - Symbol zu um die unteren Abschnitte einzusehen
Neuere Versionen der Firmware der CCU starten diese nach einer Installation eines AddOns nicht mehr automatisch. Das HConnect VPN Addon funktioniert nach einer Installation/nach einem Update nur, wenn die CCU nach der Installation des VPN AddOns einmal neu gestartet wurde. Starten Sie also nach der Installation des AddOns ggfs. die CCU manuell neu, falls diese dies nicht automatisch erledigt hat.
Das XML API AddOn für die CCU wird auf jeden Fall auf der Homematic Zentrale benötigt. Dieses AddOn kann im linken Bereich unter Downloads herunter geladen werden. Es wird auf die gleiche Art und Weise wie das CCU VPN-AddOn installiert. Ohne dieses AddOn ist keine Steuerung der Geräte über Alexa möglich und der WebDienst erkennt ebenfalls keine Geräte bzw. Kanäle.
Wenn die Konfiguration über die Homematic-Verwaltung geändert wird, wenn also dort neue Geräte angelernt werden, oder Schaltkanäle umbenannt werden müssen diese Änderungen natürlich auch einmal aktualisiert werden. Dazu ist im Skill der Befehl: Alexa! Schalte Geräteerkennung ein! integriert. Dann werden alle Geräte der Homematic neu eingelesen. Dies kann einen Moment dauern, also wartet man danach am besten 1-2 Minuten ab und lässt die neuen Geräte dann erneut durch den Befehl Alexa! Erkenne meine Geräte! einlesen. Danach können diese genutzt werden.
Einige Videos welche die Installation und Nutzung des Skills veranschaulichen.
Anleitung zur Installation des HConnect-Gateways als docker container (Aktuelle Versionsnummer 5.40.0 beachten)
intexds/hconnect-gateway:5.40.0
Zum Betrieb des HConnect Gateways nutzen Sie einfach die jeweils letzte Version welche auf DockerHub verfügbar ist. Die übergabe der notwendigen Konfigurationsparameter ist im Handumdrehen erledigt und das Gateway verrichtet dann seine Arbeit.
docker run --name hconnect-gateway -e "ACCOUNT=your@email.com" -e "PASSWORD=SuperSecret" -e "CCU_ADDR=192.168.100.1" -e "HOST_IP=10.5.5.227" -p 6760:443 -p 6664:6664 -p 6665:6665 -d intexds/hconnect-gateway:5.40.0
docker run --name hconnect-gateway -e "ACCOUNT=your@email.com" -e "PASSWORD=SuperSecret" -e "CCU_ADDR=192.168.100.1" -e "HOST_IP=10.5.5.227" -e "PUBLIC_PORT=7700" -e "BINXMLRPC_PORT=7705" -e "XMLRPC_PORT=7704" -p 7700:7700 -p 7705:7705 -p 7704:7704 -d intexds/hconnect-gateway:5.40.0
version: '3'
services:
hconnect-gateway:
image: intexds/hconnect-gateway:5.40.0
restart: unless-stopped
environment:
# Hosting mode for selfhosted gatewy ==> Can be omitted (Default: Selfhosted)
HOST_MODE: Selfhosted
# Internal gateway port ==> Can be omitted (Default: 443)
PORT: 443
# Mandatory account name
ACCOUNT: kasimir@mail.csintex.com
# Mandatory account password
PASSWORD: SuperSecret
# The hconnect backend url ==> Can be omitted (Default: https://hconnect.deike.cc)
BACKEND_URL: https://hconnect.deike.cc
# Mandatory ccu address
CCU_ADDR: 10.5.5.5
# Public reachable address of the gateway ==> Can be omitted (Defaults to 0.0.0.0: (auto resolved))
PUBLIC_ADDR: 0.0.0.0
# Public reachable port of the gateway ==> Can be omitted (Defaults to https: (6760))
PUBLIC_PORT: 6760
# Mandatory docker host internal ip address
HOST_IP: 10.5.5.227
# XmlRpc port reachable from the ccu ==> Can be omitted (Default: 6664)
XMLRPC_PORT: 6664
# BinXmlRpc port reachable from the ccu ==> Can be omitted (Default: 6665)
BINXMLRPC_PORT: 6665
ports:
- "6760:443"
- "6664:6664"
- "6665:6665"
docker-compose up -d hconnect-gateway
Der konfigurierte Port des docker containers (PUBLIC_PORT) muss aus dem Internet erreichbar sein. Aus diesem Grund muss für den angegeben Port eine Port-Weiterleitung auf Ihrem Router eingerichtet werden, welcher die Verbindung mit dem Internet herstellt. Entsprechende Informationen dazu lesen Sie bitte in der Anleitung Ihres Gerätes nach. Im obigen Ersten Beispiel in welchem die Standard-Ports verwendet werden ist also eine Port-Weiterleitung für den Port 6760 auf die interne IP-Adresse Ihres Docker-Hosts (im Beispiel 10.5.5.227) einzurichten. Bitte beachten Sie, dass der Port (BINXMLRPC_PORT) und (XMLRPC_PORT) nicht aus dem Internet erreichbar sein muss und dementsprechend auch keine Port-Weiterleitung eingerichtet werden muss. Diese Ports dienen nur der internen Kommunikation zwischen CCU und HConnect-Gateway. Da diese in Ihrem eigenen Netzwerk betrieben werden funktioniert dies ohne weitere Konfiguration
docker logs hconnect-gateway -f --tail 1000
Anleitung zur Installation des HConnect-Gateways auf Windows Betriebssystemen
Unter Downloads im linken Bereich befinden sich jeweils die Archive für die HConnect-Gateway Installation. Dabei ist die richtige Platform und Rechnerarchitektur auszuwählen, z.B: HConnectGateway-WIN7-X86 für Windows Rechner mit Windows 7 und einer 32-bit Betriebssysteminstallation. Herunterzuladen ist jeweils nur 1 ZIP-Archiv.
Zunächst muss ein Verzeichnis für das Programm angelegt werden, z.B: C:\HConnectGateway. Der Inhalt des heruntergeladenen ZIP-Archivs wird dann in diesen Ordner entpackt. Das Gateway wird als Windows-Dienst installiert. Dazu sind die folgenden Schritte in einer Eingabeaufforderung (Achtung: Als Administrator ausführen) auszuführen (Im Beispiel wird als Verzeichnis C:\HConnectGateway verwendet, also dementsprechend bitte anpassen):
C:
cd HConnectGateway
install.cmd
Einfach den Dienst HConnectGateway beenden und die aktuelle Version in das Installationsverzeichnis entpacken. Keine Angst, es werden keine Konfigurationsdateien überschrieben. Danach den Dienst einfach wieder starten. Fertig...
Nun ist der Dienst HConnectGateway eingerichtet. Er wird beim Start des Rechners automatisch gestartet. Möchte man den Dienst nun direkt nach der Installation starten kann dies über die Dienste-Verwaltung (Start -> Verwaltung -> Dienste) gemacht werden: Dienst HConnectGateway auswählen und starten (Vorher sollte allerdings die Konfiguration wie unten angegeben angepasst werden).
Um die Ausführung nach dem Start zu kontrollieren kann die Log-Datei des Programms angeschaut werden. Diese liegt immer in dem Installationsverzeichnis unter dem Namen HConnectGateway.log
Der Dienst kann mit den folgenden Befehlen deinstalliert werden. Dabei wird nur der Windows-Dienst entfernt. Das angelegte Installationsverzeichnis mit seinem Inhalt bleibt dabei erhalten, kann aber nach der Deinstallation manuell gelöscht werden.
C:
cd HConnectGateway
uninstall.cmd
Die einfachste Variante. Sie haben das Gateway das erste mal installiert und noch nie benutzt. Dementsprechend haben Sie auch noch keine Konfiguration durchgeführt. Die mitgelieferte minimale Konfiguration mit Standardwerten kann genutzt werden. Führen Sie die folgenden Schritte durch:
Dazu einfach die Datei start_template.cmd nach start.cmd kopieren und den Inhalt mit einem Editor anpassen. In der Datei selbst sind
Anweisungen vorhanden welche Einstellungen zu tätigen sind.
Anzupassen sind:
REM === MANDATORY SETTINGS ===
SET ACCOUNT=name@email.com
SET PASSWORD=SuperSecret
SET CCU_ADDR=10.5.5.5
SET HOST_IP=10.5.5.55
SET PUBLIC_ADDR=0.0.0.0
SET PORT=8088
SET PUBLIC_PORT=8760
SET XMLRPC_PORT=8764
SET BINXMLRPC_PORT=8765
Das Gateway kann nun über den Dienst gestartet werden. Die Serverbasierte Konfiguration ist dabei schon aktiviert.
Hier ist nichts weiter zu erledigen. Das Gateway kann einfach wieder gestartet werden. Konfigurationsdateien bleiben bei einem Update stets erhalten.
Der konfigurierte Port des HConnect gateway (PUBLIC_PORT) muss aus dem Internet erreichbar sein. Aus diesem Grund muss für den angegeben Port eine Port-Weiterleitung auf Ihrem Router eingerichtet werden, welcher die Verbindung mit dem Internet herstellt. Entsprechende Informationen dazu lesen Sie bitte in der Anleitung Ihres Gerätes nach. Im obigen Beispiel ist also eine Port-Weiterleitung aus dem Internet für den Port 8760 auf die interne IP-Adresse Ihres Windows-Systems (im Beispiel 10.5.5.55) auf den Port 8088 einzurichten. Bitte beachten Sie, dass sowohl der Port (BINXMLRPC_PORT) als auch (XMLRPC_PORT) nicht aus dem Internet erreichbar sein muss und dementsprechend auch keine Port-Weiterleitungen eingerichtet werden müssen. Dieser Port dient nur der internen Kommunikation zwischen CCU und HConnect-Gateway. Da diese in Ihrem eigenen Netzwerk betrieben werden funktioniert dies ohne weitere Konfiguration
Anleitung zur Installation des HConnect-Gateways auf einem Raspberry Pi 2 oder 3
Eine komplette Anleitung zur Installation von Ubuntu mit dem HConnectGateway befindet sich links unter Anleitungen/Raspberry Pi
Anleitung zur Installation des HConnect-Gateways auf Linux Systemen
Für die Installation des HConnect-Gateways müssen auf dem entsprechenden Linux System die Befehle wget und unzip vorhanden sein. Informationen zur Installation dieser Befehle entnehmen Sie bitte der Dokumentation des jeweiligen Linux-Distribution. Für den Betrieb des HConnect-Gateways ist das dontnet core sdk sowie die runtime zu installieren
wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update && sudo apt-get install -y dotnet-sdk-7.0
sudo apt-get update && sudo apt-get install -y aspnetcore-runtime-7.0
wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update && sudo apt-get install -y dotnet-sdk-7.0
sudo apt-get update && sudo apt-get install -y aspnetcore-runtime-7.0
Für die Installation des Gateways kann ein Installationsscript verwendet werden. Dies wird zunächst heruntergeladen und dann gestartet.
cd ~
rm -f install_gateway.sh
wget -q https://hconnect.deike.cc/scripts/install_gateway.sh
chmod a+x install_gateway.sh
sudo ./install_gateway.sh
Das Script lädt die benötigten Installationsdateien herunter und installiert das HConnect-Gateway unter einem angegebenen Pfad.
Vorschlag für einen Installationspfad: /opt/dotnet/hconnect-gateway
Zusätzlich wird ein systemd service angelegt, welcher sicherstellt, dass das HConnect-Gateway bei einem Neustart des Systems
automatisch gestartet wird. Während der Installation werden einige Konfigurationsparameter abgefragt, welche dann in die
Konfigurationsdatei übernommen werden. Wird die Software später noch einmal unter dem gleichen Pfad installiert, oder ein
Update in diesem Pfad installiert, so übernimmt die Installation die bereits eingegebenen Werte. Diese können dann als
Standard-Werte jeweils mit ENTER übernommen werden, so dass die Parameter nicht bei jeder neuen Installation neu eingegeben
werden müssen
In dem folgenden Beispiel wird das HConnect Gateway auf einem Linux-System installiert
Bei dieser Konfiguration muss eine Port-Weiterleitung auf Ihrem Router für den Port 7760 auf die IP-Adresse 10.5.5.132 Port 8088 vorgenommen werden
Welcome to the HConnect-Gateway setup
Please enter the path where HConnect-Gateway should be or is currently installed (without trailing slash): /opt/dotnet/hconnect-gateway-test
No installation found. Creating new config defaults
Defaults are given in (). Press enter to accept defaults or enter a custom value
Enter your registered HConnect Account Email address (name@email.com): account@mail.com
Enter your password for the entered Email address (Secret!): *****
Enter the ip-address or hostname of your CCU device (127.0.0.1): 10.5.5.5
Enter the ip-address or hostname of this system (127.0.0.1): 10.5.5.132
Enter the public ip-address or hostname
or 0.0.0.0 to resolve automatically (0.0.0.0):
Forwarded Port: Which public port do you want to
use to access HConnect-Gateway from the internet (6760): 7760
Local Port: To which local port are you going to
forward the public port (80): 8088
BinXmlRpc Port: Which local port do you want to use (6765): 7765
XmlRpc Port: Which local port do you want to use (6764): 7764
The following configuration file will be created:
#!/bin/bash
export INSTALL_PATH="/opt/dotnet/hconnect-gateway-test"
export ACCOUNT="account@mail.com"
export PASSWORD="*****"
export CCU_ADDR="10.5.5.5"
export HOST_IP="10.5.5.132"
export PUBLIC_ADDR="0.0.0.0"
export PUBLIC_PORT="7760"
export XMLRPC_PORT="7764"
export BINXMLRPC_PORT="7765"
export XMLRPC_ADDR="10.5.5.132"
export BINXMLRPC_ADDR="10.5.5.132"
export HOST_MODE="Selfhosted"
export PORT="8088"
export BACKEND_URL="https://hconnect.deike.cc"
Are you ok with that? (Y/N): y
Der konfigurierte Port des HConnect gateway (PUBLIC_PORT) muss aus dem Internet erreichbar sein. Aus diesem Grund muss für den angegeben Port eine Port-Weiterleitung auf Ihrem Router eingerichtet werden, welcher die Verbindung mit dem Internet herstellt. Entsprechende Informationen dazu lesen Sie bitte in der Anleitung Ihres Gerätes nach. Im obigen Beispiel ist also eine Port-Weiterleitung aus dem Internet für den Port 7760 auf die interne IP-Adresse Ihres Linux-Systems (im Beispiel 10.5.5.132) auf den Port 8088 einzurichten. Bitte beachten Sie, dass der Port (BINXMLRPC_PORT) und (XMLRPC_PORT) nicht aus dem Internet erreichbar sein muss und dementsprechend auch keine Port-Weiterleitung eingerichtet werden muss. Diese Ports dienen nur der internen Kommunikation zwischen CCU und HConnect-Gateway. Da diese in Ihrem eigenen Netzwerk betrieben werden funktioniert dies ohne weitere Konfiguration
Nach der Installation kann das HConnect-Gateway mit dem folgenden Befehl gestartet werden
systemctl start hconnect-gateway
Die Software schreibt im Installationsverzeichnis fortlaufend log Dateien. Die Dateinamen der log Dateien lauten jeweils HConnectGatewayYYYYMMDD.log wobei jeweils das aktuelle Tagesdatum verwendet wird. Pro Tag wird normalerweise eine Datei neu erzeugt, wird eine log Datei jedoch größer als 100MB wird eine neue Datei mit einer weiteren fortlaufenden Nummer im Dateinamen erzeugt (z.B. *_0001.log). Die log Datei kann z.B. mit folgendem Befehl fortlaufend angezeigt werden
tail -f /opt/dotnet/hconnect-gateway/HConnectGateway20230530.log
Nach der Installation kann das HConnect-Gateway mit dem folgenden Befehl gestoppt werden
systemctl stop hconnect-gateway
Nach der Installation kann das HConnect-Gateway mit dem folgenden Befehl neu gestartet werden
systemctl restart hconnect-gateway
Die Konfiguration des HConnect-Gateways besteht nur aus 2 Dateien. Diese liegen direkt im Anwendungsverzeichnis mit den folgenden Namen:
Die Dateien sind mit sinnvollen Standardwerten versehen und ausführlich dokumentiert. Nachdem die Konfigurationsdateien den eigenen Wünschen angepasst sind kann die Anwendung gestartet werden. Sollte nach dem Start auffallen, dass die ein oder andere Option noch nicht richtig eingestellt wurde, so kann die Konfigurationsdatei einfach während der Laufzeit des Gateways verändert werden. Die Applikation merkt eigenständig wenn die Konfigurationsdatei gespeichert wird. In diesem Fall wird die Konfiguration neu eingelesen und aktiviert. Ebenfalls werden die Geräte aus der HomeMatic Zentrale neu geladen, da sich ggfs. die Namen der Geräte in der Alexa App dadurch ändern müssen. Dies funktioniert mit allen Optionen, ausser den Optionen die in der Datei hosting.json angegeben sind.
Das Gateway muss auf einer IP-Adresse und einem Port auf Ihrem Rechner ausgeführt werden. Welche IP-Adresse und welcher Port dies ist kann in der Datei hosting.json auf verschiedene Arten festgelegt werden.
"server.urls": "http://*:5100"
"server.urls": "http://mein-rechner-name:5100"
"server.urls": "http://mein-rechner-name.domain.local.com:5100"
"server.urls": "http://192.168.1.90:5100"
In diesem Abschnitt werden die verschiedenen Konfigurationsoptionen beschrieben, welche für die Verbindungen von und zu dem HConnect-Gateway zuständig sind.
Dazu geben Sie bitte entweder die IP-Adresse oder den auflösbaren Hostnamen der Zentrale an
"HomematicHostname": "192.168.1.90",
Das Gateway muss sich mit dem Cloud-Dienst verbinden und sich dort authentifizieren, damit der Cloud-Dienst den Client verifizieren kann. Erst nach erfolgreicher Verifizierung und Verbindungsprüfung wird der Cloud-Dienst später Befehle vom Alexa Skill an das Gateway weitergeben.
"ServiceProviderUrl": "https://hconnect.deike.cc",
Bei der Verbindung zum Cloud-Dienst gibt der Client bekannt unter welcher Adresse er aus dem Internet erreichbar ist. Ohne diese Angabe kann der Cloud-Dienst nicht in Verbindung mit dem Gateway treten. Hier gibt es verschiedene Möglichkeiten dies zu konfigurieren.
Es kann ein DNS-Name angegeben werden:
"ClientAddress": "http://mein-gateway.dyndns.com:8080",
Dem Cloud-Dienst die IP-Adresse des Gateways erkennen lassen:
"ClientAddress": "http://0.0.0.0:8080",
Der Port kann auch jeweils weg gelassen werden. Der Cloud-Dienst nutzt dann den Standard-Port 80. Bei dem Start des Gateways verbindet sich dieses zum Cloud-Dienst und übergibt seine Adresse. Der Cloud-Dienst überprüft daraufhin sofort ob er das Gateway erreichen kann und sendet das Ergebnis zurück.
Achtung: Die meisten werden einen DSL Router im Einsatz haben. Die hier angegebene Adresse muss den Port natürlich in das lokale Netzwerk zum Gateway weiterreichen (Port Forwarding). Dies muss im Router konfiguriert werden. Der hier angegebene Port muss also aus diesem Grund nicht mit dem Port übereinstimmen auf den das Gateway eingestellt ist (siehe hosting.json)
Beispiel: Das lokale HConnect-Gateway ist konfiguriert für die Adresse: 192.168.1.90 und Port 5100 (192.168.1.90:5100)
Als ClientAddress wird angegeben: http://mein-gateway.dyndns.com:8080
Dann muss im Router also der TCP-Port 8080 auf die Adresse 192.168.1.90 Port 5100 weitergeleitet werden. Es empfiehlt sich aber die Ports gleich zu wählen
Man benötigt dann ein SSL Zertifikat von einer ofiziellen trusted CA (Self signed wird nicht funktionieren). Aber: Kann man machen, muss man aber nicht, denn technisch läuft die Kommunikation folgendermaßen ab:
Das Gateway meldet sich beim Cloud-Dienst stets über https an und meldet sich mit den Account-Daten dort an (https ==> Verschlüsselt). Das Hosting des Cloud-Dienstes findet mit abgesichertem Zertifikat in der Microsoft-Cloud statt. Bei der Anmeldung des Client beim Cloud-Dienst erzeugen beide Seiten (lokales Gateway und Cloud-Dienst) jeweils ein Private/Public Key Pärchen und geben der anderen Partei dabei jeweils den Public Key. Jede weitere Kommunikation die ab nun stattfindet, findet stark verschlüsselt statt.
Für den Cloud-Dienst benötigt man einen Account. Der Account kann bei der Aktivierung des Skills in der Alexa App erstellt werden, da die Alexa App bei der Aktivierung auf den Cloud-Dienst weiterleitet. Die Test-Benutzer haben bereits fertig eingerichtete und frei geschaltete Accounts und müssen die zugeordnete Email-Adresse hier eintragen
"ServiceProviderAccount": "meine-emailadresse@anbieter.de",
Hier bitte das Kennwort für den Cloud-Dienst eintragen der bei der Registrierung angegeben wurde
"AlexaHomematicGateway": "MeinKennwort",
In diesem Abschnitt werden die verschiedenen Konfigurationsoptionen beschrieben, welche für die Benennung von Geräten in der Alexa App zuständig sind.
Mit dem Befehl "Alexa, schalte 'Geräte erkennen' ein" möchte ich erreichen, dass das HConnect-Gateway seine
Konfiguration neu einliest und sofort eine vollständige Aktualisierung der Geräte mit der neuen Konfiguration
startet. Der Befehl kann mit dem Parameter DeviceDiscoveryUtterance
(Aussprache) konfiguriert werden.
Daraufhin wird die Konfiguration neu eingelesen und die XML-API der Homematic bemüht die Geräte neu zu ermitteln.
Dieser Weg wurde gewählt, da Alexa von sich aus in regelmäßigen Abständen selbstständig die Geräteerkennung
auslöst. Dies ist zwar toll, aber jedes mal die XML-API zu bemühen ist für die Homematic Zentrale nicht so gut
(da bei vielen Geräten die Homematic schon etwas ausgelastet ist). Da Alexa dies wirklich regelmäßig tut (im
Abstand von ca. 15 Minuten) liefert das HConnect Gateway dann nur die Ergebnisse aus dem internen Cache (die
Homematic wird also nicht belastet). Mit dem hier konfigurierten Befehl kann man aber die "richtige"
Geräteerkennung auf Wunsch starten (ich weiss schließlich selbst am besten, wann sich an meiner
Gerätekonfiguration etwas verändert hat). Dann wartet man einfach mal eine halbe Minute (dann dürfte die XML
Api durch sein) und sagt dann:
Alexa, erkenne meine Geräte.
Et voila. Alexa triggert seine Geräteerkennung und bekommt vom HConnect-Gateway natürlich eine aktualisierte Geräteliste.
"DeviceDiscoveryUtterance": "Ger$ate erkennen",
"DeviceDiscoveryDescription": "Befehl startet die Ger$ateerkennung",
Wenn in der Homematic ein Schaltkanal eingerichtet ist mit dem Namen "Deckenlampe Wohnzimmer", dann ist es immer besser, dass in der Alexa App das Gerät "Deckenlampe im Wohnzimmer" heisst. Denn die meisten werden zu Alexa sagen wollen
"Alexa, schalte die Deckenlampe im Wohnzimmer ein!"
Damit man dies nicht in der Homematic machen muss, kann man hier die entsprechenden prefixes angeben, die vor den Raum gesetzt werden sollen. Da die prefixes pro Raum immer anders sein können, z.B. "in der Küche", aber "im Wohnzimmer" kann dies hier konfiguriert werden. Ein Standardsatz ist hier gepflegt, kann aber beliebig verändert werden.
"Wheres": {
"im": "Arbeitszimmer,Wohnzimmer,Esszimmer,Flur,Badezimmer",
"in der": "Küche,Wohnung,Wohnung unten,Wohnung oben",
"auf dem": "Balkon",
"auf der": "Terasse"
},
Eins vorab: Alexa hat Problem beim Erkennen von bestimmten Wörtern. Teilweise ist die einfache Schreibweise schon ausschlaggebend. Heisst das Gerät z.B. "Deckenlampe im Wohnzimmer" kommt bei dem Befehl "Alexa, schalte die Deckenlampe im Wohnzimmer ein", schon mal gerne die Antwort von Alexa: "Ich habe mehrere Geräte mit diesem Namen erkannt, welches möchtest du", oder "Entschuldigung, aber ich habe kein Gerät mit diesem Namen in XXXX Account gefunden. Gibt man Alexa aber das Gerät als "Decken lampe im Wohnzimmer" bekannt, funktioniert alles bestens. Amazon scheint hieran aber auf Rückfrage noch zu arbeiten. Bis dahin kann man hier sogenannte Replacements konfigurieren. Aus den Wörtern links (welche in den Namen der Homematic zu finden sind wird dann für Alexa der rechte Teil. Der hier gepflegte Standardsatz funktioniert bei mir wunderbar, aber vielleicht liegt es auch an meiner Aussprache der Wörter. Bitte testet hier. Leider ist hier noch ein Bug im parsing dieser Datei im .NET Framework: Umlaute wie ö können nicht direkt verwendet werden. Verwendet dafür bitte $o ==> ö
"ProblemWordsReplacements": {
"Deckenlampe": "Decken lampe",
"Deckenspots": "Decken spots",
"Tischlampe": "Tisch lampe",
"Wandlampe": "Wand lampe",
"Deckenfluter": "Decken fluter",
"Heizk$orperthermostat": "Heizk$orper thermostat"
},
Mein Schaltkanal für die Deckenlampe im Wohnzimmer heisst in meiner Homematic: Wohnzimmer Deckenlampe. Ich
möchte daraus 2 Geräte machen, da ich die folgenden Befehle geben möchte:
Alexa, schalte im Wohnzimmer die Deckenlampe ein!
Alexa, schalte die Deckenlampe im Wohnzimmer ein!
Dazu kann man hier sogenannte NameReversal Gruppen einrichten. In der Konfigurationsdatei ist dieses
Beispiel noch einmal detaillierter dokumentiert.
"NameReversals": {
"Lampen in Räumen": {
"Names": "Deckenlampe,Deckenspots,Spiegellampe,Tischlampe,Wandlampe,Salzkristall",
"Pattern": "[room] {name}",
"Reversal": "{name} [room]",
"Variant": "both"
},
"Lampen in Räumen (Beide Varianten behalten, mit optionalem im, in...)": {
"Names": "Keinelampe",
"Pattern": "[room] {name}",
"Reversal": "{name} [where] [room]",
"Variant": "reversal only"
}
},
Ich möchte, dass ich mit dem Befehl "Alexa, mach das Licht im Wohnzimmer aus", dass alle Lampen im Wohnzimmer ausgeschaltet werden. Die Homematic hat dafür natürlich kein einzelnes Gerät welches an Alexa gesendet werden kann. Dazu kann man sogenannte SpecialRoom Devices erzeugen lassen. Dies geht zunächst nur für 2 Gewerke (Trades). Licht (Lights) und Heizungssteuerungen (Heater). Das Gateway erzeugt dann ein Gerät, z.B. Licht Wohnzimmer und weiss ja, welche Schaltaktoren es im Wohnzimmer gibt, die einen Schaltkanal haben dem das Gewerk Licht zugeordnet ist. Da das Gewerk nicht unbedingt bei jedem LICHT heisst ist dies konfigurierbar. Ebenso ist konfigurierbar wie die Beschreibung des Gerätes in der Alexa App auftauchen soll. Auch dieser Konfigurationsabschnitt ist in der Konfigurationsdatei noch einmal detaillierter dokumentiert.
"SpecialRoomDevices": {
"Lights": {
"Trade": "Licht",
"DescriptionPattern": "Schaltet das {0} im Raum {1}",
"SpecialRoomsOnlyPattern": ""
},
"Heater": {
"Trade": "Heizung",
"DescriptionPattern": "Schaltet die {0} im Raum {1}",
"SpecialRoomsOnlyPattern": " SR"
}
},
Mit dem Konfigurationsparameter ChangeTemperatureMode kann eingestellt werden, in welchen Modus eine Heizungssteuerungskomponente der Homematic versetzt werden soll, wenn die Temperatur geändert wird, z.B. durch den Befehl "Alexa, stelle die Heizung im Arbeitszimmer auf 25 Grad". Der Standard ist: "DontChange" ==> Modus nicht ändern, es wird also lediglich die Temperatur im Arbeitszimmer auf 25 Grad gestellt. Weitere Optionen:
"ChangeTemperatureMode": "DontChange",
Die Heizkörperthermostate der HomeMatic unterstützen den sogenannten "Boosting" Modus. Wir dieser aktiviert, so wird über einen gewissen Zeitraum (konfigurierbar in der HomeMatic) das Ventil des Heizkörperthermostates stark geöffnet (ebenfalls konfigurierbar). Damit man diesen Modus auch über die Alexa Sprachsteuerung aktivieren kann muss man eine "Ansprache" (engl. Utterance) konfigurieren. Mit diesem konfigurierten Befehl kann man dann den Modus aktivieren, welcher sich nach der konfigurierten Zeit wirde selbstständig deaktiviert und in den vorherigen Modus zurückschaltet.
// Wird AddBoostingForHeaters auf true gesetzt, so werden der Heizungsgruppen der Räume (SpecialRoomDevices Heater)
// und sonstigen Heizungsgeräten auch sogenannte Boosting-Geräte hinzugefügt. Heizungsregler von Homematic können
// in einen Boostingzustand versetzt werden.
"AddBoostingForHeaters": true,
// Hier kann konfiguriert werden wie man dieses Boosting ansprechen möchte. Hier im Beispiel kann man dann sagen:
// Alexa, schalte Boosting Heizung Küche ein, wenn das Gerät oder die Gruppe Heizung Küche heisst
"BoostingUtterance": "aufheizen",
// Ein Pattern muss konfiguriert werden wie man Alexa ansprechen möchte
// Beispiel: Gerät in Alexa heisst "Heizung Wohnzimmer", BoostingUtterance: "Boosting"
//
// Alexa, schalte Boosting Heizung Wohnzimmer ein! oder
// Alexa, starte Boosting Heizung Wohnzimmer
// BoostingUtterancePattern = "{boostingUtterance} {deviceName}"
//
// Beispiel: Gerät in Alexa heisst "Heizung Wohnzimmer", BoostingUtterance: "aufheizen"
//
// Alexa, schalte Wohnzimmer aufheizen ein! oder
// Alexa, starte Wohnzimmer aufheizen
// BoostingUtterancePattern = "{deviceName} {boostingUtterance}"
"BoostingUtterancePattern": "{deviceName} {boostingUtterance}",
// Und wie oben eine Gerätebeschreibung
"BoostingDescriptionPattern": "Schaltet Aufheizen für {0} ein",
Einige Geräte, bzw. Schaltkanäle möchte man einfach nicht in seiner Alexa App haben um diese zu steuern. Es empfiehlt sich auch nur die Geräte in die Alexa App mit aufzunehmen die man auch wirklich benötigt. Denn je mehr Geräte Alexa kennt, desto länger dauert es auch bis Alexa einen Sprachbefehl versteht.
Ich habe bei mir einmal einen Test mit 125 Geräten in der Alexa App gefahren. Es ist zwar erträglich, doch muss man schon mal bis zu 5 Sekunden warten bis Alexa OK sagt. Aus diesem Grund können hier Zeichenfolgen oder Wörter hinterlegt werden. Werden diese Zeichenfolgen in einem Schaltkanal erkannt, so ignoriert das Gateway diesen Kanal und meldet dazu kein Gerät an Alexa.
Die einfache Schreibweise schaut einfach nur nach, ob der angegebene Text im Kanalnamen des Gerätes vorkommt. Es können aber auch so genannte Regular Expressions verwendet werden (ein Pattern), mit denen es möglich ist komplexe Ausdrücke für das Erkennen von Zeichenketten zu verwenden. Ein Beispiel ist hier mit angegeben. Möchte man eine regular expression "designen" geht man am besten auf http://regexr.com/ Dort gibt es auch ein super Tutorial.
Es ist zu beachten, dass reguläre Ausdrücke hier immer mit / beginnen müssen um als solche erkannt zu werden.
"IgnoreChannels": {
// Alles ignorieren wo der Text (no_alexa) vorkommt
"HomeMatic Kanäle die ich mit (no_alexa) im Namen gekennzeichnet habe": "(no_alexa)",
// Alle Lampen im Esszimmer ignorieren (z.B: Deckenlampe im Vorratsraum)
"Regular Expression 1": "/(.*)(lampe)(.*)(Vorratsraum)/gi"
},
In der Alexa-App werden die gefundenen Geräte als Geräte von folgendem Hersteller angegeben. Der Name kann frei gewählt werden
"AlexaDeviceManufacturerName": "INTEX Datensysteme",
In der Alexa-App werden die gefundenen Geräte mit der folgenden Geräteversion angegeben. Die Version kann frei gewählt werden
"AlexaDeviceVersion": "1.0"
"Scopes" sind ein Feature, mit welchem es möglich ist mit mehreren echo's oder echo dot's die zu verschiedenen Benutzern gehören die Geräte einer HomeMatic Installation in Bereiche zu unterteilen. Damit können mit nur einer HConnect-Gateway Installation und einer HomeMatic Zentrale z.B. mehrere voneinander unabhängige Wohnbereiche gesteuert werden ohne dass der eine Wohnbereich auf die Geräte des anderen Wohnbereiches zugreifen kann.
Familie Müller und Meier wohnen in einem Zweifamilienhaus und teilen sich eine HomeMatic Zentrale. Beide haben ein paar Echos und Echo dots, welche auch die eigenen Komponenten der gemeinsamen HomeMatic Installation über ihre eigenen Alexen steuern möchten. Natürlich möchte Familie Müller in ihrer Alexa App nicht die Geräte von Familie Meier sehen und umgekehrt. Außerdem hat Familie Meier keine Ahnung von Technik. Deshalb wird die HomeMatic Installation von Familie Müller betrieben, die dann auch ein HConnect Gateway am Laufen hat. Dabei soll es auch bleiben. Keine weiteren Gateways.
Legen Sie hierfür einen weiteren Scope-Raum mit dem Namen Scope: All
oder Scope: Alle
an und weisen Sie den
entsprechenden Schaltkanälen diesen Scope zu. Diese Geräte dürfen dann alle Benutzer des Systems bedienen.