NEWS
Hyperion Adapter
-
@Matten Matten:Welche Version hast du installiert?
Was hast du als Priorität eingestellt? `
Also die Hyperion Adapter Version ist 0.0.12 und als Priorität hab ich die 100 belassen.OSMC ist 17.3, HyperCon V1.03.3 (22.10.17) und hab Hyperion damit geupdated.
-
Teste doch mal wenn du die Priorität höher setzt also eine niedrigere Zahl einträgst, zb. Auf 50. Und ob du dann ein Effekt starten kannst.
-
Leider keine Veränderung. Habe auch mal den internen und externen Grabber ausgeschaltet, bringt aber auch nichts.
Die HyperionApp, welche wohl über die selbe Schnittstelle läuft, funktioniert wunderbar.
Habe den Adapter auf Log-Stufe "Debug" gesetzt, es wird jedoch nur beim Befehl "clear-all" ein Fehler ausgegeben:
! undefined2018-02-22 13:44:40.242 - info: host.raspberrypi object change system.adapter.hyperion.0
! 2018-02-22 13:44:40.264 - info: host.raspberrypi instance system.adapter.hyperion.0 started with pid 13517
! 2018-02-22 13:44:41.681 - debug: hyperion.0 objectDB connected
! 2018-02-22 13:44:41.758 - debug: hyperion.0 statesDB connected
! 2018-02-22 13:44:41.804 - info: hyperion.0 starting. Version 0.0.12 in /opt/iobroker/node_modules/iobroker.hyperion, node: v6.13.0
! 2018-02-22 13:44:41.850 - info: hyperion.0 Hooray! We are connected to hyperiond!
! 2018-02-22 13:44:52.759 - info: hyperion.0 Set effect: Knight rider
! 2018-02-22 13:45:01.695 - info: hyperion.0 Set effect: Rainbow swirl fast
! 2018-02-22 13:45:08.500 - debug: hyperion.0 Control clear_all was activated!
! 2018-02-22 13:45:08.512 - warn: hyperion.0 Clearing all prios failed! The error code is: {"info":{"activeEffects":[],"activeLedColor":[],"adjustment":[{"blueAdjust":[0,0,240],"greenAdjust":[0,240,0],"id":"default","redAdjust":[220,50,0]}],"correction":[{"correctionValues":[255,255,255],"id":"default"}],"effects":[{"args":{"color-end":[238,173,47],"color-start":[136,97,7],"fade-time":5},"name":"Cinema brighten lights","script":"/usr/share/hyperion/effects/fade.py"},{"args":{"color-end":[136,97,7],"color-start":[238,173,47],"fade-time":5},"name":"Cinema dim lights","script":"/usr/share/hyperion/effects/fade.py"},{"args":{"color":[255,0,0],"fadeFactor":0.7,"speed":1},"name":"Knight rider","script":"/usr/share/hyperion/effects/knight-rider.py"},{"args":{"blobs":5,"color":[0,0,255],"hueChange":60,"reverse":false,"rotationTime":60},"name":"Blue mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"baseChange":true,"baseColorChangeRate":2,"baseColorRangeLeft":160,"baseColorRangeRight":320,"blobs":5,"color":[0,0,255],"hueChange":30,"reverse":false,"rotationTime":60},"name":"Cold mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"baseChange":true,"baseColorChangeRate":0.2,"baseColorRangeLeft":0,"baseColorRangeRight":360,"blobs":5,"colorRandom":true,"hueChange":30,"reverse":false,"rotationTime":60},"name":"Full color mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"blobs":5,"color":[0,255,0],"hueChange":60,"reverse":false,"rotationTime":60},"name":"Green mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"blobs":5,"color":[255,0,0],"hueChange":60,"reverse":false,"rotationTime":60},"name":"Red mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"baseChange":true,"baseColorChangeRate":2,"baseColorRangeLeft":333,"baseColorRangeRight":151,"blobs":5,"color":[255,0,0],"hueChange":30,"reverse":false,"rotationTime":60},"name":"Warm mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"color_one":[255,0,0],"color_two":[0,0,255],"colors_count":10,"reverse":false,"rotation-time":1.5},"name":"Police Lights Single","script":"/usr/share/hyperion/effects/police.py"},{"args":{"color_one":[255,0,0],"color_two":[0,0,255],"reverse":false,"rotation-time":1},"name":"Police Lights Solid","script":"/usr/share/hyperion/effects/police.py"},{"args":{"brightness":1,"reverse":false,"rotation-time":60},"name":"Rainbow mood","script":"/usr/share/hyperion/effects/rainbow-mood.py"},{"args":{"brightness":1,"reverse":false,"rotation-time":3},"name":"Rainbow swirl fast","script":"/usr/share/hyperion/effects/rainbow-swirl.py"},{"args":{"brightness":1,"reverse":false,"rotation-time":20},"name":"Rainbow swirl","script":"/usr/share/hyperion/effects/rainbow-swirl.py"},{"args":{"saturation":1,"speed":1},"name":"Random","script":"/usr/share/hyperion/effects/random.py"},{"args":{"colorLevel":230,"speed":1.5,"whiteLevel":100},"name":"Running dots","script":"/usr/share/hyperion/effects/running_dots.py"},{"args":{"alarm-color":[255,0,0],"post-color":[255,174,11],"shutdown-enabled":false,"speed":1.2},"name":"System Shutdown","script":"/usr/share/hyperion/effects/shutdown.py"},{"args":{"color":[255,0,0],"percentage":10,"rotation-time":12},"name":"Snake","script":"/usr/share/hyperion/effects/snake.py"},{"args":{"brightness":1,"color":[255,255,255],"random-color":true,"reverse":false,"rotation-time":3,"saturation":1,"sleep-time":0.05},"name":"Sparks Color","script":"/usr/share/hyperion/effects/sparks.py"},{"args":{"brightness":1,"color":[255,255,255],"random-color":false,"reverse":false,"rotation-time":3,"saturation":1,"sleep-time":0.05},"name":"Sparks","script":"/usr/share/hyperion/effects/sparks.py"},{"args":{"color":[0,0,255],"frequency":10},"name":"Strobe blue","script":"/usr/share/hyperion/effects/strobe.py"},{"args":{"color":[188,17,66],"frequency":10},"name":"Strobe Raspbmc","script":"/usr/share/hyperion/effects/strobe.py"},{"args":{"color":[255,255,255],"frequency":10},"name":"Strobe white","script":"/usr/share/hyperion/effects/strobe.py"},{"args":{"speed":1},"name":"Color traces","script":"/usr/share/hyperion/effects/traces.py"},{"args":{"ListenIP":"239.255.28.01","ListenPort":2801},"name":"UDP multicast listener","script":"/usr/share/hyperion/effects/udp.py"},{"args":{"ListenPort":2391},"name":"UDP listener","script":"/usr/share/hyperion/effects/udp.py"},{"args":{"sleepTime":0.75},"name":"X-Mas","script":"/usr/share/hyperion/effects/x-mas.py"}],"hostname":"DrFellman","hyperion_build":[{"time":"Jun 3 2017 02:06:32","version":"V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388"}],"priorities":[],"temperature":[{"correctionValues":[255,255,255],"id":"default"}],"transform":[{"blacklevel":[0,0,0],"gamma":[2.5,2.5,2.5],"id":"default","luminanceGain":0.8,"luminanceMinimum":0,"saturationGain":1,"saturationLGain":0.8,"threshold":[0,0,0],"valueGain":1,"whitelevel":[1,1,1]}]},"success":true} -
Leider keine Veränderung. Habe auch mal den internen und externen Grabber ausgeschaltet, bringt aber auch nichts.
Die HyperionApp, welche wohl über die selbe Schnittstelle läuft, funktioniert wunderbar.
Habe den Adapter auf Log-Stufe "Debug" gesetzt, es wird jedoch nur beim Befehl "clear-all" ein Fehler ausgegeben:
! undefined2018-02-22 13:44:40.242 - info: host.raspberrypi object change system.adapter.hyperion.0
! 2018-02-22 13:44:40.264 - info: host.raspberrypi instance system.adapter.hyperion.0 started with pid 13517
! 2018-02-22 13:44:41.681 - debug: hyperion.0 objectDB connected
! 2018-02-22 13:44:41.758 - debug: hyperion.0 statesDB connected
! 2018-02-22 13:44:41.804 - info: hyperion.0 starting. Version 0.0.12 in /opt/iobroker/node_modules/iobroker.hyperion, node: v6.13.0
! 2018-02-22 13:44:41.850 - info: hyperion.0 Hooray! We are connected to hyperiond!
! 2018-02-22 13:44:52.759 - info: hyperion.0 Set effect: Knight rider
! 2018-02-22 13:45:01.695 - info: hyperion.0 Set effect: Rainbow swirl fast
! 2018-02-22 13:45:08.500 - debug: hyperion.0 Control clear_all was activated!
! 2018-02-22 13:45:08.512 - warn: hyperion.0 Clearing all prios failed! The error code is: {"info":{"activeEffects":[],"activeLedColor":[],"adjustment":[{"blueAdjust":[0,0,240],"greenAdjust":[0,240,0],"id":"default","redAdjust":[220,50,0]}],"correction":[{"correctionValues":[255,255,255],"id":"default"}],"effects":[{"args":{"color-end":[238,173,47],"color-start":[136,97,7],"fade-time":5},"name":"Cinema brighten lights","script":"/usr/share/hyperion/effects/fade.py"},{"args":{"color-end":[136,97,7],"color-start":[238,173,47],"fade-time":5},"name":"Cinema dim lights","script":"/usr/share/hyperion/effects/fade.py"},{"args":{"color":[255,0,0],"fadeFactor":0.7,"speed":1},"name":"Knight rider","script":"/usr/share/hyperion/effects/knight-rider.py"},{"args":{"blobs":5,"color":[0,0,255],"hueChange":60,"reverse":false,"rotationTime":60},"name":"Blue mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"baseChange":true,"baseColorChangeRate":2,"baseColorRangeLeft":160,"baseColorRangeRight":320,"blobs":5,"color":[0,0,255],"hueChange":30,"reverse":false,"rotationTime":60},"name":"Cold mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"baseChange":true,"baseColorChangeRate":0.2,"baseColorRangeLeft":0,"baseColorRangeRight":360,"blobs":5,"colorRandom":true,"hueChange":30,"reverse":false,"rotationTime":60},"name":"Full color mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"blobs":5,"color":[0,255,0],"hueChange":60,"reverse":false,"rotationTime":60},"name":"Green mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"blobs":5,"color":[255,0,0],"hueChange":60,"reverse":false,"rotationTime":60},"name":"Red mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"baseChange":true,"baseColorChangeRate":2,"baseColorRangeLeft":333,"baseColorRangeRight":151,"blobs":5,"color":[255,0,0],"hueChange":30,"reverse":false,"rotationTime":60},"name":"Warm mood blobs","script":"/usr/share/hyperion/effects/mood-blobs.py"},{"args":{"color_one":[255,0,0],"color_two":[0,0,255],"colors_count":10,"reverse":false,"rotation-time":1.5},"name":"Police Lights Single","script":"/usr/share/hyperion/effects/police.py"},{"args":{"color_one":[255,0,0],"color_two":[0,0,255],"reverse":false,"rotation-time":1},"name":"Police Lights Solid","script":"/usr/share/hyperion/effects/police.py"},{"args":{"brightness":1,"reverse":false,"rotation-time":60},"name":"Rainbow mood","script":"/usr/share/hyperion/effects/rainbow-mood.py"},{"args":{"brightness":1,"reverse":false,"rotation-time":3},"name":"Rainbow swirl fast","script":"/usr/share/hyperion/effects/rainbow-swirl.py"},{"args":{"brightness":1,"reverse":false,"rotation-time":20},"name":"Rainbow swirl","script":"/usr/share/hyperion/effects/rainbow-swirl.py"},{"args":{"saturation":1,"speed":1},"name":"Random","script":"/usr/share/hyperion/effects/random.py"},{"args":{"colorLevel":230,"speed":1.5,"whiteLevel":100},"name":"Running dots","script":"/usr/share/hyperion/effects/running_dots.py"},{"args":{"alarm-color":[255,0,0],"post-color":[255,174,11],"shutdown-enabled":false,"speed":1.2},"name":"System Shutdown","script":"/usr/share/hyperion/effects/shutdown.py"},{"args":{"color":[255,0,0],"percentage":10,"rotation-time":12},"name":"Snake","script":"/usr/share/hyperion/effects/snake.py"},{"args":{"brightness":1,"color":[255,255,255],"random-color":true,"reverse":false,"rotation-time":3,"saturation":1,"sleep-time":0.05},"name":"Sparks Color","script":"/usr/share/hyperion/effects/sparks.py"},{"args":{"brightness":1,"color":[255,255,255],"random-color":false,"reverse":false,"rotation-time":3,"saturation":1,"sleep-time":0.05},"name":"Sparks","script":"/usr/share/hyperion/effects/sparks.py"},{"args":{"color":[0,0,255],"frequency":10},"name":"Strobe blue","script":"/usr/share/hyperion/effects/strobe.py"},{"args":{"color":[188,17,66],"frequency":10},"name":"Strobe Raspbmc","script":"/usr/share/hyperion/effects/strobe.py"},{"args":{"color":[255,255,255],"frequency":10},"name":"Strobe white","script":"/usr/share/hyperion/effects/strobe.py"},{"args":{"speed":1},"name":"Color traces","script":"/usr/share/hyperion/effects/traces.py"},{"args":{"ListenIP":"239.255.28.01","ListenPort":2801},"name":"UDP multicast listener","script":"/usr/share/hyperion/effects/udp.py"},{"args":{"ListenPort":2391},"name":"UDP listener","script":"/usr/share/hyperion/effects/udp.py"},{"args":{"sleepTime":0.75},"name":"X-Mas","script":"/usr/share/hyperion/effects/x-mas.py"}],"hostname":"DrFellman","hyperion_build":[{"time":"Jun 3 2017 02:06:32","version":"V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388"}],"priorities":[],"temperature":[{"correctionValues":[255,255,255],"id":"default"}],"transform":[{"blacklevel":[0,0,0],"gamma":[2.5,2.5,2.5],"id":"default","luminanceGain":0.8,"luminanceMinimum":0,"saturationGain":1,"saturationLGain":0.8,"threshold":[0,0,0],"valueGain":1,"whitelevel":[1,1,1]}]},"success":true} `also: downgrade die Version auf 0.0.9 dann funktioniert es erstmal. da muss der Entwickler ran.
-
da ist irgendwie der Wurm drin, hab den Adapter auf ein frisches System installiert und erhalte dann die selben Probleme wie bei dir. Ich mache mal ein Issuses bei github auf.
wenn du willst das es gleich funst, entpacke folgende rar. und schmeiß die Ordner in````
\iobroker\node_modulesund ersetze sie. dann ein iobroker restart. Gruß Matten [3476_neuer_ordner.rar](/assets/uploads/files/3476_neuer_ordner.rar)
-
Wunderbar, es funktioniert.
Ich hatte erst Probleme mit dem Downgrade, mithilfe der Dateien hat es jetzt aber wunderbar geklappt.
Vielen Dank!
Dann kann das basteln weiter gehen.
Gruß
Michael
-
Ok. Bin drann. Was mir an dem log auffällt, welches hyperion beim clear all wirft ist: "priorities":[]
Keine Ahnung ob das damit zusammenhängt. Das Problem ist aktuell, dass ich nicht weiß wie ich das Problem reproduzieren kann. Reicht es den Adapter rauszuschmeißen und neu zu installieren, oder muss ich an ner frische iobroker Instanz testen. Ich bin mir ziemlich sicher, dass es was mit der Prio zu tun hat, da dies das einzige ist, welches in 0.0.12 neu ist. Und das drüber kopieren der Files aus dem Rar hilft? Da ist aber auch die 0.0.12 drin… Bin verwirrt...
-
Ok. Kleines Update. Hab mir mal n frisches ioBroker aufgesetzt. Es läuft nur clearall. Sonst wird alles ignoriert. Das ist ein klares Zeichen, dass was mit der Prio nicht stimmt. Der Fehler, der bei einem der Vorposter bei clearall geworfen wurde, kommt bei mir nicht. Ich bastel mal weiter….
-
Ok! "10" != 10 :lol: Das sollte es gewesen sein. parseInt(adapter.config['prio']) Ich update mal git….
-
ioBroker hyperion Adapter 0.0.13 (2018-05-03)
Bugfix (wrong Datatype for Argument prio)
Funst. vielen dank
-
Leider wird mir das Update 0.0.13 nicht angeboten. liegt das daran, dass die 0.0.9 zahlenmäßig so weit vorne ist?
Gesendet von meinem SM-N910F mit Tapatalk
-
Der ist noch nicht auf NPM, also bekommst Du ihn nur über GitHub install
-
Der ist noch nicht auf NPM, also bekommst Du ihn nur über GitHub install `
Danke! War erfolgreich.Gesendet von meinem SM-N910F mit Tapatalk
-
Moin. Ich bin gerade über deinen Adapter gestolpert und hatte gehofft damit etwas basteln zu können, was man z.B. mit dem originalen Ambilight und Philips Hue - Lampen machen kann.
Nämlich beides miteinander koppeln.
Nun habe ich aber ein selbstgebasteltes Ambilight mit einem Raspberri Pi und einem WS2801 LED-Streifen und Xiaomi Yeelight LED Wifi Leuchtmittel.
Wäre es möglich mit dem Adapter anstelle des Schreiben-Befehls auch einen relativ oft aktualisierenden Lese-Befehl auszuführen?
Damit könnte ich dann die aktuellen Farben des Ambilights auslesen und diese auf meine anderen Leuchten übertragen.
-
Nee. Sowas geht nicht. (AFAIK) Evt. später mit hyperion.ng. (https://hyperion-project.org/threads/hy … werk.1095/) Ich glaube ich habe ein ähnliches Setup. (ca. 1500 ws2812b + 6 rgb hues.) Die hues laufen bei mir in einem eigenem hyperiond zu dem weitergeleitet wird. (https://hyperion-project.org/wiki/Contr ... le-Devices)
Ist aber bisher keine zufriedenstellende Lösung, da man alle hyperiond ausbremsen muss, um die lahmen hues nicht zu überfahren.
Obwohl... Du hast mich auf eine Idee gebracht. Das wäre zwar ein neuer Adapter, aber wie wäre es mit einem "hyperion-client" adapter. Der nimmt dann die hyperion daten über "rawudp" und steuert anhand von "Regeln" bestimmte iobroker States. Sowas wie hyperion rückwärts. Das geht dann nur mit einer total geringen wiederhohlfrequenz, die man allerdings über eine art "dubble-buffering" asynchron zu der tatsächlichen hyperion wiederhohlfrequenz laufen lassen könngte. Dann könnte man so "fancy" dinge bauen wie komplementäre Beleuchtung. (Wenn Hyperion alle leds "schwarz" macht, leuchten bestimmte LEDs "weiß" oder sowas.) Der Film geht aus, der Abspann läuft, alles wird Dunkel aber dafür gehen dann die hues an, oder sowas...
Wenn daran Interesse besteht, dann bitte ich darum mal eine "Wunschliste" zu erstellen.
-
Ich habe mal ein wenig rumgespielt:
Folgende "Device" Section der hyperion conf veranlasst hyperiond seine daten (hier 144 leds) via udp auszugeben.
// DEVICE CONFIGURATION "device" : { "name" : "MyHyperionConfig", "type" : "udpraw", "output" : "127.0.0.1:33333", "rate" : 1000000, "maxpacket" : 3600, "protocol" : 0, "colorOrder" : "rgb" },
Hier mal ein mini Test. Die daten kommen als sequenziell als buffer. Jeweils R,G,B per LED. Folgender Code zum probieren:
var PORT = 33333; var HOST = '127.0.0.1'; var dgram = require('dgram'); var server = dgram.createSocket('udp4'); server.on('listening', function () { var address = server.address(); console.log('RAWUDP HyperionData von: ' + address.address + ":" + address.port); }); server.on('message', function (message, remote) { console.log("Erhalte Nachrichten von :" + message.length/3 + " RGB Leds"); }); server.bind(PORT, HOST);
Ergibt dann folgende Ausgabe:
... Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds Erhalte Nachrichten von :144 RGB Leds ...
Am einfachsten, ich lege für jede LED einen State an, der den jeweiligen RGB Wert aufnimmt. Die Regeln kann man dann über den javascript Adapter bauen. Da ich allerdings, wie in meinem vorherigen Post schon beschrieben, nicht davon ausgehe das iobroker 144 (oder gar 1500) States 20 mal pro Sekunde updaten kann muss man sich da ein paar Gedanken machen, wie man verhindert iobroker zu "überfahren".
-
Sorry dass ich mich jetzt erst wieder melde. Ich musste erstmal meinen ioBroker neu aufsetzten. Irgendwie hab ich den wohl mit einer zweiten Installation oder ähnlichem zerschossen und jetzt musste ich erst wieder bei 0 anfangen da gar nichts mehr ging.
Ich hab mir das jetzt mal angeschaut.
Das Problem mit dem output-typ "udpraw" ist, dass der den Output dann nicht mehr auf typ "ws2801" hat und somit das Ambilight am TV nicht mehr funktioniert.
Also muss irgendwie eine andere Variante her um das ganze auszulesen.
Es würde theoretisch ja eine einzelne LED reichen die ausgelesen wird, da der output auf einzelne RGB-Led Leuchtmittel ( E27 ) ja sowieso auf eine Farbe beschränkt ist.
Im "Control" - Ordner unter Objects im ioBroker sind die Werte ja eigentlich schon hinterlegt. Das Problem ist nur, dass es nur Felder sind um Werte zu schreiben. Also müsste man hyperion irgendwie dazu bewegen können, gleichzeitig zum WS2801 - LED Streifen, die Werte auch über einen gewählten Port an eine bestimmte Adresse zu übertragen.
-
Wieso geht das nicht? Einfach eine 2. Hyprioninstanz starten und zu dieser forwarden.
In meiner aktuellen Konfiguration laufen aktuell 3 Hyperioninstanzen bei denen die ws2812b via Arduino und usb laufen. (jeweils [12x12]144 leds) eine Hyperioninstanz die über einen esp8266 seine Daten bekommt (meine iolykta, gibts n thread hier im forum zu) mit [12x12]144 leds. Eine Instanz mit 508 leds, die über einen teensy gefüttert wird, eine instanz die 6 rgb hues antreibt. Testweise hab ich auch mal einen Sphero als Leuchtmittel eingebunden. (da ist dann aber beim Probieren der Akku gestorben) ausserdem habe ich noch ca. 250 leds an meinem Fernseher /htpc hängen, dessen hyperiond dann ausserdem zu den anderen instanzen forwarded. Läuft weitestgehend ruckelfrei und synchron über alle instanzen. (bis auf die hues) bunt gemischt. 4x arduino via rs232 @500kps, teensy via rs232 @20mps, iolykta (esp8266) via wifi udp, hues über wifi tcp->bridge.
Also für deinen "usecase":
Du legst 2 Konfgurations Files an.
Der 1. File beinhaltet deine ws280x Konfiguration. (Mit LED Layout)
Die Ports sind dann (default): 19444 und 19445 für json bzw. proto
Der 2. File beinhaltet deine "udpraw" Konfiguration. Dort legst du im Layout für jede deiner Yeelight LEDs eine LED an.
Die Ports sind hier dann (z.B.): 19446 und 19447
Nun trägst du in File 1 die Ports aus File 2 als forwards ein:
"forwarder" : { "proto": [ "127.0.0.1:19447" ], "json" : [ "127.0.0.1:19446" ] },
Nun startest du die beiden Instanzen jeweils mit hyperiond /pfad/zum/configfile.conf
Autostart: mal den passenden systemd service file suchen -> kopieren -> anpassen
Was noch fehlt, währe der Code um die Hyperion UDP Nachrichten in ioBroker States zu verwandeln. Aber denn könnte ich ja bauen…
Performanter und imho einfacher umzusetzen, dann aber jedoch weniger flexibel wäre die Variante, die Hyperion UDP Nachrichten direkt an die Yeelights zu senden. Aber das hat dann nix mehr mit iobroker zu tun...
Ich habe das mal für 1762 leds (ws2812b) auf nem raspi gemacht, der dann udp daten direkt über den stripe ausgegeben hat. Hier mal meine (noch fehlerhafter) "proof-of-concept" python code:
`#!/usr/bin/env python3 """ Hyperion Proxy """ import itertools import socket import time from neopixel import * # LED strip configuration: LED_COUNT = 1762 # Number of LED pixels. LED_PIN = 18 # GPIO pin connected to the pixels (18 uses PWM!). #LED_PIN = 10 # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0). LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz) LED_DMA = 10 # DMA channel to use for generating signal (try 10) LED_BRIGHTNESS = 255 # Set to 0 for darkest and 255 for brightest LED_INVERT = False # True to invert the signal (when using NPN transistor level shift) LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53 # the buffer for receiving incoming messages BUFFER_SIZE = 4096 def receive_next(sock): "Repeatedly tries receiving on the given socket until some data comes in." print("Waiting to receive data...") while True: try: return sock.recvfrom(BUFFER_SIZE) except socket.timeout: print("No data received yet: retrying.") pass def receive_and_send_one(sock): input_data, addr = receive_next(sock) message = input_data for i in xrange(0,len(message),3): red = ord(message[i]) green = ord(message[i+1]) blue = ord(message[i+2]) print("(" + str(red) + "," + str(green) + "," + str(blue) + ")" ) strip.setPixelColor(i,Color(red,green,blue)) strip.show() def start(): "Runs the server." sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(5) # seconds sock.bind(("0.0.0.0",33333)) print("Listening...") try: for i in itertools.count(1): receive_and_send_one(sock) finally: print("Shutting down.") sock.close() if __name__ == "__main__": strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL) strip.begin() start()` Gruß[/i]
-
Hallo,
ich bekomme den Adapter nicht zum laufen, habe ich alles richtig gemacht? Anbei die Screenshots
ioBroker 3.4.7
Hyperion Adapter 0.0.9
Cloud connection 2.6.2
Der Cloud Adapter funtioniert mit anderen Geräten einwandfrei.
Ich habe im Cloudadapter ein Smart Gerät angelegt und dafür das Hyperion Object LightSwitch benutzt und als Fernseher benannt, Alexa findet dieses auch, aber sie sagt, Fernseher unterstützt das nicht.
Wenn ich als Object ein Effect wähle, funtioniert es, daher dachte ich, ich muss als role ein Button definieren, doch da kommt das gleiche heraus, bis auf, dass wenn ich den Button im ioBroker anklicke, meine LEDs weiß leuchten und mit clear ( nicht clear all !!!) gehen diese wieder aus.
Kann mir jemand bitte weiterhelfen, danke.
2493_instanzen.png
2493_instanzen2.png
2493_unbenannt1.png -
Hallo maisbier,
was ist denn dein Ziel? Was möchtest du mit dem Sprachbefehl aktivieren/erreichen?
Ich bin zwar frischer Anfänger hier auf dem Board und irgendwie auch in dem Thema, habe mich aber die letzten Tage mit dem Adapter ein bisschen näher beschäftigt…nutzerseitig.
Herzliche Grüße
Cutter