Neues Modul für Hyperion Server 98_Hyperion.pm

Begonnen von DeeSPe, 29 Juni 2016, 18:54:18

Vorheriges Thema - Nächstes Thema

Spezialtrick

Danke danke.  ;D

Hätte noch eine Frage zu der Quellenumschaltung. Startet bei dir das Ambilight mit dem Klick im Dropdown-Menü, wenn du eine Quelle auswählst, die mit dem Videograbber arbeitet?

Bei mir startet mit dem Klick im Dropdown-Menü der Anfangseffekt und dann passiert erstmal nicht, Leds bleiben dunkel. Erst durch das Ab- und Wiederanschalten des Ambilight über Fhem, startet dann das Ambilight tatsächlich mit der korrekten Farbwiedergabe. Dies ist jedoch nur bei den Quellen der Fall, die mit dem Videograbber arbeiten. Bei der Quelle für Kodi startet es unmittelbar.
FHEM - Debmatic - Zigbee2MQTT - Homekit

DeeSPe

Das ist auf jeden Fall bei mir auch so und kann meines Erachtens auch nicht anders gehen.

Du kannst ja in HyperCon den Starteffekt einstellen oder eine feste Startfarbe. Das ist das was Du nach dem Laden einer anderen Konfig Datei siehst.
Ob der User danach eine bestimmte Farbe, einen Effekt oder eben das Ambilight sehen will, muss er/sie selbst entscheiden. In sofern schaltet nach dem Starteffekt der HDMI-Grabber das Ambilight erst einmal auf AUS.

Bei Kodi als Quelle kannst Du ja in HyperCon schon angeben wann das Ambilight aktiv sein soll. Auswahlen gibt es für Menü, Video, Bilder, Musik, Bildschirmschoner, 3D und Pause.
Wie will/soll man das für den externen Grabber aktivieren, der ja keine festen Zustände kennt? Du kannst über den Grabber ein beliebiges Signal schicken! Bei Kodi gibt es eben nur die 7 Möglichkeiten.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Spezialtrick

Also schaltet das Modul den Grabber nach dem Starteffekt aus?  ???

Bei mir war es bisher immer so, dass der Pi am TV immer lief, auch wenn der TV aus war, da dieser noch einen anderen Dienst bereitstellt. Hyperion lief also dauerhaft mit der Config für den internen Sat-Tuner. Wenn der TV aus war, waren auch auch die LEDs aus. Beim Einschalten des TVs, waren auch sofort die Leds an. Selbst nach einem Neustart des Pi's, startete die Hyperion Config und nach der Anfangseffekt gingen auch die LEDs wieder an.

Daher wundere ich mich nun ein wenig.  ::)
FHEM - Debmatic - Zigbee2MQTT - Homekit

DeeSPe

Nein, dieses Modul schaltet nichts aus nach dem Starteffekt!
Das macht Hyperion selbst.
Nochmal, woher soll Hyperion wissen ob am externen Grabber gerade kein Signal anliegt oder eventuell nur ein schwarzes Bild zu sehen ist?
Bei internen Grabbern, z.B. Kodi oder Sat Receiver wird ja mitgeteilt was gerade läuft, also ob ein Video läuft oder nicht, oder man gerade in einem Menü steht.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Spezialtrick

In Ordnung.

Das kann Hyperion natürlich nicht wissen. Aber Fakt ist, dass bisher nach dem Anfangseffekt sofort das Bild vom Grabber an die Leds weitergeben wurde. Ich nehme an, dass es in der aktuellsten Hyperion Version geändert wurde.

Ich werde, dass ein Fall über einen Dummy lösen.

Vielen Dank für das klasse Modul. :)
FHEM - Debmatic - Zigbee2MQTT - Homekit

DeeSPe

Wie gesagt, in der Kodi config kannst Du ja angeben wann das Ambilight eingeschaltet werden soll.
Eventuell geht das auch bei Sat Reveivern. Ich habe kein Sat und kenne mich damit auch nicht aus.

Ob die beim letzten Update von Hyperion diesbezüglich etwas geändert hatten kann ick Dir nicht sagen.

Bitte, gerne für das Modul. Das wird auch sicher nicht mein letztes Modul für FHEM gewesen sein. Habe schon Ideen für mindestens ein weiteres Modul. Und auch die Entwicklung dieses Moduls ist noch nicht ganz abgeschlossen für mich. Erweitern und verbessern lässt sich immer was.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Spezialtrick

Zitat von: DeeSPe am 12 September 2016, 18:58:25
Wie gesagt, in der Kodi config kannst Du ja angeben wann das Ambilight eingeschaltet werden soll.
Eventuell geht das auch bei Sat Reveivern. Ich habe kein Sat und kenne mich damit auch nicht aus.

Verhält sich bei der der HDMI Config genauso.  ;D
FHEM - Debmatic - Zigbee2MQTT - Homekit

Grinsekatze

Danke erst mal, für das klasse Plugin!

Ich habe es am Wochenende auch für mein Setup verwendet.
Der sieht wie folgt aus:
Ein Pi mit Raspbian (Zentrale) auf dem die gesamte Automatisation läuft (größtenteils Homematic-Komponenten).
Ein zweiten Pi am Fernseher mit OSMC (Wohnzimmer) der in der Vergangenheit diesen geschaltet hat (ein, aus, Quelle usw.). Auf diesem habe ich nun noch Hyperion installiert und nutze die GPIO-Schnittstelle für die LEDs.

Ich möchte gerne das Plugin auf der Zentrale laufen lassen um den Wohnzimmer-Pi zu steuern.
Das klappt jedoch noch nicht ganz. Zum einen bin ich etwas verwirrt, was ich nun wirklich in der /etc/sudoers eintragen muss. Zum anderen findet das Plugin jedoch die Hyperion Instanz. Ein Auslesen der Configs klappt jedoch nicht.

Ich habe hier verschiedenes probiert: in der /etc/sudoers, sowohl von Zentrale (hier ist der User pi), als auch von Wohnzimmer (der User ist hier osmc) fhem, pi und osmc eingetragen.
Zusätzlich habe ich noch die Zertifikate erstellt, damit sich pi auf Zentrale per SSH als osmc auf Wohnzimmer ohne ein Passwort einloggen kann (diesen Tipp hat mir das Plugin gegeben). Leider hilft das alles nichts.

Darum habe ich nun erstmal das Plugin auf Wohnzimmer installiert (dort läuft für den Fernseher auch eine FHEM-Instanz). Dort klappt soweit alles.
Lediglich zwei Dinge habe ich zu bemängeln: Wenn ich umschalte zwischen Kodi (läuft auch auf Wohnzimmer), TV (Fernseher am SVIDEO-Eingang des Grabbers verbunden) oder HDMI (HDMI-Converter am Chinch-Eingang des Grabbers) dann benötigt Hyperion ein paar Sekunden zum Umschalten. Das Umschalten selbst habe ich mit einem Notify gelöst. Dieser ließt aus, welcher Input am Fernseher zzt. gewählt ist und lädt entsprechend die notwendige Konfigurationsdatei. Das könnte jedoch etwas schneller gehen.

Das zweite, was ich bemängle ist vermutlich ein Bug, den ich jedoch noch nicht reproduzieren konnte:
Nachdem ersten lokalen Setup des Moduls lief der TV einige Stunden (teils unbeaufsichtigt). Als ich dann die Quelle am TV (Input) umgeschaltet habe reagierte das Modul nicht, sondern blieb sturr auf dem bereits gewählten Input.
Als ich dann per Terminal den Hyperion-Deamon gestoppt habe (und mir das per sudo service Hyperion status auch bestätigt habe) lief trotzdem das Ambilight weiter - OHNE Hyperion!
Dieser Fehler trat jedoch seitdem nicht mehr auf.

DeeSPe

Danke dass Dir mein Modul gefällt!

Na dann mal Stück für Stück...

Der passwortlose SSH Zugang zu einem anderen System muss auf dem FHEM Server für den User fhem eingerichtet werden und nicht für den User pi.
Auf dem entfernten Zielsystem (da wo Hyperion läuft) muss in die sudoers der User aufgenommen werden der sich dann passwortlos anmeldet.
Wenn auf dem Zielsystem ein Raspbian läuft, dann braucht nichts in die sudoers eingetragen werden weil Du Dich da mit dem User pi anmelden kannst und dieser hat im Raspbian eh schon sudo Rechte. Ich hoffe ich habe dass jetzt so erklärt dass es verstanden werden kann...  8)

Die sudoers Rechte sind nötig um den Prozess hyperiond zu killen und mit neuer Konfigurationsdatei neu zu starten.
Dadurch dass Dein User (noch) keine sudo Rechte hat, konnte der Prozess nicht gekillt werden. Danach wurde aber eine neue Instanz von hyperiond im Userkontext gestartet, deswegen blieb Hyperion laufen nachdem Du es (vermutlich) per systemctl gestoppt hast.

Wenn passwortloser Zugang und sudoers richtig konfiguriert sind, dann sollten alle Probleme der Vergangenheit angehören.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Grinsekatze

Ok, ich hoffe ich habs verstanden. Dann muss ich aber erstmal auf dem FHEM-Server den Benutzer fhem anmeldbar machen (um mit diesem dann per SSH auf den Hyperion Pi zuzugreifen / die dafür nötigen Zertifikate zu erstellen).

Am Zielsystem muss ich ja ein User wählen, der dort auch existiert. Dort läuft OSMC. Also ist der Benutzer pi nicht da, dafür aber osmc. Der hat auch sudo-Rechte. Deshalb muss ich dort dann pi in die sudoers eintragen.

Oder meinst Du, dass auf dem FHEM-Server der Benutzer fhem in die sudoers muss. Sonst macht es ja keinen Sinn den Benutzer pi auf dem Hyperion Pi einzutragen, sondern müsste vielmehr der Nutzer fhem da rein?

Ich bin gleich zuhause. Dann probiere ich es mal.

Danke

DeeSPe

Also in Deinem konkreten Fall:
osmc hat sudo Rechte auf de System, also kein Eintrag in sudoers nötig.
Im Hyperion Device in FHEM konfigurierst Du das Attribut hyperionSshUser auf osmc.
Damit Du Dich mit dem User osmc passwortlos am Hyperion Host anmelden kannst benötigt der User fhem die entsprechenden Dateien dafür in seinem Home-Ordner, also normalerweise /opt/fhem/.
Wenn Du den passwortlosen Zugang mit dem User pi auf dem FHEM Host erstellt hast  und es mit pi auch passwortlos klappt, dann brauchst Du eigentlich nur den Ordner /home/pi/.ssh/ und dessen Inhalt nach /opt/fhem/ kopieren. Danach aber die Besitzrechte anpassen, etwa so:
sudo mkdir /opt/fhem/.ssh
sudo cp /home/pi/.ssh/* /opt/fhem/.ssh/
sudo chown -R fhem:dialout /opt/fhem/.ssh


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Grinsekatze

Vielen Dank!

Soweit hatte ich das schon alles probiert, doch auf die Idee mit dem fhem-Benutzer anstatt pi bin ich nicht gekommen. Nun klappt es wunderbar!!

juppzupp

Ich habe höchstwahrscheinlich eine inkompatible hyperiond Version.

readingsProxy wettertemp 19
Global global DEFINED wz_TVLicht
Hyperion wz_TVLicht serverResponse: ERROR
Hyperion wz_TVLicht ERROR
Hyperion wz_TVLicht serverResponse: ERROR
Hyperion wz_TVLicht ERROR
Connection closed by foreign host.


Fhem stirbt beim Anlegen.


Spezialtrick

Aktualisiere einfach mal dein Hyperion über Hypercon und sichere vorher deine Configs.

Das gleich Problem hatte ich auch.
FHEM - Debmatic - Zigbee2MQTT - Homekit

juppzupp

Ein Modul das eine falsche Antwort bekommt sollte nicht fhem zum Sterben bringen.