Ankündigung

Einklappen
Keine Ankündigung bisher.

HUE V2 API / LBS Beta-Tester

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HUE V2 API / LBS Beta-Tester

    Ich hab einen neuen LBS für die HUE-Anbindung entwickelt und dabei auch die HUE V2 API implementiert.
    D.h. das Gateway wird nicht mehr gepollt, sondern erhält bei Änderungen notifications.

    Die Vorteile liegen auf der Hand, weniger Netzwerklast und wesentlich schnellere Reaktionen.

    Die Geräte / Szenen / Räume usw. werden vollständig über die HUE-App konfiguriert.
    Über die Admin werden diese angezeigt und entsprechend verlinkt.

    Die Funktionen werden Edomi als "versteckte" Ein sowie Ausgänge übermittelt, so, dass man diese nicht mehr über separate LBS verwalten muss. Hier wird nur noch eine KO-Adresse (egal, ob KNX / Intern) benötigt.
    szene.png


    Falls jemand interesse am beta-testen hat, bitte per PN melden.

    Das sind die aktuell unterstützten Funktionen.

    functions.png
    Angehängte Dateien

    #2
    Der LBS scheint soweit stabil zu laufen, wer möchte kann gerne mit testen.

    http://service.knx-user-forum.de/?co...ad&id=19002629

    Die HUE-Kontakte sind jetzt auch in der SW, aber da ich keine habe, konnte ich den Block nicht testen.

    Kommentar


      #3
      Kannst du mal etwas genauer ausführen, wie das Ganze funktioniert? Was ist "die Admin"? Mir erschließt sich dein "Szene_Essen" KO auch nicht. Ebensowenig, was die Nummern in deinem Screenshot mit dem LivingColors Couch rechts bedeuten sollen...

      Sorry, vielleicht stehe ich auch auf dem Schlauch, aber mir scheint, hier wird etwas mehr Hintergrund benötigt, als der Ottonormal-HUE-Anwender vielleicht hat

      Kommentar


        #4
        Das Prinzip ist, dass du alles in der HUE-App definierst und die Daten aus dem HUE-Gateway einfach per Dropdown-Liste übernimmst.

        objekte.png

        Die Admin ist eine zusätzliche Oberfläche, die du über die Hilfe im LBS aufrufst. Dieses Interface holt sämtliche Lampen, Szenen usw. aus deinem Hue-Gateway und stellt dir diese per Dropdown zur Verfügung. Je nach Funktion gibt es dann unterschiedliche Ein-/Ausgänge, die du mit Edomi verlinken kannst.

        So hast du nur einen LBS für das gesamte HUE-System und nicht etliche.

        Abgesehn davon ist die Reaktionszeit jetzt <1 Sekunde. Die Rückmeldungen dauern je nachdem, wieviele Lampen und co in Gruppen, Zonen usw. sind auch 2-3 Sekunden, aber das ganze wird nicht mehr gepollt, sondern das gateway pushed die Nachricht.
        D.h. du hast hier auch nicht mehr das Problem, dass das Hue-GW permanent in X Sekunden-Intervallen abgefragt wird, sondern es werden nur Daten übertragen, wenn sich etwas ändert (oder ändern soll).

        Kurzanleitung:
        - LBS installieren, die Daten für den Baustein eintragen und Projekt aktivieren

        - Danach ist die Admin verfügbar. Hierdrüber kann man jetzt die HUE-Objekte mit den Edom/KNX-KO verknüpfen.
        - Jedesmal, wenn in der HUE-Admin Werte neu verknpüft worden sind, muss der LBS neugestartet werden.
        Hierzu im Livemodus unter Edomi den LBS mit 0 beenden, kurz warten und dann mit 1 starten. Hierdurch muss das Projekt auch nicht jedesmal neu hochgeladen werden.

        Kommentar


          #5
          Zitat von sipiyou Beitrag anzeigen
          Die Admin ist eine zusätzliche Oberfläche, die du über die Hilfe im LBS aufrufst.
          Ah, das war die Info, die gefehlt hat. Jetzt ergibt alles einen Sinn Okay, dann probiere ich mal ein wenig herum.

          Kommentar


            #6
            E4 scheint nicht zu funktionieren, oder ich verstehe ihn falsch. Ich setze bei ausgeschaltetem Stripe einen HSV-Wert, habe E4 auf 1 und würde erwarten, dass der Stripe dann auch einschaltet. Das passiert nicht.

            Missverstehe ich E4?

            Kommentar


              #7
              Ich stelle außerdem fest, dass sich der LBS regelmäßig verabschiedet (blinkt dann nicht mehr aktiv) und ich dann im Log folgende Meldungen finde:
              2023-09-29 07_41_35-Window.png

              Kommentar


                #8
                Ich nutze E4 selbst nicht mit der 1, aber werd das die Tage testen.

                Funktioniert der LBS bei dir überhaupt ? Dein PHP/curl ist zu alt, weshalb CURL_HTTP_VERSION_2_0 bei dir nicht definiert ist und wahrscheinlich auch nicht unterstützt wird.

                Kommentar


                  #9
                  Code:
                  [root@edomi ~]# php -v
                  PHP 7.4.33 (cli) (built: Aug  1 2023 09:00:17) ( NTS )
                  Copyright (c) The PHP Group
                  Zend Engine v3.4.0, Copyright (c) Zend Technologies
                  ​
                  Code:
                  [root@edomi ~]# curl --version
                  curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.53.1 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
                  Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
                  Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
                  ​
                  Wo müsste ich den ran? Bevor ich jetzt blind anfange, upzudaten ;-)

                  Kommentar


                    #10
                    Hm. Merkwürdig. Eigentlich kennt php 7.4.33 die Variable. Worunter lässt du Edomi laufen ?

                    Update mal deinen curl. Ich hab hier 7.61.1 laufen.

                    curl 7.61.1 (aarch64-redhat-linux-gnu) libcurl/7.61.1 OpenSSL/1.1.1k zlib/1.2.11 brotli/1.0.6 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.2.0) libssh/0.9.6/openssl/zlib nghttp2/1.33.0

                    Ansonsten kopier dir mal das ding auf deinen Server. Speicher das unter a.php ab und führ das mal in der shell mit php- v a.php aus. Was gibt der dir aus ?

                    PHP-Code:
                    <?php

                    if (!defined("CURL_HTTP_VERSION_2_0")) {
                       echo 
                    "constant not defined!";
                       
                    define("CURL_HTTP_VERSION_2_0"3);
                     }

                    $version curl_version();

                    if (
                    $version["features"] & constant("CURL_VERSION_HTTP2") !== 0) {

                      
                    $url "https://google.com/";

                      
                    $ch curl_init();

                      
                    curl_setopt($ch,CURLOPT_URL,$url);

                      
                    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

                      
                    curl_setopt($ch,CURLOPT_HEADER,1);

                      
                    curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_2_0);

                      
                    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);

                      
                    $response curl_exec($ch);

                      if (
                    $response !== false && strpos($response"HTTP/2") === 0) {

                        echo 
                    "HTTP/2 support!";

                      } elseif (
                    $response !== false) {

                        echo 
                    "No HTTP/2 support on server.";

                      } else {

                        echo 
                    curl_error($ch);

                      }

                      
                    curl_close($ch);

                     } else {

                      echo 
                    "No HTTP/2 support on client.";

                     }

                    echo 
                    "\n";

                    ?>

                    Kommentar


                      #11
                      Evtl. hilft das hier (ungetestet):
                      https://wiki.centos-webpanel.com/upd...sion-in-centos

                      bei mir musste ich noch folgendes ausführen, damit es keinen Fehler beim ./configure wirft:
                      Code:
                      yum install openldap openldap-devel
                      Die letzte 7er Version ist die 7.88.1
                      https://curl.se/download/

                      Changelog: https://curl.se/changes.html
                      Zuletzt geändert von woda; 01.10.2023, 18:09. Grund: Ergänzung

                      Kommentar


                        #12
                        Code:
                        [root@edomi tmp]# php -v a.php
                        PHP 7.4.33 (cli) (built: Aug  1 2023 09:00:17) ( NTS )
                        Copyright (c) The PHP Group
                        Zend Engine v3.4.0, Copyright (c) Zend Technologies
                        [root@edomi tmp]# php a.php
                        constant not defined!PHP Warning:  constant(): Couldn't find constant CURL_VERSION_HTTP2 in /tmp/a.php on line 10
                        No HTTP/2 support on server.
                        [root@edomi tmp]#
                        ​
                        Glaube, da war ein kleiner Typo drin, darum hab ich mal den Output einmal mit und ohne -v reinkopiert.

                        Kommentar


                          #13
                          edit: Problem selbst gelöst, weiter gehts.
                          Zuletzt geändert von ponG; 02.10.2023, 06:44.

                          Kommentar


                            #14
                            PHP und cURL sind nun up to date, die Meldung wird weiterhin ausgegeben, aber der LBS scheint jetzt stabiler zu laufen... merkwürdig ists aber schon.

                            Könntest du evtl. das Alert- oder Signaling-Property noch mit einbauen? Ich realisiere Benachrichtigungsfunktionen tlw. über blinkende Stripes. Dynamische Szenen lassen sich ja noch nicht selbst definieren, darum bin ich bei dem Thema gerade etwas lost Zumal dynamische Szenen (so glaube ich zumindest) nur durch originale HUE-Geräte unterstützt werden. Mein Innr RGBW-Stripe weigert sich da.

                            Kommentar


                              #15
                              Wie muss ich vorgehen, wenn ich mehrere Gateways habe? Gemäß Anleitung darf der Baustein nur 1x pro Projekt eingefügt werden. Ich habe bei mir jedoch 3 Gateways im Einsatz, da die Funkreichweite nicht ausreichend war.

                              Kommentar

                              Lädt...
                              X