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.
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?
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:
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.