Zum Inhalt springen
Developer

Smartlocks und Zutritt

Nuki, LOQED, QRLock, Comydo und eigene Schlösser über Home Assistant, Node-RED oder n8n anbinden; wer öffnen darf und wie Zugangscodes entstehen.

vynst (inwendo ERP) steuert Türen, Tore und Schränke über Smartlock-Verbindungen. Eine Verbindung gehört zu einem Anbieter und bringt ein oder mehrere Schlösser mit. Mitglieder, Trainer und Mitarbeiter öffnen sie in der vynst App. vynst prüft dabei jedes Mal, ob die Person in diesem Moment darf, und schreibt jeden Versuch ins Schloss-Protokoll.

Anbieter

Anbieter Modus So funktioniert es
Nuki bridge vynst spricht die Nuki Bridge im lokalen Netz an (Host, Port, Token)
Nuki web_oauth, web_api_token über die Nuki Web API, per Login oder API-Token
LOQED loqed_web_api, loqed_bridge_api über die Aktions-URLs aus der LOQED-App
QRLock qrlock_api QRLock erzeugt QR-Codes, die der Leser an der Tür prüft
Comydo comydo_webhook ein QR-Scanner an der Tür fragt vynst, ob der Code gilt
Home Assistant ha_webhook Schlösser aus Home Assistant, siehe Home Assistant
Node-RED nodered_mqtt, nodered_push Relais, Türöffner, Shelly … aus Node-RED, siehe Node-RED
n8n n8n_push Schlösser aus einem n8n-Workflow, siehe n8n

Ein neuer Anbieter wird erst aktiv, wenn ihr Zugangsdaten einträgt. Dafür gibt es keinen eigenen Schalter.

Verbindung einrichten

Verbindungen legt ein Superadmin in der Verwaltung unter SmartLock-Verbindungen an, oder per API mit POST /api/event/smart_lock_connection.json.

Feld Für Inhalt
bridgeHost, bridgePort, bridgeToken Nuki Bridge Adresse, Port (Standard 8080) und Token der Bridge
webClientId, webClientSecret Nuki Web, QRLock OAuth-Client von Nuki; bei QRLock E-Mail und Passwort des QRLock-Kontos
webApiToken Nuki Web API-Token statt Login
loqedLockId, loqedOpenUrl, loqedLatchUrl, loqedNightLockUrl, loqedStatusUrl LOQED Aktions-URLs aus der LOQED-App
bridgeHost QRLock optional eigene API-Adresse (Standard https://hms.qrlock.net/api)
scanDeviceIds Comydo, QRLock erlaubte Leser; bei Comydo je 12 Hex-Zeichen
scanWebhookSigningSecret Comydo Schlüssel für signierte Scanner-Anfragen

Geheime Felder werden verschlüsselt gespeichert und nie wieder ausgegeben. Lasst sie beim Bearbeiten leer, bleiben sie unverändert.

Danach:

  1. Geräte synchronisieren (POST …/smart_lock_connection/{id}/sync_devices.json): vynst holt die Schlösser des Anbieters.
  2. Jedes Schloss bekommt seine Zugriffsregeln (siehe unten).
  3. Bei Nuki Web mit Login: GET …/{id}/oauth_login.json liefert die Login-Adresse bei Nuki.

Home Assistant, Node-RED und n8n legen ihre Verbindung selbst an, wenn ihr dort Schlösser freigebt. Auch dann passiert nichts, bis ein Administrator in vynst die Geräte synchronisiert und Rechte vergibt.

Zum Ausprobieren ohne Hardware gibt es virtuelle Schlösser für Node-RED.

Wer darf öffnen?

vynst prüft bei jedem Öffnen, ob mindestens eine Regel passt:

  • Selbstbedienung am Schloss: bestimmte Personen, Rollen oder Access-Tags. Mit event_smart_lock_logged_in_access_enabled gilt der Zugriffstyp „Alle eingeloggten“ für jede angemeldete Person.
  • Raum oder Objekt: Das Schloss gehört zu einem buchbaren Objekt mit „Smartlock-Zugang erlaubt“.
  • Buchung: Trainer und Teilnehmer einer Buchung dürfen etwa eine Stunde vor bis eine Stunde nach der Buchung öffnen. Ob Trainer und Teilnehmer das dürfen, legt der Veranstaltungstyp fest.
  • Arbeitsvertrag oder Vertragsgruppe für Mitarbeiter.
  • Superadmin darf immer.

Öffnen per App und API

Aufruf Zweck
GET /api/event/smart_lock/my_accessible.json Schlösser, die die angemeldete Person öffnen darf
POST /api/event/smart_lock/{id}/unlock.json öffnen
POST /api/event/smart_lock/{id}/lock.json abschließen
GET /api/event/smart_lock/{id}/status.json Zustand
POST /api/event/smart_lock/{id}/access_code.json Zugangscode für QR-Leser erzeugen
GET /api/event/smart_lock_log Protokoll (Administratoren)
curl --request POST https://eure-instanz.iw-erp.de/api/event/smart_lock/12/unlock.json \
  --header 'x-iw-jwt-token: <TOKEN>'

Ein API-Token öffnet nur, was sein Benutzer auch in der App öffnen dürfte.

Zugangscodes für QR-Leser

Bei Comydo, QRLock und Node-RED-Schlössern mit QR-Code zeigt die App einen Code, den der Leser an der Tür prüft:

  • Ein Code gilt 300 Sekunden. vynst speichert nur seinen Hash.
  • Bei QRLock erzeugt die QRLock-API den Code.
  • Bei Comydo schickt der Scanner {"device_id": "…", "content": "…"} an /api/event/smart_lock_webhook/comydo.json und bekommt {"success": true} oder einen Fehler zurück. Er meldet sich mit dem Token der Verbindung an (Bearer, Basic-Passwort oder Header Auth-Key) oder signiert die Anfrage: Hash = HMAC-SHA256 über Auth-Key, Timestamp und SHA-256 des Inhalts, höchstens 300 Sekunden alt.

Weitere Zutrittswege

  • Digitale Mitgliedskarte: Ihr QR-Code wird mit /api/cp/validate_profile_card.json geprüft.
  • Kartenleser und Drehkreuze von Gantner melden sich per Webhook bei den Anwesenheitslisten.
  • Check-in an einem Leser über Node-RED oder Home Assistant, siehe dort.

API

Die Endpunkte stehen im Bereich Smart Home und Automationen unter SmartLock, SmartLockConnection und SmartLockLog.