Dokumentation Nuki Bridge API (Bluetooth Türschloss)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • MichaelL
    Smart Home'r
    • 08.09.2015
    • 81

    #106
    Hat sich eigentlich nochmal jemand mit dem Thema "Callback" beschäftigt? Ich habe aktuell einen relativ hohen Abfragezyklus eingestellt (10 Min glaube ich) weil ich das Gefühl hatte, dass geringere Zyklen neben der Akkulaufzeit auch die allgemeine Stabilität beeinträchtigen. (Teilweise gingen Schließbefehle nicht durch).

    Ich habe jetzt einen Code Touch an der Haustür und würde gerne, je nachdem ob abgesperrt ist oder nicht, entweder den Summer oder Nuki auslösen (wenn abgesperrt, dann Nuki, wenn nicht abgesperrt, dann Summer). Dafür benötige ich bei ein paar edge-cases einen relativ aktuellen Status (gerade abgesperrt, etwas vergessen, also wieder rein...)

    Ich habe es mit der Callback Implementierung aus den Kommentaren am Wiki Eintrag versucht. Die funktioniert auch, "leider" habe ich 2 Nukis und wenn ich den PHP code richtig verstehe, dann beinhaltet der keine Unterscheidung. Könnte das jemand in den Code noch integrieren? Ich schaffe das leider nicht Mir würde eine Lösung reichen wo ich einfach mit 2 unterschiedlichen PHP Dateien auf dem Webserver arbeite (nuki1.php und nuki2.php). Es müsste also lediglich im PHP code das zurückgegebene JSON auf die schloss-id gefiltert werden.

    Danke für eure Unterstützung!

    Gruß
    Michael

    Kommentar

    • MichaelL
      Smart Home'r
      • 08.09.2015
      • 81

      #107
      So, die Ungeduld hat mich dann doch gepackt und ich habe mir das PHP-Script nochmal angesehen und für mich mit einer einfachen IF-Schleife eine Unterscheidung zwischen 2 (genauergenommen eine Erkennung von einem) Schloss eingebaut. Ist in Summe nicht Elegant, funktioniert aber

      Ich fasse hier nochmal die Kommentare aus dem WIKI und meine Anpassungen zusammen:
      Hier auch nochmal der Link zum Wiki, aus dem Kommentaren habe ich die Infos genommen

      1. PHP-Scrip (von Roland p aus dem wiki), von mir für die Verwendung von 2 Schlössern erweitert

      PHP-Code:
      <html>
      <body>
      
      <?php
      echo "hello world";
      
      $data = file_get_contents('php://input');
      file_put_contents('/tmp/nuki.json', $data);
      
      $msg = json_decode($data);
      
      // Check for Nuki-1 responding SET NUKI-ID HERE
      if($msg->nukiId === 12345) {
      // NUKI 1 responding!
      
      // Sent lock state NUKI-1 SET VIn HERE
          $url = "http://user:password@loxoneip/dev/sps/io/VI9/$msg->state";
          file_put_contents('/tmp/nuki-request.log\n', $url);
          $ignore = file_get_contents($url);
      
          // Sent battery state NUKI-1
          if($msg->batteryCritical === false) {
          // Der Batteriestatus NUKI-1 is OK!
              $url = "http://user:password@loxoneip/dev/sps/io/VI8/42";
          } else {
          // Der Batteriestatus NUKI-1 is KRITISCH!!!!!
              $url = "http://user:password@loxoneip/dev/sps/io/VI8/1";
          }
      
      } else {
          // NOT Nuki-1 responding SET VIn HERE
      // Sent lock state
          $url = "http://user:password@loxoneip/dev/sps/io/VI11/$msg->state";
          file_put_contents('/tmp/nuki-request.log\n', $url);
          $ignore = file_get_contents($url);
      
          // Sent battery state
          if($msg->batteryCritical === false) {
          // Der Batteriestatus is OK!
              $url = "http://user:password@loxoneip/dev/sps/io/VI10/42";
          } else {
          // Der Batteriestatus is KRITISCH!!!!!
              $url = "http://user:password@loxoneip/dev/sps/io/VI10/1";
          }
      }
      file_put_contents('/tmp/nuki-request.log\n', $url);
      $ignore = file_get_contents($url);
      
      
      ?>
      </body>
      </html>
      In der Datei müsst ihr noch eure VIs und die natürlich die Credentials für Loxone und Nuki, sowie die entsprechenden IPs anpassen!

      2. PHP-Datei auf einem PHP-fähigem, internen Webserver ablegen.

      2a. Loxberry (Kopiert aus dem wiki von Volker):
      • Im Loxberry über ssh einloggen und zu folgendem Verzeichnis wechseln: /webfrontend/html
      • dort mit z.B. nano eine Datei erzeugen, die ua. Inhalt hat. Diese dann z.B. nuki.php nennen
      • in dem o.a. Verzeichnis ein Verzeichnis mit Name tmp anlegen
      • Kannst die Funktion testen, in dem Du im Browser folgendes eingibst:

      2b. NAS, z.B. Synology
      • Ich nutze den Webserver meiner Synology.
      • Das "web-station" Paket im Paketmanager installieren
      • PHP 5.6 Paket installieren
      • Sicherstellen, dass in den Einstellungen der web-station auch das PHP Paket verwendet wird
      • Lokal den PHP-Code in eine Textdatei kopieren und diese "nuki.php" nennen
      • Datei über das Webinterface hochladen
      • Kannst die Funktion testen, in dem Du im Browser folgendes eingibst:

      3. Callback in Nuki anlegen:

      Im Browser folgendes eingeben:4. Virtuelle Eingänge in Loxone anlegen

      In Loxone jetzt "nur" noch virtuelle Eingänge für die Schlösser und den Lock-State und den Batteriestatus anlegen. Wichtig ist dass man den Haken für "als Digitalausgang verwenden" rausnimmt.
      Dann hat man hinterher den Batteriestatus (42 = alles i.O., 1 = kritischI) und den Lockstate von Nuki (für mich sind nur 1 = Abgeschlossen und 3 = Entriegelt relevant.) Ich verarbeite die virtuellen Eingänge dann im Statusbaustein:
      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2018-03-27 um 09.44.09.png
Ansichten: 838
Größe: 10,7 KB
ID: 149907
      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2018-03-27 um 09.45.36.png
Ansichten: 757
Größe: 13,0 KB
ID: 149908

      Damit kann ich jetzt die getimte Abfrage von Nuki entfernen.
      Das Callback von Nuki dauert allerdings auch so ca. 15 - 25 Sekunden!

      Ich hoffe es hat einigen geholfen dass ich das nochmal zusammen getragen habe. Ich finde die Nutzung des NUKI-Callbacks um einiges sauberer als die getimte Abfrage über Loxone. Wenn ich ich die Zeit finde, erstelle ich daraus auch nochmal einen WIKI Artikel.

      Gruß
      Michael





      Kommentar


      • Juras
        Juras kommentierte
        Kommentar bearbeiten
        hi, is it possible to create plugin for loxberry?
    • nussi93
      Azubi
      • 21.04.2018
      • 1

      #108
      Hallo

      Ich habe auch einen NFC Code Touch vor der Haustüre aber bei mir öffnet Nuki nur sporadisch und das auch erst nach ca 20 Sekunden. Wenn ich immer so lange warten muss bis ich hinein kann, brauche ich es nicht bzw. bin ich mit dem Schlüssel schneller. Wie lange dauert bei dir der Vorgang vom Befehl öffnen bis er von Nuki ausgeführt wird?
      Mir ist auch schon aufgefallen das die Nuki Bridge manchmal nicht erreichbar ist, das dürfte wahrscheinlich mit meinem Problem zusammenhängen. Wlan dürfte keine Rolle spielen, denn die Bridge ist ca. 1m neben der FritzBox.

      Kommentar

      • bastelbert
        LoxBus Spammer
        • 25.08.2016
        • 237

        #109
        Hi zusammen,

        ich habe nun auch ein Nuki verbaut und in Loxone gemäß dem tollen Wiki-Eintrag (danke dafür!) integriert, funktioniert soweit sehr gut.
        Nun kommen die Fragen:
        1)
        Ist es möglich, den Schließzustand nur auf "Zuruf" mit lockState abzufragen?
        Hintergrund: Ich lasse das Schloss automatisch über meine Anwesenheitssteuerung in Loxone bei Abwesenheit aller Hausbewohner schließen und würde danach gerne kurz abfragen, ob das Schloss wirklich verriegelt ist und dazu eine Push-Nachricht versenden.
        Ich mag aber deswegen nicht andauernd per virtuellem Eingang alle paar Sekunden den lockState abfragen (Stichwort Batterie), daher würde ich die Abfrage gerne dediziert triggern.

        2)
        Gast schreibt, dass man mit "list" den Status direkt an der Bridge abfragen kann, ohne das Schloss zu fordern:
        https://www.loxforum.com/forum/hardw...3541#post63541
        Wäre das nicht eine Alternative, Batterie-schonend alle paar Sekunden den Status zu erfragen?
        Ich würde es gerne testen, aber bei mir bringt die URL http://192.168.2.120:8080/list?token=blaaa keine Rückgabewerte im Browser
        --> Nachtrag: Mit Edge bekomme ich die Rückmeldung, nur in Chrome passiert nix mit list...
        Zuletzt geändert von bastelbert; 16.11.2018, 14:13.

        Kommentar

        • bastelbert
          LoxBus Spammer
          • 25.08.2016
          • 237

          #110
          Frage/Annahme Nr. 2 wurde mir im Nuki Developer Forum bestätigt:
          Hello, I would like to understand the difference between the two endpoints /list and /lockState. Does /lockState query the results directly from the smart lock whereas /list gets the results directly from the bridge? Do /list queries drain the batteries of the smart lock or is there absolutely no dedicated query from the bridge to the smart lock when executing a http-list-query? I am asking because I would like to query the status of my smart lock periodically in short intervals but I am wor...

          Demnach ist es wohl besser, mit /list anstelle von /lockState zu arbeiten, da Batterie-schonender.
          Allerdings erfolgt bei /list keine success-Rückgabe.

          Bleibt Frage 1: Kann man in Loxone einen HTTP-Request (ausschließlich) nach einem Event dediziert absetzen?
          Zuletzt geändert von bastelbert; 16.11.2018, 18:49.

          Kommentar

          • jochen
            Smart Home'r
            • 28.12.2015
            • 32

            #111
            Hi,
            habe es so umgesetzt wie von Dir und Roland p beschrieben.
            Bekomme von nuki.php auch die "Hello world" antwort.
            Callback wurde auch erfolgreich in Nuki angelegt.
            Allerdings erhalte ich an meinen Virtuellen Eingängen keine Werte.
            Haken bei "Als Digital Eingang verwenden" habe ich rausgenommen.
            Hat jemand eine Idee?
            Verwende config v9 und loxberry v1.2.5.4
            Danke für Eure HIlfe.
            Jochen

            Kommentar


            • jochen
              jochen kommentierte
              Kommentar bearbeiten
              wollte das eigentlich als Kommentar zu #107 posten. Ging aber nicht
          • NilsG
            LoxBus Spammer
            • 09.04.2019
            • 352

            #112
            Hallo zusammen ...

            Mein NUKI liefert "Motor blockiert" als Status und "Liefert keine Werte" in der Config.
            Und das von heut auf morgen ...

            Habe/Finde keine Lösung dazu?!
            Weiß jemand Rat?

            Nils

            Kommentar


            • THX
              THX kommentierte
              Kommentar bearbeiten
              Hast mal geschaut ob er tatsächlich "steckt"

            • NilsG
              NilsG kommentierte
              Kommentar bearbeiten
              Naja, per Hand läßt es sich drehen und dreht den Schlüssel, also öffnet/schließt ...

            • Christian Fenzl
              Christian Fenzl kommentierte
              Kommentar bearbeiten
              Relevant ist, was die Nuki App sagt.
              Das Plugin kriegt nur das, was das Nuki Smartlock zurückmeldet.
              Wenn das Nuki einen Fehler meldet, musst du dich an Nuki wenden.
          Lädt...