antonpup / Aurora

Unified lighting effects across multiple brands and various games.
http://www.project-aurora.com/
MIT License
1.82k stars 369 forks source link

TV lighting suggestion : Hyperion #243

Open maitredede opened 7 years ago

maitredede commented 7 years ago

Hi,

For TV lighting, you may use Hyperion through their json or protobuf interface.

An example lib for nodejs : https://github.com/WeeJeWel/node-hyperion-client/blob/master/lib/Hyperion.js

I have already used Hyperion with OSMC/Kodi.

You may also take a look at their UDP LED device support : https://hyperion-project.org/wiki/Network-and-distributed-features

This can lead to a simple Arduino-based LED handler, either connected to network or USB.

RickDB commented 7 years ago

Hi,

On the list here after I integrate AtmoOrb support from issue #237 , if that goes smoothly at least :)

Basically will use the same code from our AtmoLight project (Hyperion protobuffer interface) in Aurora as that is able to push pretty fast and the JSON interface is meant for control and basic color commands. However for the color it's gonna be an average of all the keys as not sure how well it will work otherwise (suggestions are welcome 👍 ), video from AtmoOrb issue is how it will look with Hyperion basically.

RickDB commented 7 years ago

Integrated AtmoOrb and Hyperion draft code tested successfully here :) , once AtmoOrb code is in will do a new PR for that.

maitredede commented 7 years ago

Maybe you may also consider the AtmoOrb as a big light on side of the keyboard, that could be affected like any other keyboard light by effects. As example, the color wave when a key is pressed can continue on the orb, like any key...

Last week I also found Ambibox : http://www.ambibox.ru/en/

Maybe we can imagine a kind of game-driven profile : mode ambilight for videos, mode stero vu-meter for horror games, original shoot direction for FPS... Each profile activated on a per-game basis.

RickDB commented 7 years ago

Yeah would be nice to have some more control over it, thanks to @antonpup I added the proper way of reading the average color and finished up on the PR. The way Aurora is already designed it allows for region color or specific key readouts already which is great.

Hyperion is next once the PR is approved, Orbs are by far the easiest atm as they are plug and play so long as you go with the Photon hardware at least.

Ambibox we already support in AtmoLight project and their API is a bit of a mess, while it works for the most part it has a tendency to crash or bug out. Can get pretty complex with multiple profiles but once we have the hardware support part in will look if we can copy over some of the AtmoLight interfaces / targets if we can fit it into Aurora neatly :)

latworx commented 7 years ago

Hi. I really new with this. Im successfully assembled a hyperion led system. And its interract with kodi in my pc very well. Does it means, i can control the led via aurora for integrating game effect with the led strip? How to do it? I saw https://github.com/WeeJeWel/node-hyperion-client/blob/master/lib/Hyperion.js but didnt know how to use it. Thanks in advanced!

maitredede commented 7 years ago

Hi, To drive Hyperion from Aurora, you have to think about which kind of Hyperion animations you would like to make with Aurora (plain colors, effects, animations...). Then you have to compile Aurora yourself with code changes to add Hyperion driving. I you know how to code in C#/XAML, @antonpup may help you on where to start. Finally, driving Hyperion is just connecting to a TCP port and sending some json. You may have a look here https://hyperion-project.org/wiki/hyperion-remote-JSON-interface for some help.

latworx commented 7 years ago

Actually, for the start, i just want to use the effect available in aurora, and planning to have the F1-F12 colour on keyboard be sent to hyperion. So its mean that, i can do that by sending the colour data to hyperion via TCP right? Unfortunately, i really didn't know exactly how to do it. It might be in the wrong platform for a newbie like me, but i eagerly want to learn, but didn't know where to start.

maitredede commented 7 years ago

For the TCP/Hyperion part, you have to establish from Aurora a TCP connection. See System.Net.Socket.TCPClient class. Then you have to build a json message : see Newtonsoft.JSON.

You have to create class that represent the Hyperion JSON structure.

To send data to Hyperion, create a message using previously classes, use TcpClient to connect to Hyperion, and use Newtonsoft to serialize the message to the TcpClient NetworkStream.

G3rtz commented 6 years ago

Hi,

so any updates on this?