Giter Club home page Giter Club logo

loxberry-plugin-nuki's People

Contributors

christiantf avatar mschlenstedt avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

ckossendey

loxberry-plugin-nuki's Issues

Detail- und In/Out-Popup mit fester Größe

Wenn ich den Input/Output Popup öffne, wird er zunächst schmal geöffnet und nach laden dann verbreitert. Dabei springt der Bildschirm "unschön" hin und her.

Das Gleiche beim Bridge-Details-Popup, wobei es hier nur minimal ist.

-> On the Fly Inhalt im Popup auf max-width beschränken.
-> Eventuell Schrift im Popup auch etwas kleiner (wirkt auf meinem Laptop sehr groß)

Checkonline (ohne Token) ist überflüssig

Das checkonline (führt /info ohne Token aus) ist überflüssig, weil checktoken (/info mit Token) das gleiche macht.

Es reicht ein checktoken. Das Ergebnis ist dann entweder

  • nicht erreichbar (Online rot, Token schwarz)
  • http 401 (Online grün, Token rot)
  • Response (Online grün, Token grün)

Es behebt den von uns erwarteten Error im Log.
Das geht dann auch schneller.

Fehlerhandling bei "Callbacks voll"

Irgendein Fehlerhandling muss noch kommen, wenn die Callback-Pflege seinen Callback anlegen will, aber die Liste der drei Callbacks bereits voll ist.
Derzeit gibt die Funktion auf und nichts weiter.

  • Fehler korrekt handlen (entsprechenden Errorcode im callback_add verarbeiten)
  • Notify

SecurePIN-Ajax Request gegen eigenes cgi durchführen

Die Ladezeit des SecurePIN-Checks ist zu hoch, weil schon so viel Code und Libs geladen sind.

-> eigenes .cgi nur mit LB:System und dem SecurePIN-Teil, ohne andere Libs. Response mit hardcodetem json statt JSON-Libs.

Mir kommt generell die Ladezeit der Forms langsam vor.

Es muss noch geprüft werden, ob alle AJAX-Calls mit SecurePIN geschützt sind.

Dateiname im Template-Download HTML-Encoden

Scheint bei Umlauten ("Haustür") sonst nicht mit allen Browsern zu funktionieren.
https://www.loxforum.com/forum/projektforen/loxberry/plugins/210944-nuki-smartlock-plugin?p=219778#post219778

Dateinamen:

$payload{viFilename} = "VI_NUKI_$currdev->{name}.xml";

$payload{voFilename} = "VO_NUKI_$currdev->{name}.xml";

Erneute Suche legt neue Bridge an

image

Beim Discovery muss auch die discoveryBridgeId geprüft werden, und wenn vorhanden, die Daten der bestehenden Bridge aktualisiert.

BridgeID nicht in Klammern

Die BridgeID soll nicht in Klammern angezeigt werden.

Zudem: Welche BridgeID nehmen wir jetzt im WebIf? Hardware? Discovery? Eigene?

image

BridgeID auslesen beim manuellen Hinzufügen

Wenn man eine Bridge manuell hinzufügt, muss die BridgeID anschließend ausgelesen werden, sonst kann bei einer falschen BridgeID die Callback-Funktion fehlschlagen.

Aktuell wird die eingegebene BridgeID nicht überprüft. Zudem ist die in der app angezeigte BridgeID unterschiedlich zur BridgeID, die per JSON zurückkommt!

Fehlende Icons

Ich habe Dummy-Icons im Code, die noch befüllt/korrigiert werden müssen:

  • nuki-unknown.svg --> DEVICETYPE unknown
  • devices_vo_download_32.png --> Action-Symbol bei Devices für "Virtual Inputs / Virtual Outputs"

Cronjob Erweiterung um Poll

Der stündliche Cronjob soll nicht nur die Callbacks prüfen, sondern auch einen Statusabruf bei den Bridges durchführen, und senden.

Ajax Requests vom WebIf müssen SecPin prüfen

Index.cgi:
Es muss erkannt werden, ob der Aufruf von CLI oder Apache kommt.
Jeder Apache Call muss vorher den SecPin prüfen.

Settings.html:
Jeder Ajax-Call muss implizit den SecPin mitsenden.

Security Issue ist, dass Ajax-Calls teilweise ohne SecPin funktionieren.

MQTT Overview link

Das hat in der Arbeit anders ausgesehen als daheim. Der Link soll unter die Checkbox

image

Hostnamen im Callback

Das er beim Callback den Hostnamen nimmt zerschiesst zumindest bei mir die Konfiguration.

Ich hab den Hostnamen im LoxBerry WebIf nicht geändert (ist folglich per Default "loxberry"). In der Fritte habe ich aber dem LoxBerry den Namen "loxberrydevil" zugewiesen.

Der Callback zeigt jetzt auf http://loxberry:80/plugins/nukismartlock/callback.php?lbuid=ouXDU und geht damit ins Leere...

Keine Ahnung, aber ich mach das mit der Fritte immer so... Vielleicht ist das ein genereller Bug im LoxBerry. Er müsste seinen Hostnamen eigentlich per DNS abfragen und dann selbst korrekt setzen. Oder per DHCP (kriegt er den mitgeliefert?) setzen. So ist es auf jeden Fall bei mir zerschossen.

Bridge-Log auslesen und Daten per MQTT pushen

  • Funktion zum Auslesen des Bridge Logs, am besten per HTTP-Trigger (Zeitplan am MS)
  • Die Daten oder irgendein Timestamp muss am LB gespeichert werden, um neue Logeinträge erkennen zu können
  • Die Anzahl neuer Log-Einträge seit dem letzten Call soll jedenfalls gepublished werden
  • Evt. auch den letzten Log-Eintrag (oder eine definierte Anzahl an Log-Einträgen) mit Zeit und Text
  • Evt. ein Summary der neuen Log-Einträge

Endpoint: /log

Example-Response | [  {"timestamp": "2018-10-06T16:46:05+00:00", "deviceType": “...” },  {"timestamp": "2018-10-06T16:46:05+00:00", "deviceType": “...” }, …]

https://developer.nuki.io/page/nuki-bridge-http-api-1-12/4#heading--log

Popup: Close-Button rechts

Mit irgendeinem jQm-Tag kann man den Popups einen Close-Button verpassen.
Damit erschließt es sich leichter, wie man das Popup wieder schließt.

Daemon

Zur Überwachung von Callbacks

Callback Skript anpassen

PHP Skript anpassen für mehrere Bridges/Devices und zum Lesen der Config aus den Configfiles.

Bridge Details Popup

Ich habe hier

<!-- Popup: Bridge Details -->

bzw. hier
function bridgeDetails ( bridgeId ) {
einen Stub für eine Detailseite zur Bridge angelegt.

Geöffnet werden kann das Popup derzeit durch Klick auf die Bridge-ID, es steht aber noch nichts drin.

Hier können Details wie Firmware-Version usw. angezeigt werden, wichtig wäre mir jedoch die Liste der Callbacks und eine Lösch-Funktion (Button) der Callbacks.
Funktionen zum Listen und Löschen gibt es schon im index.cgi (aber noch ohne ajax=... Aufruf-Funktion), und der Response der Funktionen ist noch undefiniert.

Use-Case bei der Callback-Liste ist, dass man alte, falsche oder fremde Callbacks löschen kann. Ein Hinzufügen oder Editieren der Callbacks ist explizit nicht gewünscht.

Callbacks und Devices bereinigen nach Löschen von Bridges

Wenn eine Bridge aus dem WebIf gelöscht wird, soll auch der Callback gelöscht werden.

Zudem sollen auch alle zugehörigen Devices zur Bridge aus der Config entfernt werden (sollte gehen, indem "searchdevices" einfach erneut aufgerifen wird).

Im WebIf kein "undefined"

Wenn ein Wert nicht definiert ist, soll das Feld im WebIf leer sein und nicht "undefined" angezeigt werden.

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.