Hier mal eine kleine Anleitung, sofern habridge erfolgreich installiert wurde. Mein Betriebssystem ist OSMC. Bei anderen Betriebssystemen (OpenElec, LibreElec) können sich die Pfade natürlich unterscheiden:
1. hyperion.service anpassenIch habe mir eine Config erstellt (
hyperion.configAUS.json) in der kein Grabber aktiv ist, sodass beim Starten von Hyperion alle LED's aus bleiben und auch kein Regebogeneffekt kommt:
Code: Alles auswählen
// Automatically generated configuration file for Hyperion ambilight daemon
// Notice: All values are explained with comments at our wiki: wiki.hyperion-project.org (config area)
// Generated by: HyperCon (The Hyperion deamon configuration file builder)
// Created with HyperCon V1.03.1 (11.06.2016)
{
// DEVICE CONFIGURATION
"device" :
{
"name" : "MyHyperionConfig",
"type" : "ws2801",
"output" : "/dev/spidev0.0",
"rate" : 1000000,
"colorOrder" : "bgr"
},
// COLOR CALIBRATION CONFIG
"color" :
{
"channelAdjustment" :
[
{
"id" : "default",
"leds" : "*",
"pureRed" :
{
"redChannel" : 255,
"greenChannel" : 0,
"blueChannel" : 0
},
"pureGreen" :
{
"redChannel" : 0,
"greenChannel" : 150,
"blueChannel" : 0
},
"pureBlue" :
{
"redChannel" : 0,
"greenChannel" : 0,
"blueChannel" : 130
}
}
],
"temperature" :
[
{
"id" : "default",
"leds" : "*",
"correctionValues" :
{
"red" : 255,
"green" : 255,
"blue" : 255
}
}
],
"transform" :
[
{
"id" : "default",
"leds" : "*",
"hsl" :
{
"saturationGain" : 1.0000,
"luminanceGain" : 1.0000,
"luminanceMinimum" : 0.0000
},
"red" :
{
"threshold" : 0.1000,
"gamma" : 2.3500
},
"green" :
{
"threshold" : 0.1000,
"gamma" : 1.9800
},
"blue" :
{
"threshold" : 0.1000,
"gamma" : 2.0300
}
}
],
// SMOOTHING CONFIG
"smoothing" :
{
"type" : "linear",
"time_ms" : 200,
"updateFrequency" : 30.0000,
"updateDelay" : 0
}
},
// V4L2 GRABBER CONFIG
// FRAME GRABBER CONFIG
// BLACKBORDER CONFIG
// KODI CHECK CONFIG
// BOOTEFFECT CONFIG
"bootsequence" :
{
"color" : [0,0,0],
"duration_ms" : 0,
"priority" : 700
},
// JSON SERVER CONFIG
"jsonServer" :
{
"port" : 19444
},
// PROTO SERVER CONFIG
"protoServer" :
{
"port" : 19445
},
// EFFECT PATH
"effects" :
{
"paths" :
[
"/storage/hyperion/effects",
"/usr/share/hyperion/effects"
]
},
// "forwarder" :
// {
// "proto" : [ "192.168.178.40:20445"],
// "json" : [ "192.168.178.40:20444"]
// },
// NO BOBLIGHT SERVER CONFIG
// NO JSON/PROTO FORWARD CONFIG
// LED CONFIGURATION
"leds" :
[
{
"index" : 0,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0303 },
"vscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }
},
{
"index" : 1,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0300 },
"vscan" : { "minimum" : 0.9477, "maximum" : 1.0000 }
},
.......
],
"endOfJson" : "endOfJson"
}
Die Config habe ich ganz normal im Config Ordner im Hyperion Verzeichnis abgelegt. Als Nächstes habe ich in der
hyperion.service die originale Config Datei durch diese ersetzt, indem ich den Pfad angepasst habe:
2. Scripte für AN und AUS BefehleIn der habridge müssen später Scripte angegeben werden, die dem Raspberry quasi sagen, was er bei dem jeweiligen Befehl tun soll.
Das Script für
AN habe ich
ambilight_an.sh genannt
Code: Alles auswählen
#!/bin/sh
sudo killall hyperiond
sleep 1
sudo /usr/bin/hyperiond /etc/hyperion/hyperion.config.json
</dev/null >/dev/null 2>&1 &
Das Script stoppt den Hyperion Dienst und startet ihn anschließend mit der
hyperion.config.json neu, die nur mit dem externen Grabber konfiguriert ist:
Code: Alles auswählen
// Automatically generated configuration file for Hyperion ambilight daemon
// Notice: All values are explained with comments at our wiki: wiki.hyperion-project.org (config area)
// Generated by: HyperCon (The Hyperion deamon configuration file builder)
// Created with HyperCon V1.03.1 (11.06.2016)
{
// DEVICE CONFIGURATION
"device" :
{
"name" : "MyHyperionConfig",
"type" : "ws2801",
"output" : "/dev/spidev0.0",
"rate" : 1000000,
"colorOrder" : "bgr"
},
// COLOR CALIBRATION CONFIG
"color" :
{
"channelAdjustment" :
[
{
"id" : "default",
"leds" : "*",
"pureRed" :
{
"redChannel" : 255,
"greenChannel" : 0,
"blueChannel" : 0
},
"pureGreen" :
{
"redChannel" : 0,
"greenChannel" : 110,
"blueChannel" : 0
},
"pureBlue" :
{
"redChannel" : 8,
"greenChannel" : 0,
"blueChannel" : 130
}
}
],
"temperature" :
[
{
"id" : "default",
"leds" : "*",
"correctionValues" :
{
"red" : 255,
"green" : 255,
"blue" : 255
}
}
],
"transform" :
[
{
"id" : "default",
"leds" : "*",
"hsl" :
{
"saturationGain" : 0.7000,
"luminanceGain" : 1.0000,
"luminanceMinimum" : 0.0000
},
"red" :
{
"threshold" : 0.1000,
"gamma" : 2.4000
},
"green" :
{
"threshold" : 0.1000,
"gamma" : 1.8000
},
"blue" :
{
"threshold" : 0.1000,
"gamma" : 1.9000
}
}
],
// SMOOTHING CONFIG
"smoothing" :
{
"type" : "linear",
"time_ms" : 200,
"updateFrequency" : 30.0000,
"updateDelay" : 0
}
},
// V4L2 GRABBER CONFIG
"grabber-v4l2" :
{
"device" : "/dev/video0",
"input" : 0,
"standard" : "PAL",
"width" : -1,
"height" : -1,
"frameDecimation" : 2,
"sizeDecimation" : 8,
"priority" : 890,
"mode" : "2D",
"cropLeft" : 17,
"cropRight" : 17,
"cropTop" : 5,
"cropBottom" : 5,
"redSignalThreshold" : 0.0,
"greenSignalThreshold" : 0.0,
"blueSignalThreshold" : 0.0
},
// FRAME GRABBER CONFIG
"framegrabber" :
{
"width" : 64,
"height" : 64,
"frequency_Hz" : 10.0,
"priority" : 900
},
// BLACKBORDER CONFIG
"blackborderdetector" :
{
"enable" : true,
"threshold" : 0.1,
"unknownFrameCnt" : 600,
"borderFrameCnt" : 50,
"maxInconsistentCnt" : 10,
"blurRemoveCnt" : 1,
"mode" : "default"
},
// KODI CHECK CONFIG
"xbmcVideoChecker" :
{
"xbmcAddress" : "192.168.178.27",
"xbmcTcpPort" : 9090,
"grabVideo" : true,
"grabPictures" : false,
"grabAudio" : false,
"grabMenu" : false,
"grabPause" : false,
"grabScreensaver" : false,
"enable3DDetection" : false
},
// BOOTEFFECT CONFIG
"bootsequence" :
{
"color" : [0,0,0],
"duration_ms" : 0,
"priority" : 700
},
// JSON SERVER CONFIG
"jsonServer" :
{
"port" : 19444
},
// PROTO SERVER CONFIG
"protoServer" :
{
"port" : 19445
},
// EFFECT PATH
"effects" :
{
"paths" :
[
"/storage/hyperion/effects",
"/usr/share/hyperion/effects"
]
},
// "forwarder" :
// {
// "proto" : [ "192.168.178.40:20445"],
// "json" : [ "192.168.178.40:20444"]
// },
// NO BOBLIGHT SERVER CONFIG
// LED CONFIGURATION
"leds" :
[
{
"index" : 0,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0303 },
"vscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }
},
{
"index" : 1,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0300 },
"vscan" : { "minimum" : 0.9477, "maximum" : 1.0000 }
},
.....
],
"endOfJson" : "endOfJson"
}
Um das Ambilight nun auszuschalten benutze ich ein Script für den Befehl
AUS:
Code: Alles auswählen
#!/bin/bash
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"id":1,"jsonrpc":"2.0","method":"GUI.ShowNotification","params":{"title":"Hyperion","message":"Enabled","image":"/home/pi/hyperion.png"}}' http://127.0.0.1:8080/jsonrpc
hyperion-remote --color black
Das Script tut nichts Anderes, als die Farbe der LED's auf schwarz zu setzen. demnach bleiben sie dann auch aus.
Will man jetzt irgendwann wieder Ambilight benutzen, nutzt man einfach wieder den Befehl
AN. Also später über
ALEXA "Alexa, schalte Ambilight an"3. Internen Grabber nutzen für Kodi:Um nun den internen Grabber zu starten, habe ich in habridge einfach eine 2te Bridge angelegt und bin dort genauso vorgegangen. Nur habe ich für den
AN Befehl eine
hyperion.configKODI.json erstellt, in der nur der interne Grabber aktiv ist:
Hier das Script dazu:
Code: Alles auswählen
#!/bin/sh
sudo killall hyperiond
sleep 1
sudo /usr/bin/hyperiond /etc/hyperion/hyperion.configKODI.json
</dev/null >/dev/null 2>&1 &
Und die
hyperion.configKODI.json:
Code: Alles auswählen
// Automatically generated configuration file for Hyperion ambilight daemon
// Notice: All values are explained with comments at our wiki: wiki.hyperion-project.org (config area)
// Generated by: HyperCon (The Hyperion deamon configuration file builder)
// Created with HyperCon V1.03.1 (11.06.2016)
{
// DEVICE CONFIGURATION
"device" :
{
"name" : "MyHyperionConfig",
"type" : "ws2801",
"output" : "/dev/spidev0.0",
"rate" : 1000000,
"colorOrder" : "bgr"
},
// COLOR CALIBRATION CONFIG
"color" :
{
"channelAdjustment" :
[
{
"id" : "default",
"leds" : "*",
"pureRed" :
{
"redChannel" : 255,
"greenChannel" : 15,
"blueChannel" : 0
},
"pureGreen" :
{
"redChannel" : 5,
"greenChannel" : 130,
"blueChannel" : 0
},
"pureBlue" :
{
"redChannel" : 0,
"greenChannel" : 0,
"blueChannel" : 130
}
}
],
"temperature" :
[
{
"id" : "default",
"leds" : "*",
"correctionValues" :
{
"red" : 255,
"green" : 255,
"blue" : 255
}
}
],
"transform" :
[
{
"id" : "default",
"leds" : "*",
"hsl" :
{
"saturationGain" : 1.0000,
"luminanceGain" : 1.2500,
"luminanceMinimum" : 0.0000
},
"red" :
{
"threshold" : 0.1000,
"gamma" : 2.6500
},
"green" :
{
"threshold" : 0.1000,
"gamma" : 2.3900
},
"blue" :
{
"threshold" : 0.1000,
"gamma" : 2.2300
}
}
],
// SMOOTHING CONFIG
"smoothing" :
{
"type" : "linear",
"time_ms" : 200,
"updateFrequency" : 30.0000,
"updateDelay" : 0
}
},
// V4L2 GRABBER CONFIG
// "grabber-v4l2" :
// {
// "device" : "/dev/video0",
// "input" : 0,
// "standard" : "PAL",
// "width" : -1,
// "height" : -1,
// "frameDecimation" : 2,
// "sizeDecimation" : 8,
// "priority" : 999,
// "mode" : "2D",
// "cropLeft" : 17,
// "cropRight" : 17,
// "cropTop" : 5,
// "cropBottom" : 5,
// "redSignalThreshold" : 0.0,
// "greenSignalThreshold" : 0.0,
// "blueSignalThreshold" : 0.0
// },
//
// FRAME GRABBER CONFIG
"framegrabber" :
{
"width" : 64,
"height" : 64,
"frequency_Hz" : 10.0,
"priority" : 900
},
// BLACKBORDER CONFIG
"blackborderdetector" :
{
"enable" : true,
"threshold" : 0.1,
"unknownFrameCnt" : 600,
"borderFrameCnt" : 50,
"maxInconsistentCnt" : 10,
"blurRemoveCnt" : 1,
"mode" : "default"
},
// KODI CHECK CONFIG
"xbmcVideoChecker" :
{
"xbmcAddress" : "192.168.178.27",
"xbmcTcpPort" : 9090,
"grabVideo" : true,
"grabPictures" : true,
"grabAudio" : false,
"grabMenu" : true,
"grabPause" : false,
"grabScreensaver" : false,
"enable3DDetection" : false
},
// BOOTEFFECT CONFIG
"bootsequence" :
{
"color" : [0,0,0],
"duration_ms" : 0,
"priority" : 700
},
// JSON SERVER CONFIG
"jsonServer" :
{
"port" : 19444
},
// PROTO SERVER CONFIG
"protoServer" :
{
"port" : 19445
},
// EFFECT PATH
"effects" :
{
"paths" :
[
"/storage/hyperion/effects",
"/usr/share/hyperion/effects"
]
},
"forwarder" :
{
"proto" : [ "192.168.178.40:20445"],
"json" : [ "192.168.178.40:20444"]
},
// NO BOBLIGHT SERVER CONFIG
// LED CONFIGURATION
"leds" :
[
{
"index" : 0,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0303 },
"vscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }
},
{
"index" : 1,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0300 },
"vscan" : { "minimum" : 0.9477, "maximum" : 1.0000 }
},
.....
],
"endOfJson" : "endOfJson"
}
So sieht dann die Startseite der habridge bei mir aus:
Und so in den einzelnen Bridges:
Für Ambilight mit externem Grabber:Für Ambilight mit internem Grabber (KODI):Und die Übersicht:4. Mit ALEXA verbindenIn der Alexa-App unter Smart Home -> Geräte nach neuen Geräten suchen. Es müssten jetzt die beiden , in der habgride angelegten, Bridges auftauchen.
Anschließen erstellt man jeweils eine Gruppe, die später auch das Signalwort für ALEXA sein wird. In meinem Fall ist das :
Ambilightund
Heimkino (Heimkino, weil ALEXA "Kodi" immer als Disco verstanden hat und dann Musik abspielen wollte oder meinte kein Gerät zu finden)
Die Benamung der Gruppen ist natürlich Jedem selbst überlassen.
In den Gruppen einfach nur die jeweilige Bridge auswählen und dann ist man auch schon fertig
Ich hoffe, damit kann ich einigen hier helfen, die dazu Fragen hatten. Wenn sich jemand besser auskennt und meint, meine Scripts sind total bescheurt gelöst und es geht viel einfacher. Mag sein, ich hab mir die irgendwie aus diversen Anleitungen zusammengebastelt, die eigentlich für die Bedienung per fernbedienung gedacht waren. Hauptsache es funktioniert und
das tut es!