Benutzeravatar
Squizzy
Mitglied

Beiträge:85
Registriert:18. Dec 2015

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

5. Feb 2016, 10:46

Hey Leute,

der Admin hat ja einen IR Sensor verbaut um Kodi zu steuern. Weiß jemand wieso, wenn eigentlich jede Glotze mittlerweile CEC kann? Denn damit ist es genauso möglich Hyperion zu steuern. In der Hyperion Wiki wird beschrieben wie das geht.

Dort ist ein funktionsfähiges Skript für das ein und ausschalten und das wechseln der Farben. Da ich aber auch Effekte steuern wollte, habe ich mir das Skript ein wenig umgebastelt.

ERGEBNIS: https://www.youtube.com/watch?v=PvKCYTmfdwU


Anleitung für OSMC:
Vorraussetzung:
  • OSMC mit laufendem Hyperion
  • TV der mit CEC läuft oder ein IR Setup

Da Hyperion auf OSMC standardmäßig als Root gestartet wird, wird ein wenig rumgebastelt damit es als osmc User läuft.

Code: Alles auswählen

sudo apt-get install psmisc


Jetzt wird der SysV Eintrag gelöscht.

Code: Alles auswählen

sudo update-rc.d remove hyperion


Der Symlink muss noch aus /etc/init.d gelöscht werden.

Code: Alles auswählen

sudo rm /etc/init.d/hyperion


Jetzt wird ein Service erstellt.

Code: Alles auswählen

sudo nano /etc/systemd/system/hyperion.service


Im Editor folgendes einfügen. Die Pfade sind die Standardpfade von Hyperion.

Code: Alles auswählen

[Unit]
Description=Hyperion
[Service]
Type=simple
User=osmc
Group=osmc
UMask=007
ExecStart=/opt/hyperion/bin/hyperiond /etc/hyperion.config.json
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
TimeoutStopSec=10

[Install]
WantedBy=multi-user.target


Jetzt starten wir einmal Hyperion. (Wieso auch immer :D Wird sich jemand schon was bei gedacht haben) Nach dem Start mit Strg+C abbrechen.

Code: Alles auswählen

/opt/hyperion/bin/hyperiond /etc/hyperion.config.json


Als nächstes wird der Service aktiviert.

Code: Alles auswählen

 sudo systemctl enable hyperion


Mit folgender Zeile kann Hyperion von Hand gestartet, gestoppt oder neugestartet werden.

Code: Alles auswählen

sudo systemctl (start/stop/restart) hyperion



So jetzt zu den Skripten!
Diese kopiert ihr nach ...

Code: Alles auswählen

/home/osmc/hyperion

...
und gebt diesen das Recht ausgeführt zu werden.

Code: Alles auswählen

sudo chmod +x /home/osmc/hyperion/*.py


Jetzt müssen wir nur noch Kodi sagen, mit welcher Taste welches Skript ausgeführt werden soll. Dazu kopiert ihr die remote.xml nach ...

Code: Alles auswählen

/home/osmc/.kodi/userdata/keymaps/


Blau - Startet/Stoppt Hyperion
Gelb - Farbe wechseln
Grün - Effekt wechseln

HINWEIS!!!
Im Farbenskript sind nur 3 Farben hinterlegt. Wenn ihr mehr wollt, dann müsst ihr die Datei bearbeiten. In der 3. Zeile müsst ihr weitere Farben einfügen und dabei den Syntax beibehalten wie er dort ist.
Im Effektskript habe ich nur die Effekt drin, die mir gefallen. Dort könnt ihr wie bei den Farben verfahren und weitere Namen einfügen. Die Namen müssen gleich sein, wie die in den Effekt.json Dateien drin stehen!!!
Dateianhänge
Hyperionskripte.zip
(3.73 KiB) 406-mal heruntergeladen

b2un0
Moderator

Beiträge:1819
Registriert:16. Nov 2015
Wohnort:Hamburg
Beruf:Softwareentwickler

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

8. Feb 2016, 17:53

der Admin hat ja einen IR Sensor verbaut um Kodi zu steuern. Weiß jemand wieso, wenn eigentlich jede Glotze mittlerweile CEC kann? Denn damit ist es genauso möglich Hyperion zu steuern. In der Hyperion Wiki wird beschrieben wie das geht.


Weil CEC bei einigen TVs massive input Lags hat und das steuern von Kodi damit unerträglich wird :lol: :roll:

Danke aber für die Anleitung und Toll das es hier noch andere OSMC Nutzer gibt :)
Kein Support per PM!

Fenderman
Neuling

Beiträge:14
Registriert:15. May 2016

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

20. Jun 2016, 21:52

Was muss man an den Skripten ändern, dass es auch unter Raspbian funktioniert?
Und kennt sich jemand aus, wie ich das "Color Switch" Skript (hier Python) in Shell übersetzte (.sh Datei)?

Code: Alles auswählen

import json
import subprocess

colors = ['purple', 'blue', 'yellow',]

defaultData = {"color":"purple",
               "effect":"night rider"
               }

def read_current():
    try:
        with open('/home/osmc/hyperion/current.json', 'r') as f:
            data = json.load(f)
        f.close()
        if data == '':
            return defaultData
        else:
            return data
    except (IOError, ValueError):
        return defaultData

def write_current(data):
    try:
        with open('/home/osmc/hyperion/current.json', 'w') as f:
            json.dump(data, f)
        f.close()
    except IOError:
        pass

def parse_current_effect():
    pass

def set_current_effect():
    pass

def set_color(color):
    subprocess.Popen('/opt/hyperion/bin/hyperion-remote --priority 100 --color ' + color, shell=True)

def main():
    current_data = read_current()
    for i,color in enumerate(colors):
        if color == current_data['color']:
            if i == len(colors) - 1:
                current_data['color'] = colors[0]
                break
            else:
                current_data['color'] = colors[i + 1]
                break

    write_current(current_data)
    set_color(current_data['color'])

main()

onkeldave
Mitglied

Beiträge:167
Registriert:15. Feb 2016
Wohnort:254xx

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

21. Jun 2016, 07:13

der Admin hat ja einen IR Sensor verbaut um Kodi zu steuern. Weiß jemand wieso, wenn eigentlich jede Glotze mittlerweile CEC kann?

Naja, z.B. weil CEC nicht bei ausgeschaltetem Fernseher läuft und ich Kodi auch als Musikzuspieler ohne TV nutze. Dann kann ich mit der IR FB auch einige Dinge im Blindflug schalten, ohne immer mein Handy zu suchen. Ambilight an/aus, Lautstärke in Kodi, Stop, Pause, Skip, etc...
Pi3, LibreELEC 8 (Kodi17) + RetroPie 4 Dualboot, Hyperion Ambilight, IR Empfänger, Datenbanksync auf NAS

b2un0
Moderator

Beiträge:1819
Registriert:16. Nov 2015
Wohnort:Hamburg
Beruf:Softwareentwickler

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

21. Jun 2016, 07:17

Fenderman hat geschrieben:Was muss man an den Skripten ändern, dass es auch unter Raspbian funktioniert?

einfach nur die Pfade anpassen die in dem Script mit /opt/ anfangen

Fenderman hat geschrieben:Und kennt sich jemand aus, wie ich das "Color Switch" Skript (hier Python) in Shell übersetzte (.sh Datei)?

Warum? lass es doch in python, das funktioniert auch unter raspbian wenn du es mittels "python *dateiname*" ausführst.
Kein Support per PM!

Fenderman
Neuling

Beiträge:14
Registriert:15. May 2016

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

21. Jun 2016, 17:58

Unter /opt/ ist bei Raspbian nichts von Hyperion gespeichert.
Zumindest bei mir.

Unter /usr/share/hyperion/ gibt es was, aber eine "current.json" finde ich nirgends... :(

b2un0
Moderator

Beiträge:1819
Registriert:16. Nov 2015
Wohnort:Hamburg
Beruf:Softwareentwickler

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

21. Jun 2016, 18:04

Guck mal in /etc/hyperion ;)
Kein Support per PM!

Fenderman
Neuling

Beiträge:14
Registriert:15. May 2016

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

21. Jun 2016, 21:05

Top, danke funktioniert!
Die current.json hat mich irritiert, muss man einfach als leere Datei anlegen.
Dort speichert das Skript dann den jeweiligen Zustand der LEDs.

Squizzy
Mitglied

Beiträge:85
Registriert:18. Dec 2015

[TUT&DL]Remote-Skripte für Ein/Ausschalten, Effekte und Farben für OSMC

22. Jun 2016, 11:46

Bei Hyperion hat sich die letzten Monate einiges an den Pfaden getan und ich habe das Skript auch nicht mehr angepasst ;)

Zurück zu „Allgemein“