Schlagwort-Archive: Keymatic

Dieser Bereich beinhaltet alle Themen zu dem Schlagwort “Keymatic”.

KeyMatic

HomeMatic KeyMatic mit NFC Tag öffnen und schließen

Die KeyMatic von HomeMatic habe ich bereits seit Jahren im Einsatz und sie läuft ohne Probleme. Nun habe ich mir überlegt, wie man NFC in die KeyMatic integrieren kann, damit auch eine Öffnung möglich ist, wenn man das Smartphone benutzt.

Um dies zu realisieren benötigst Du nur ein Set von NFC Tags (Aufkleber). Diese dienen hier nur als Auslöser für ein Makro und beinhalten keine sonstigen Informationen.

Programm für die HomeMatic

Ich habe hier ein Programm erstellt, welches zuerst den Status des Schlosses ermittelt (geöffnet/geschlossen). Somit wird das Schloss geöffnet, wenn es verschlossen ist und verschlossen, wenn es aufgeschlossen ist.

Programm zum Öffnen oder Schließen der Tür
Programm zum Öffnen oder Schließen der Tür

Achtung: Dieses Programm hat keinen Auslöser, somit wird das Programm immer ausgeführt, wenn die Zentrale neu startet.

! KeyMatic steuern ####################################
var schloss = dom.GetObject("BidCos-RF.LEQXXXXXX:1.STATE").Value();

if (schloss) {
	WriteLine("Schloss ist auf und wird abgeschlossen!");
	dom.GetObject("BidCos-RF.LEQXXXXXX:1.STATE").State(0);
	dom.GetObject(950).State(0);
} else {
	WriteLine("Schloss ist abgeschlossen und wird geöffnet!");
	dom.GetObject(950).State(1);
	dom.GetObject("BidCos-RF.LEQXXXXXX:1.OPEN").State(1);
}

Der Name des Programms sollte nach Möglichkeit keine Sonderzeichen oder Leerzeichen enthalten, da er sonst später nicht aufgerufen werden kann.

Nachdem das Programm erstellt worden ist, kannst Du dich an die Einrichtung eines Makros in MacroDroid machen.

Als Auslöser stellst Du NFC Sticker ein und als Aktion den Aufruf als HTTP GET (Ohne Web Browser). Beim Auswählen des NFC Sticker muss dieser bereitliegen, da er gescannt wird. Ein Name “Haustuer” o.ä. ist hier hilfreich, damit man die Sticker später auseinander halten kann. MacroDroid schreibt nun nur den Namen auf den Sticker und speichert diesen ab. Es kann also mit dem NFC Tag ansich kein Unfug getrieben werden, da er nur die Information seines Namens beinhaltet.

Die Adresse für den Aufruf über MacroDroid stellst Du wie folgt ein:

http://IP-DEINER-CCU:8181/x.exe?Antwort=dom.GetObject("geheimer_Tueroeffner").ProgramExecute()

geheimer_Tueroeffner ist hier der Name des Programms, welches über den Aufruf der URL gestartet wird. Ich habe hier bewusst die lokale IP benutzt, da somit auch sichergestellt ist, dass die CCU weiterhin nicht von Außen erreichbar sein muss.

Solltest Du nur die Öffnung der Türe benötigen, so kannst Du das HomeMatic Programm von oben wieder entfernen und den Aufruf der Adresse von MacroDroid in folgenden Aufruf abändern:

http://IP-DEINER-CCU:8181/x.exe?Antwort=dom.GetObject("BidCos-RF.LEQXXXXXXX:1.OPEN").State(1)

Nun kannst Du den Sticker in die Nähe Deines Türschlosses o. ä. kleben und zum Testen Dein Handy an diesen halten.
Bitte beachte: Bei neueren Android Versionen muss das Handy entsperrt sein, damit der Tag gelesen werden kann. Dies ist aus Sicherheitsgründen so gewollt, da so auch Zahlungen bei gesperrtem Smartphone getätigt werden könnten.

Präsenz

An- und Abwesenheiterkennung mit HomeMatic und ioBroker

Die HomeMatic Zentrale bringt von sich aus schon eine Variable zur An- und Abwesenheit mit. Diese Variable kannst du z.B. setzen lassen, wenn Du den Taster auf einer Schlüsselfernbedienung betätigst oder das Schloss KeyMatic den Zustand verschlossen einnimmt.

Variable Anwesenheit
Variable Anwesenheit

Auf die Variable “Anwesenheit” in ioBroker reagieren

Damit nun Dinge in ioBroker passieren, sobald die Variable Anwesenheit geändert wird, legst Du ein Programm in JavaScript an, welches auf die Änderungen reagiert.

Zuerst suchst Du dir den passenden Datenpunkt der Variable in ioBroker.
Diesen findest Du unter unter dem Namen: ${sysVarPresence}

Variable Anwesenheit (${sysVarPresence}) in ioBroker
Variable Anwesenheit (${sysVarPresence}) in ioBroker

Mit dem nachfolgenden Skript abonnierst Du den Datenpunkt und kannst auf die Änderungen von HomeMatic in ioBroker reagieren:

//An- und Abwesenheit der HomeMatic
 var status = "hm-rega.0.950";
 
 on({id: status, change: "any"}, function (obj) {
     if(getState("hm-rega.0.950").val==false){
         log("Abwesenheit erkannt. Schalte alle Geräte aus!");
     }
 });

Skript erweitern und Schaltbefehle hinzufügen

Damit nun auch Schaltbefehle in dem Skript ausgeführt werden, muss das Skript um die jeweiligen Datenpunkte erweitert werden. Ich habe hier mal das Beispiel genommen, das mein Onkyo Receiver (verbunden über den Onkyo-Adapter) augeschaltet wird, sobald “Abwesend” auf nicht wahr steht.

//An- und Abwesenheit der HomeMatic
 var status = "hm-rega.0.950";
 
 //Receiver
 var receiver = "onkyo.0.Zone1.Power";
 on({id: status, change: "any"}, function (obj) {
     //Geräte ausschalten, wenn abwesend
     if(getState("hm-rega.0.950").val==false){
         log("Abwesenheit erkannt. Schalte alle Geräte aus!");
         setState(receiver,false);
     }
 });

Das Skript kannst Du jetzt natürlich um ganze viele Datenpunkte erweitern. Z.B. kannst Du nun alle Shelly Aktoren mit einfügen, die dann ausgeschaltet werden.

Damit das Skript nun auf Anwesenheit reagiert, musst Du noch einen neuen Skript-Block hinzugefügen.

//An- und Abwesenheit der HomeMatic
 var status = "hm-rega.0.950";
 
 on({id: status, change: "any"}, function (obj) {
     //Geräte ausschalten, wenn abwesend
     if(getState("hm-rega.0.950").val==false){
         log("Abwesenheit erkannt. Schalte alle Geräte aus!");
     }
     //Geräte einschalten, wenn anwesend
     if(getState("hm-rega.0.950").val==true){
         log("Anwesenheit erkannt. Schalte alle Geräte ein!");
     }
 });

Jetzt ist das Skript bereit, um die beiden Zustände Anwesend und Abwesend zu erkennen und darauf zu reagieren.

KeyMatic

Keymatic in VIS einbinden

Da das “Lock” Widget von HQ-Widgets sich nicht richtig mit meinem Schloss verhalten wollte, stelle ich hier einen Hinweis/Anleitung bereit, wie man das Widget trotzdem verwenden kann.

Fehlerhafter Datenpunkt des Widgets

Fehlerhafter Datenpunkt des Widgets
Fehlerhafter Datenpunkt des Widgets

Hier ist ersichtlich, das Inhibit natürlich das falsche State ist. Wählt man dieses aus, so blockiert man sich das Schloss und kann es weder über die Fernbedienung noch über die Taste am Schloss steuern. Erst, wenn Inhibit wieder auf false steht, kann das Schloss wieder gesteuert werden.

Abhilfe:

Korrigierter Datenpunkt des Widgets
Korrigierter Datenpunkt des Widgets

Man wählt dort das x und schon kann man den passenden State zum Schloss auswählen.

Richtige Auswahl für das Lock Widget
Richtige Auswahl für das Lock Widget