Z-Wave-ZIP WT-RFID Keypad
Z-Wave-ZIP WT-RFID Keypad | |
---|---|
Allgemein | |
Protokoll | Z-Wave |
Typ | Eingabe, Sender und Empfänger |
Kategorie | Z-Wave |
Technische Details | |
Kommunikation | Funk 868MHz |
Kanäle | |
Betriebsspannung | 3V |
Leistungsaufnahme | keine Herstellerangaben |
Versorgung | 2xAA 1,5V Batterien |
Abmessungen | 63x63x19mm |
Sonstiges | |
Modulname | Z-Wave |
Hersteller | zipato |
Z-Wave-ZIP WT-RFID Keypad ist ein Eingabeterminal mit Mini-Keypad und eingebautem RFID-Leser, welches dazu geeignet ist, ein Sicherheitssystem über Z-Wave Kommunikation ein-/ und auszuschalten.
Features / Funktionen
Die Haupteigenschaften des Zipato WT-RFID Keypad sind
- Einlesen von RFID Tags (Protokolle: ISO15693, ISO18000-3, Tag-itTM, RFiD)
- Eingabe von Tastencodes über Mini-Keypad (Zahlen 1-4, Enter)
- Tasten für "Home" und "Away" zur Kennzeichnung ob Ein- oder Ausgeschaltet werden soll
- Kontroll LED, Summer
- Batteriebetrieb
- Wandmontage (nur für Innenbereich geeignet, Kunststoffgehäuse nicht Vandalensicher)
- Kommunikation über Z-Wave Protokoll
Prinzipielle Funktionsweise:
Betätigen der Taste "Home" oder "Away", danach Eingabe eines 4-10 stelligen Codes und Bestätigung mit Enter ODER Einlesen eines RFiD-Tags.
Sollte der Code bzw. der RFID-Tag angenommen werden, so wird über die COMMAND_CLASS_ALARM_V2 eine "Lock" bzw. "Unlock" Nachricht verschickt, wodurch ein Sicherheitssystem ein- oder ausgeschaltet werden kann. Die Übertragung dieser Nachricht ist nicht gesondert gesichert oder verschlüsselt, die COMMAND_CLASS_SECURITY wird von dem Gerät nicht unterstützt.
Hinweise zum Betrieb mit FHEM
Allgemeine Informationen zum Betrieb mit FHEM
Das Gerät verwendet die folgenden Z-Wave Befehlsklassen (COMMAND_CLASS)
- Class: 0x85 COMMAND_CLASS_ASSOCIATION
- Class: 0x80 COMMAND_CLASS_BATTERY
- Class: 0x84 COMMAND_CLASS_WAKE_UP
- Class: 0x86 COMMAND_CLASS_VERSION
- Class: 0x72 COMMAND_CLASS_MANUFACTURER_SPECIFIC_V2
- Class: 0x71 COMMAND_CLASS_ALARM_V2
- Class: 0x70 COMMAND_CLASS_CONFIGURATION
- Class: 0x25 COMMAND_CLASS_SWITCH_BINARY
- Class: 0x63 COMMAND_CLASS_USER_CODE
Diese Klassen werden aktuell (Stand 10.05.2015) von FHEM soweit unterstützt, wie es zum Betrieb des Gerätes nötig ist. Die Klasse 0x63 (COMMAND_CLASS_USER_CODE) wurde extra für dieses Gerät von Rudolf König implementiert.
Im folgenden wird das Gerät entweder als ZWave_ENTRY_CONTROL_<nodeID> oder allgemeiner als <device> bezeichnet, um es in den FHEM-Befehlen anzusprechen. Dargestellte Ausschnitte aus den Logfiles oder Konfigurationsdateien zeigen das Gerät als allerdings unter dem Namen "Zipato_EC".
Inklusion
Das Gerät wird bei der Inklusion und aktivierten autocreate vollautomatisch erkannt und als "ZWave_ENTRY_CONTROL_<nodeID>" in FHEM definiert. (Also z.B. als ZWave_ENTRY_CONTROL_8, falls das Gerät die nodeID 8 erhalten hat)
Assoziation
Die Gruppe 1 wird zwischen dem Gerät und dem Z-Wave-Controller (z.B. einem ZWave.me USB-Stick; hier mit NodeID 1) durch den folgenden Befehl erzeugt:
set <device> associationAdd 1 1
Konfiguration
XML-Dateien einbinden
get <name> model
ausgeführt.Durch
get <device> model
wird die Definiton aus der externen XML-Datei mit weiteren Hilfetexten und Parametern in FHEM eingefügt.
Nach aktuellem Stand (10.05.2015) der XML-Datei werden dabei die folgenden Informationen als Readings eingetragen:
- model: Schlage Link Mini Keypad RFID
- modelConfig: schlagelink/minikeypad.xml
- modelId: 0097-6131-4501
Wakeup-Interval / "Always on" Modus / (Sabotage-Kontakt)
Das Gerät ist batteriebetrieben und schaltet sich nach Beendigung der Datenübertragung in einen Tiefschlafmodus, sobald vom Z-Wave-Controller keine weiteren Daten mehr vorliegen (wird vom Controller mit einer "WAKE_UP_NO_MORE_NOTIFICATION" mitgeteilt) um den Batterieverbrauch minimal zu halten.
Das Zeitinterval nach dem das Gerät automatisch wieder aufwacht und dem Controller die Chance gibt neue Befehle zu senden lässt sich mit
set <device> wakeupInterval <sekunden> 1
setzen. In diesem Fall würde die WAKE_UP_NOTIFICATION NUR an den Z-Wave-Controller (nodeID = 1) gehen. Soll die WAKE_UP_NOTIFICATION an alle Geräte gesendet werden, so kann für die nodeID 255 (Broadcast) angegeben werden. Default Wert für das Zeitinterval ist bei diesem Gerät 7200 Sekunden (2 Stunden).
Durch diesen Tiefschlafmodus ist es teilweise schwierig das Gerät einzurichten / neue Codes zu senden, da Befehle erst nach dem nächsten Aufwachen abgearbeitet werden.
Möglichkeiten zum umgehen der Einschränkungen durch den Tiefschlafmodus:
- Zeitinterval auf z.B. 5 Sekunden heruntersetzen, hierdurch werden Befehle spätestens nach 5 Sekunden abgearbeitet. Nach Beendigung der Konfigurationsarbeiten sollte das Interval wieder hochgesetzt werden um die Batterien zu schonen.
- "Always on" Mode setzen: In diesem Modus ist der Empfänger ständig an, allerdings funktioniert in diesem Modus die Eingabe von Codes bzw. das Einlesen von RFID-Tags am Gerät nicht! Daher müssten eventuell anzulernende RFID-Tags vorher ausgelesen werden. Der Modus wird durch eine "3" eingeschaltet und durch eine "1" wieder ausgeschaltet:
set <device> configTheMode 3 set <device> configTheMode 1
- Nutzung des Sabotage-Kontaktes: Entfernt man das Gerät aus seiner Halterung, so wird ein Sabotage Kontakt ausgelöst, was mit einer Nachricht an den Controller gemeldet wird. Hierdurch wird auch eine "WAKE_UP_NOTIFICATION" erzeugt, innerhalb derer dann die aufgelaufenen und gespeicherten Befehle ausgeführt werden. Das kann man sich zu Nutze machen indem man das Gerät auf den Tisch legt (Sabotage Kontakt ist dann geschlossen) und kurz anhebt sobald man eine Datenübertragung benötigt.
Umgang mit Tastencodes / RFID-Tags
Das Gerät nutzt 4-10 stellige Tastencodes (aus den Zahlen 1-4) oder die in RFID-Chips gespeicherten Seriennummern zum Authentifizieren. Es können bis zu 255 solcher Codes (entweder Tastencode oder RFID-code) im Gerät gespeichert werden. Die Verwaltung dieser Codes wird über die COMMAND_CLASS_USER_CODE (0x63) durchgeführt.
Jedem Code ist ein "User Identifier" (UserID oder UID) sowie ein Status (User ID Status) zugeordnet. Die UserID kann von 1 bis 255 gewählt werden, 0 ist an dieser Stelle nicht gültig. Der Status ist entweder 0 (verfügbar/nicht aktiv) oder 1 (belegt/aktiv). Im Z-Wave Standard ist hier auch noch 2 "Reserved by administrator" vorgesehen, diese scheint bei dem Gerät aber nicht genutzt zu werden.
Codes werden intern IMMER 10 stellig abgelegt, sollte der Code kürzer sein, so wird mit 0x00 aufgefüllt. Dies gilt sowohl für Tastencodes, als auch für die RFID-Tags. Die Tastencodes werden als ASCII-Codes der Zahlen abgelegt, die Taste 1 wird als 0x31 eingetragen.
Im Auslieferungszustand des Gerätes ist kein Code aktiv, auch der mitgelieferte RFID-Tag ist nicht angelernt und kann daher nicht direkt zum schalten genutzt werden.
Die Befehle zum Umgang mit den Tastencodes / RFID-Tags nutzen wie schon beschrieben die COMMAND_CLASS_USER_CODE:
Auslesen einer UserID:
get <device> userCode <UserID>
Programmieren einer UserID:
set <device> userCode <UserID> <UserID-Status> <code>
<UserId>: 1-255, 0 ist nicht erlaubt
<UserID-Status>: 0 (verfügbar/nicht aktiv), 1 (belegt/aktiv), (2 reserviert für Administator)
Auslesen unbekannter RFID-Tags oder nicht angelernter Tastencodes
Wird ein unbekannter Tastencode oder ein unbekannter RFID-Tag am Gerät eingegeben, so sendet das Gerät einen Report mit:
- UserID=0
- UserID-Status=0
- Code, 10 stellig
Bei unbekanntem Code wird keine Info gesendet ob "Home" oder "Away" gedruckt wurde. Der gemeldete Code wird in den Readings unter userCode angezeigt und kann dann zum Programmieren des Codes verwendet werden. Im Logfile wird die gesamte Nachricht als Rohwerte abgelegt.
Zahlenangaben im Logfile und im Reading sind in der Regel in hexadezimaler Form. Bei den Logfile Einträgen wurde Datum/Uhrzeit und Loglevel entfernt um die Einträge kurz zu halten.
Aktion: Home gedrückt, dann (unbekannten) Tag #1 davorgehalten Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0e630300008fa4d1542a0001040000 Reading: userCode id 0 status 0 code 8fa4d1542a0001040000
Aktion: Away gedrückt, dann (unbekannten) Tag #1 davorgehalten Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0e630300008fa4d1542a0001040000 Reading: userCode id 0 status 0 code 8fa4d1542a0001040000
Aktion: Home gedrückt, Tastencode 1234 und Enter eingegeben Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0e6303000031323334000000000000 Reading: userCode id 0 status 0 code 31323334000000000000
Tasten werden im ASCII-Code übertragen.
Anlernen/Abspeichern von RFID-Tags oder Tastencodes
Anlernen Tag #1: FHEM-Befehl: set Zipato_EC userCode 1 1 8fa4d1542a0001040000 Logfile: Sending stored command: 13080e630101018fa4d1542a00010400000508
Überprüfen durch Abfrage der UserID:
Auslesen UserID 1: FHEM-Befehl: get Zipato_EC userCode 1 Logfile: Sending stored command: 1308036302010508 Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0e630301018fa4d1542a0001040000 Reading: userCode id 1 status 1 code 8fa4d1542a0001040000
Wenn der status = 1 ist und der code identisch ist, dann hat das abspeichern funktioniert.
Auslesen einer UserID die noch nicht gespeichert wurde:
Auslesen UserID 2: FHEM-Befehlt: get Zipato_EC userCode 2 Logfile: Sending stored command: 1308036302020508 Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0e6303020031323334000000000000 Reading: userCode id 2 status 0 code 8fe37e542a0001040000
Hier ist der Status 0 (verfügbar/nicht aktiv), es ist jedoch ein Code angezeigt der aber nicht relevant ist. Es ist nicht möglich nur den Status zu wechsel ohne den Code mit zu übertragen. Daher wird auf jeden Fall immer der beim set Befehl gelieferte Code geschrieben/genutzt.
Tastencode 1234 auf UserID 2 anlernen: FHEM-Befehl: set Zipato_EC userCode 2 1 31323334000000000000 Logfile: Sending stored command: 13080e63010201313233340000000000000508
Auslesen UserID 2: FHEM-Befehl: get Zipato_EC userCode 2 Logfile: Sending stored command: 1308036302020508 Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0e6303020131323334000000000000 Reading: userCode id 2 status 1 code 31323334000000000000
Der Code würde überschrieben und ist jetzt gültig.
Anzahl Codes
Laut einem Beitrag im Internet soll der Reader nur 10 Codes unterstützen, laut der Webseite von Zipato bis zu 20 Codes. Das Gerät wurde erfolgreich mit 32 verschiedenen Codes getestet und hat die Codes einwandfrei der UserID zugeordnet. Daher ist davon auszugehen, dass es keine Beschränkung in der Anzahl der Codes gibt und das somit 255 verschiedenen Codes abgelegt werden können.
Alarmmeldungen
Bei gültigem Code wird, je nachdem ob "Home" oder "Away" gewählt wurde, eine entsprechende Meldung gesendet:
Home + Tag #1: Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0a7105000000ff06060101 Reading: alarm AccessControl: Keypad Unlock Operation, arg 0101
Away + Tag #1: Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0a710500ff00ff06050101 Reading: alarm AccessControl: Keypad Lock Operation, arg 0101
Home + 1234 + Enter: Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:0a7105000000ff06060102 Reading: alarm AccessControl: Keypad Unlock Operation, arg 0102
Diese Events können jetzt z.B. mit einem Notify abgefragt werden um damit dann ein Sicherheitssystem zu schalten. Die UserID ist im letzten (hexadezimalen) Wert in "arg" erkennbar, der Tastencode in obigem Beispiel ist der UserID 2 zugeordnet. Die Bedeutung der davorstehenden 0x01 ist bisher nicht geklärt, vermutlich handelt es sich hier um den Status der UserID, welcher auch noch 02 für Admistrator sein kann.
Beim Öffnen des Gehäuse (Entfernen von der Rückplatte) wird ein Sabotagealarm ausgelöst:
Tamper alarm ausgelöst: Logfile: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:09710500ff00ff070300 Reading: alarm HomeSecurity: Tampering, product covering removed, arg 00
Definition
Auszug aus der fhem.cfg mit der Definition des Gerätes:
define Zipato_EC ZWave e173b78d 8 attr Zipato_EC IODev ZWDongle_0 attr Zipato_EC classes ASSOCIATION BATTERY WAKE_UP VERSION MANUFACTURER_SPECIFIC ALARM CONFIGURATION SWITCH_BINARY USER_CODE attr Zipato_EC room ZWave attr Zipato_EC verbose 5 define FileLog_Zipato_EC FileLog ./log/Zipato_EC-%Y.log Zipato_EC attr FileLog_Zipato_EC logtype text
Der Gerätename ist in diesem Beispiel Zipato_EC, der Loglevel steht zu Debug-Zwecken auf 5.
Logbeispiel
Die wichtigsten Logmeldungen sind in dem obigen Kapitel bereits aufgeführt.
Das Gerät erzeugt regelmäßig Einträge im Log wenn der Loglevel entsprechend hoch gesetzt wurde, in diesem Fall auf 4:
ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:08 ARG:028407
Hierbei handelt es sich um die beschriebene WAKE_UP_NOTIFICATION die das Gerät nach dem Aufwachen verschickt.
Bekannte Probleme
Aktuell sind noch keine Probleme oder Einschränkungen bekannt, das Gerät wird zur Zeit aber noch nicht produktiv eingesetzt.
Verwendete RFiD-Tags
Das Gerät ist für Tags nach:
- ISO 15693
- ISO 18000-3
- Tag-itTM
spezifiziert. Als weiteres ist noch "RFiD" angegeben, was aber nicht wirklich hilft ein passenden Tag zu kaufen. Die "Standard"-Tags die es z.B. auf ebay oder bei Amazon gibt verwenden meistens ISO 14443 und sind nicht kompatibel. Bisher sind keine kompatiblen Tags ausser den originalen Hersteller-Tags bekannt.
Eine recht günstige Quelle ist z.B. hier im Online-Shop von intellihome.be in Belgien. Hier muss allerdings der Versand nach Deutschland (8 €) berücksichtigt werden. Hinweise zu kompatiblen günstigeren Alternativen sind willkommen.
Ähnliche/Baugleiche Geräte
Das hier dargestellte Gerät ist von Zipato, ein identisch aussehendes Gerät gibt es auch noch von BeNext. Es gibt wiedersprüchliche Aussagen ob die Geräte nun identisch sind oder nicht (z.B. Diskussion zum BeNext Tag Reader in der Zipato Community). Informationen zu dem Gerät von Schlage (von dem auch der Eintrag in der XML-Datei (siehe get <device> model) stammt findet sich im Netz nicht mehr. Schlage scheint dieses Gerät nicht mehr zu vertreiben.
Der eigentliche Hersteller des Gerätes scheint Wintop zu sein. In der Anleitung des Gerätes findet sich zum Thema COMMAND_CLASS_MANUFACTURER_SPECIFIC_V2 die folgende Passage: "Manufacturer ID of Wintop is 0x97, the ID of this product is 0x31". Auf der Webseite von Wintop findet man die Geräte leider nur sehr schwer, Informationen zu den dortigen Geräten erhalten anscheinend nur registrierte Händler mit Login. Die Geräte sind jedoch hier abgebildet, der online-shop von Wintop verlinkt dann hierhin.
Forumsdiskussion
Der Wiki-Artikel beruht auf den Informationen aus der Forumsdiskussion zur Implementierung des RFID-Readers bzw. der damals fehlenden Implementierung der COMMAND_CLASS_USER_CODE. (Forumsdiskussion)
Weblinks
- Herstellerwebseite: zipato
- Zipato wt-rfid.eu - Mini Keypad RDiD: online shop
- Anleitung v1.3: (aktuell funktioniert download-link nicht!) download PDF
- das hier beschrieben Gerät wurde mit einer Anleitung V1.2 ausgeliefert: download PDF from www.intellihome.be
- Alternatives Keypad: BeNext
- Anleitung BeNext: download PDF
- BeNext Tag Reader: online Shop