[Modul] Nuki Web - Elektronisches Türschloss und Opener mittels Web API

Hi Uli,
kam erst heute dazu das auszuprobieren. Das ist echt ein super Workaround. Dankesehr.
Eventuell kann man das ja noch fix ins Modul einbauen. Ich möchte Dir nochmal den Benefit, bzw den Nutzen erklären: Ich möchte, dass wenn das Keypad einen Fingerabdruck erkennt, dass dann ein Relais, also allgemeiner gesagt eine weitere Aktion gestartet wird.

Um Deine oberen Fragen zu beantworten:

Bei einem Doorbird soll ein Relais geschaltet werden, sodass die Haustüre öffnet (Türsummer)

Für den Fingerprint nutze ich das Nuki Keypad 2.0 mit Fingerprint.

Ich hoffe ich konnte Dir die Antworten liefern. Ich versuch mal ob ich hin bekomme was ich will, ansonsten melde ich mich wieder. Aber bisher sieht es klasse aus.

LG Dennis.

Hallo Uli,

ich habe gerade ein Nuki Pro Version 4 eingerichtet und wollte natürlich auch dein schönes Modul in dem Zusammenhang nutzen. Es funktioniert auch insofern, dass ich die Geräte im Splitter im Entwicklerbereich anzeigen lassen kann. Also WLAN und Nuki Web API Aktivierung alles wie von dir beschrieben!

Nur es wird kein Gerät im Konfigurator nach dem Betätigen von ‚Aktualisieren‘ angezeigt.
Kann das evtl. daran liegen, dass als „type“ im Array „4“ zurückgegeben wird?
Und wenn ja, könntest du das evtl. im Modul fixen?

Beste Grüße
Ralf

Guten Morgen Ralf,

du kannst natürlich das Start Lock auf manuell anlegen und die Werte in die Konfiguration eintragen.

Laut NUKI Web-API gibt es folgende Werte:
The type: 0 … keyturner, 1 … box, 2 … opener, 3 … smartdoor, 4 … smartlock3

Da steht jetzt nichts von SmartLock 4.

Welcher „type“ steht denn für dein SmartLock in der Ausgabe von Entwicklerbereich->Geräte anzeigen?

Ansonsten welches System:
Windows, SymBox, Linux, Docker?

Welche Modul-Version? Mal die letzte Beta ausprobiert?

Uli

Hallo Uli,

sorry, ja es kann so einfach sein. Bin jetzt einfach mal auf die Beta:

grafik

gewechselt und der Geräteeintrag ist sofort und automatisch im Konfigurator erschienen.

Auch das Anlegen der Instanz hat dann auf Anhieb geklappt und die Funktionen aus dem Webfront heraus funktionieren auch einwandfrei!

Ich danke dir!

Ein schönes Wochenende noch…

Beste Grüße
Ralf

Hallo Uli,
da man die „Auslöser“ der Nuki-Aktionen nur über das Protokoll nachvollziehen kann, habe ich mal dein Skript ausprobiert. Das hat schon mal etwas geholfen. Danke.

Da ich aber gern die Daten der kompletten Aktion auswerten möchte, habe ich im Internet mal ein bischen gesucht, wie man eine HTML Tabelle zeilenweise zerlegt bekommt:
Ergebnis ist folgendes Skript, das die Tabelle in die einzelnen Aktionen aufteilt.

<?php

// Objekt ID von der (string) Variable "Protokoll"
$id = 12345;

// String in array umwandeln
$protocol = GetValueString($id);

$DOM = new DOMDocument;
$DOM->loadHTML('<?xml encoding="UTF-8">'.$protocol);
$items = $DOM->getElementsByTagName('tr');
$data = array();
foreach ($items as $node) {
    $elements = $node->childNodes;
    $str = array();
    foreach ($elements as $element) {
        $str[] = $element->nodeValue;
    }
    $data[] = $str;
}
print_r($data);

Damit bekomme ich pro Aktion einen „Datensatz“ entsprechend der Zeile in der Tabelle.
Auffällig ist dabei deine Kopfzeile, die dann 8 Elemente enthält - warscheinlich wegen der vorhandenen Leerzeichen:

<tr> <td><b> Datum</b></td> <td><b>Aktion</b></td> <td><b>Name</b></td> <td><b> Auslöser</b></td> </tr>

    [0] => Array
        (
            [0] =>  
            [1] =>  Datum
            [2] =>  
            [3] => Aktion
            [4] =>  
            [5] => Name
            [6] =>  
            [7] =>  Auslöser
            [8] =>  
        )

    [1] => Array
        (
            [0] => 28.09.2024 16:58:10
            [1] => Entriegeln
            [2] => Rainer
            [3] => Keypad
        )

In der Tabelle selbst fällt das nicht auf (HTML kommt damit wohl zurecht). Ist jetzt nicht weiter dramatisch, da die Elemente im Array ja eine feste Zuordnung haben.

In Datensatz [1] steht dann immer die letzte Aktion als Array zur weiteren Verarbeitung.

Gruß
Rainer