Beiträge von whitefox935

    Moin zusammen,


    ich erinnerte mich noch, dass ich hier mal den Tipp bzgl. Problemen zwischen Hyperion.NG und DIYHue hinterlassen hatte - den ich heute gerne aktualisieren möchte.


    Da ich heute in irrer Bastellaune war, habe ich mal Hyperion.NG auf 2.0.14 und den DIYHue Server auf 2022.08 gebracht. Danach stieß ich wieder auf alte Bekannte:


    Code
    2023-01-05T14:25:09.714Z [LEDDEVICE|DiyHue] (ERROR) Device disabled, device 'philipshue' signals error: 'set stream to false: Bridge response is not Valid'
    2023-01-05T14:25:09.716Z [LEDDEVICE|DiyHue] (DEBUG) (LedDevicePhilipsHue.cpp:1324:stopStream()) Stop Entertainment stream. Retrying...
    2023-01-05T14:25:10.237Z [LEDDEVICE|DiyHue] (ERROR) Device disabled, device 'philipshue' signals error: 'set stream to false: Bridge response is not Valid'
    2023-01-05T14:25:10.239Z [LEDDEVICE|DiyHue] (DEBUG) (LedDevicePhilipsHue.cpp:1324:stopStream()) Stop Entertainment stream. Retrying...
    2023-01-05T14:25:10.761Z [LEDDEVICE|DiyHue] (ERROR) Device disabled, device 'philipshue' signals error: 'set stream to false: Bridge response is not Valid'
    2023-01-05T14:25:10.763Z [LEDDEVICE|DiyHue] (ERROR) Device disabled, device 'philipshue' signals error: 'The Entertainment stream did NOT stop. Give up.'


    Dabei stellte ich fest, dass die o.g. Anpassung nicht mehr in der "HueEmulator3.py" erfolgen muss, sondern in der "restful.py" im Unterverzeichnis "flaskUI". Außerdem hat sich ein Variablenname geändert.


    Die Zeilen 317 und 318 müssen ausgetauscht werden:


    Code
            for key, value in putDict.items():
                responseList.append({"success": {response_location + key: value}})


    gegen:


    Code
            for key, value in putDict.items():
                if isinstance(value,dict):
                    second_key = list(value.keys())[0]
                    response_location += key + '/' + second_key
                    responseList.append({"success":{response_location: value[second_key]}})
                else:
                    responseList.append({"success": {response_location + key: value}})

    Moin!


    ja, DIYHue unterstützt die Enterteinment API, funktioniert aber erst nach einem Workaround mit Hyperion.NG, da der DIYHue Server ein wenig anders antwortet als die originale API. Ob das auch schon mit Hyperion war, kann ich nicht sagen, da hatte ich es nicht getestet.


    Schau mal bitte hierzu in diesen Post, in dem mir Lord-Grey ein wenig aufs Pferd geholfen hat: https://hyperion-project.org/t…t-valid.11284/#post-33376


    Aktuell habe ich eine Entertainmentgruppe mit sechs Lampen für das Ambilight (zusätzlich zum Stripe hinter dem Fernseher) und eine Gruppe für mein Sync mit Razer im Büro. Man kann allerdings auch bei DIYHue nicht zwei Gruppen gleichzeitig "bedienen".


    Heyho,


    konnte mich noch an den Post erinnern, der hat mich nämlich auf die Ikea Fado gebracht :) Meine sind am Freitag gekommen und wurden natürlich gleich umgebaut. Für die Stromversorgung habe ich Micro USB Breakout Boards genommen (nehme ich in letztere Zeit für kleinere Projekte gerne). Diese hier waren für mich qualitativ ausreichend: https://www.amazon.de/gp/produ…_asin_title?ie=UTF8&psc=1


    Sieht dann mit 10 LEDs, die ich in einer "Spirale" an einem inneren Sockel geklebt habe, so aus:


    Kurze Beschreibung und Video, wie es mit der Umgebung und so wirkt, könnt ihr auf meiner Seite sehen: https://www.leipold.zone/ambil…-diyhue-teil-5-ikea-fado/


    Soll keine Eigenwerbung sein... Dachte nur, ich teile mal meine Erfahrungen, wenn ich schon Ideen klaue ;)


    Schönen Abend!

    Ja, klar. An sich ist es das, was in dem Link auch schon drin steht (https://github.com/diyhue/diyHue/issues/422). Das Problem ist offenbar eine "falsche" Antwort vom DIYHUE Server, bzw. ein Format, mit dem die Entertainment API vom Hyperion.NG nicht klar kommt (Abweichung seitens DIYHUE vom ursprünglichen Philips Hue Protokoll).


    Erwartet wird:


    Code
    {
            "success": {
                "/groups/5/stream/active": true
            }
        }


    Zurückgegeben wird aber:


    Code
    {
            "success": {
                "/groups/5/stream": {
                    "active": true
                }
            }
        }


    Man sieht hier, dass die "Verschachtelung" der Antwort tiefer ist als die erwartete Antwort. Somit kommt es zu meinem Fehler.
    Das eigentliche Problem wurde bisher noch nicht gelöst, ein Workaround ist aber, das Serverskript vom DIYHUE Server anzupassen, so wie es im Bugreport beschrieben ist. Dazu habe ich mir das Skript /opt/hue-emulator/HueEmulator3.py editiert und in Zeilen 1855/1856 die genannten Änderungen eingetragen.


    Also vorher:


    Code
    for key, value in put_dictionary.items():
                    response_dictionary.append({"success":{response_location + key: value}})



    Und nachher:


    Code
    for key, value in put_dictionary.items():
                    if isinstance(value,dict):
                        second_key = list(value.keys())[0]
                        response_location += key + '/' + second_key
                        response_dictionary.append({"success":{response_location: value[second_key]}})
                    else:
                        response_dictionary.append({"success":{response_location + key: value}})


    Aufzupassen ist hier mit der Formatierung / Nutzung von Leerzeichen und Tabs. Es sollten zum Einrücken nur Leerzeichen benutzt werden und keine Tabs (Skript startet sonst nicht).


    Es empfiehlt sich, das originale Skript zu kopieren, damit man es notfalls wiederherstellen kann. Ladet ihr es zum Editieren runter und wieder hoch, nicht vergessen mit chmod +x HueEmulator3.py die Berechtigungen zum Ausführen wieder zu setzen.


    Je nach System (bei mir Debian, Ubuntu identisch) stoppt man zuvor den Dienst mit systemctl stop hue-emulator und zum Testen würde ich nach der Änderung das Skript mit /opt/hue-emulator/HueEmulator3.py --debug starten.


    Bekommt Ihr nach dem Start einen dieser Fehler


    Code
    root@diyhue:/opt/hue-emulator# ./HueEmulator3.py --debug
      File "./HueEmulator3.py", line 1861
        response_dictionary.append({"success":{response_location + key: value}})
                          ^
    IndentationError: expected an indented block


    kontrolliert bitte Umbrüche und Leerzeichen der Einrückungen.


    Bitte beachtet, dass die angegebenen Zeilen je nach Version des DIYHUE Servers variieren können! Beim Update des Servers wird die Datei möglicherweise überschrieben.


    Die Gegenprüfung war für mich, dass danach auch noch meine anderen Entertainment-Einbindungen funktionieren. Razer Synapse Hue Integration und Hue Essentials kommen danach weiterhin an die Entertainment Api.


    Ich hoffe, ich konnte es mit meinem Halbwissen einigermaßen passabel beschreiben :)

    Moin zusammen,


    in meinem gestrigen Post wurde mir der Tipp gegeben, mit Hyperion.NG auf meinem Pi 3 mit LibreELEC mal die HUE Entertainment API zu testen, da sie schneller ist als die einzelnen LEDs anzusteuern.


    Ich nutze einen DIYHUE Server auf Debian, der auch bereits mit Entertainment funktioniert (mit Razer Synapse und WS2812B Stripes an einem ESP8266-12F und DIYHUE Ligths). Nun teste ich mit einem ESP8266-01S und DIYHUE Ligths. Dafür habe ich eine neue Entertainment Gruppe erstellt, die Lampen eingefügt und im Hyperion.NG Alpha 9 eingebunden. Der Test beim Einbinden (LEDs nach Auswahl der Entertainment Gruppe aufleuchten lassen) funktioniert. Daher scheint das Setup generell korrekt zu sein. Wenn ich nun aber die Instanz starte, leuchten die LEDs nicht. Ich sehe im Debug Log vom Hyperion.NG folgende Einträge:




    Das Debug Log vom DIYHUE Server zeigt mir keine offensichtlichen Fehler:




    Gibt es noch eine bekannte Inkompatibilität? Ich hätte ja zuerst auf ein Zertifikatsproblem getippt, Die Verbindung kann ja aber offensichtlich aufgebaut werden.

    Eine gute Idee, darüber habe ich mir auch schon Gedanken gemacht - nachdem ich die LEDs aufgeklebt habe ;) Die gesamte Technik (Pi, Grabber, HDMI-Splitter usw.) habe ich mir aber bereits auf eine dünne MDF-Platte geschraubt, die ich vorher mit schwarzer Folie beklebt habe. Die Platte hängt an der VESA-Halterung - mein Fernseher hängt nicht an der Wand, daher sind die Gewinde frei. Die Zuleitungen gehen durch einen kleinen "Kabelverteiler", in dem alles derzeit mit Lüsterklemmen aufgeklemmt ist (werden zukünftig noch Steckverbindungen werden). Damit ist dann die gesamte Technik schnell abgeklemmt und abgeschraubt.


    Moin Leute,


    ich habe mir einen Rapberry Pi 3 geschnappt, LibreELEC und Hyperion.NG installiert und rund 200 LEDs um den Fernseher gebaut. Bin mega zufrieden, ein geiles Setup und eine super Software! Erstmal danke dafür :D Zuerst habe ich mit dem alten Hyperion gebastelt (auch schon richtig geil, das DIYHUE lief aber nicht richtig), weil mir mit Hyperion.NG ständig der Hyperiond abgestürzt ist. Heute habe ich dann die aktuelle Alpha 9 installiert und bin tierisch zufrieden! Ich habe bisher nicht viel von Hyperion / Hyperion.NG und DIYHUE gelesen, mehr von Philips HUE. Ich selber nutze einen DIYHUE Server auf Debian, installiert auf einem kleinen Shuttle PC modernerer Bauart (kleiner 2-Kernern, 4GB RAM, SSD).


    Zusätzlich habe ich also den DIYHUE Server laufen (aktuellste Version Stand heute) und dazu ein paar "Lampen", die ich aus WS2812B und ESP8266-12F / 01S gebaut habe. Ich synce auch bereits ein Wandbild mit ca. 120 LEDs, aufgeteilt in 12 Lampen, mit Razer Synapse, was schnell und stabil läuft. Das läuft über die Entertainment-API des DIYHUE Servers.


    Mit Hyperion HATTE ich das Problem, dass schon mit einer Lampe (also Stripe mit 10 LEDs, als eine Lampe konfiguriert) eine Verzögerung von min. 5 Sekunden aufgetreten ist und so das Ambilight extrem "nachzog". Mit dem aktuellen Hyperion.NG Build hat sich die Reaktion mit 5 Lampen auf unter 3 Sekunden eingependelt - mit einem Stripe mit 10 LEDs, unterteilt in 5 Lampen mit je 2 LEDs. Eure HUE Engine ist erstaunlich schnell geworden! Meine Hochachtung dafür :)


    Wovon hängt eigentlich die Reaktion der Lampen noch ab, bzw. kann ich die Reaktionszeit noch verbessern? Wie sind da im Vergleich die Erfahrungen mit Philips HUE? Reagiert das schneller oder ist das nun die Trägheit des Protokolls in Verbindung mit den ganzen Hops (und ggf. Rückmeldung von der Lampe)? Immerhin haben wir den Pi (Ethernet), den Shuttle (Ethernet) und den lahmen ESP8266-01S über WLAN (in meinem aktuellen Testaufbau verwendet).


    Ab und zu habe ich auf dem DIYHUE Light noch "Farbflackern". Vor allem, wenn das Bild konstant weiß ist (Testbild, wird im Betrieb kaum auftreten).


    Mein Equipment sieht so aus:


    Raspberry Pi 3 mit LibreELEC 9.2.6
    Hyperion.NG Alpha 9
    WS2812B LED Stripe(s) mit rund 200 LEDs
    LogiLink USB Audio und Video Grabber (+ Splitter, Konverter usw.)


    DIYHUE Server auf Debian 10
    Shuttle mit Intel Celeron 3205U, 4GB RAM, SSD


    ESP8266-01S
    DIYHUE Ligths
    WS281B LED Stripe, 10 LEDs, 5 Lampen


    Also, tolle Arbeit, noch mal danke :) Perfekt wäre es dann natürlich, wenn die Lampen unter 1 Sekunde Latenz hätten.


    Euch allen einen schönen Sonntag!