Ekey Net Fingerprint auf der CCU betreiben

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Antworten
wodkalime
Beiträge: 5
Registriert: 29.12.2020, 23:15
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 1 Mal

Ekey Net Fingerprint auf der CCU betreiben

Beitrag von wodkalime » 29.12.2020, 23:53

Hallo, für alle die es interessiert habe ich mit einem Kollegen eine Möglichkeit erarbeitet die Ekey.Net Fingerprint Lösung direkt auf Raspberrymatic zu betreiben. Die Alternative wäre gewesen, dass ganze via FHEM oder IoBroker laufen zu lassen. Um hier nicht unnötige Komponenten einzubinden, sollte das ganze direkt auf der CCU laufen.

Umgesetzt haben wir das in Kürze wiefolgt (auch danke eines Users hier Forum, der schon einiges an Vorarbeit geleistet hat zum Thema Ekey):

1. UDP listener via SOCAT direkt auf der CCU (udp-datasink-starter.sh)
2. Umwandlung der Daten des Ekey (NETv1 Protokoll) und Übergabe der Daten an CCU Variablen (via XML oder CCU.exe)
3. Bootfest gemacht via rc.local
4. Variablen definiert in CCU
5. Ekey-Framework Programm zur Verarbeitung der Daten und dem Trigger von Geräten in der CCU (work in progress, gerne Eure Hilfe dazu, wen es interessiert).

Und hier nun die einzelnen Schritte zum Nachvollziehen:

1. Variablen in CCU anlegen:

Folgende Variablen werden benötigt:

ekey_action Ekey action flag Zeichenkette
ekey_auth_user Authorized User for permanent entrance Werteliste (Schema: 000101:Username;000102:Username2)
ekey_door_lock_entrance Lock Entrance Door if true Logikwert wahr = Lock door / falsch = do nothing
ekey_door_open_entrance Open Entrance Door if true Logikwert wahr = Open door / falsch = do nothing
ekey_door_bell_ring Open Entrance Door if true Logikwert wahr = Ring bell / falsch = do nothing
ekey_fingerid Ekey finger-id Zeichenkette
ekey_fingername Ekey translated fingername from id Zeichenkette
ekey_guest_user Users with temporary permissions Werteliste
ekey_timestamp_date date of message send Zeichenkette
ekey_timestamp_time time of message send Zeichenkette
ekey_trigger Trigger ekey framework program Logikwert wahr = fingerprint received / falsch = do nothing
ekey_userid Ekey internal userid Zeichenkette

Die möglichen Übergabewerte sind in der udp-datasink.sh beschrieben.
Für die Übergabe via XML-Api werden zu diesen Variablen, nach Erstellung noch die ise-IDs benötigt und müssen individuell im udp-datasink.sh eingefügt werden.

2. Skripte einrichten:
Es sollte ein Verzeichnis auf der CCU /usr/local/bin angelegt werden und die zwei Skripte (udp...) dort abgelegt werden. Zudem ist ein chmod + x für beide Skripte notwendig.
Als zweites sollte das rc.local Skript unter /usr/local/etc abegelegt werden und ebenfalls mit chmod +x aktiviert werden.

3. Framework einrichten:
Neues Program erstellen, Screenshot und Code anbei.


4. Eingangstür öffnen:
Der Trigger aus dem vorherigen Programm wird nun genutzt um z.b. die Eingangstür zu öffnen. (Siehe entrance_door.png)


Noch offen sind:
Framework erweitern: Auswertung der einzelnen Finger, Gästezugang mit zeitlicher Einschränkung, Benachrichtigungen, etc..

Beste Grüße
Bastian


EDIT: Framework wurde erweitert um:
- Auswertung Finger für Open / Close
- Bei unbekanntem Nutzter, Ring bell
- Löschen der Variablen habe ich bei mir entfernt (bis auf den Trigger). So können die Variablen in den anderen Scripts für Benachrichtigungen ausgewertet werden...

Falls das jemand mit dem Whatsapp-Framework koppeln will - habe ich so auch schon probiert - funktioniert einwandfrei..
Dateianhänge
ekey_framework_code.txt
(2.83 KiB) 88-mal heruntergeladen
entrance_door.png
ekey_framework.png
rc.local.txt
(374 Bytes) 103-mal heruntergeladen
udp-datasink-starter.sh.txt
(127 Bytes) 90-mal heruntergeladen
udp-datasink.sh.txt
(5.71 KiB) 92-mal heruntergeladen

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“