NEWS
Multihost, mit exec hdmi cec-client starten
-
Hallo,
Ich verwende zwei Raspberry im Multihost Betrieb und möchte mit einem Blockly per exec den hdmi cec-client (am Slave) verwenden um einen Fernsehr ein und auszuschalten. Der Befehl kommt vom KNX Adapter der Auf dem Master installiert ist .Habe am Slave auch eine eigene Java Instanz installiert und das Blockly auf dieser Instanz erstellt.Habe schon einiges ausprobiert z.b. den Befehl zum Einschalten direkt von exec auszuführen,

oder mit exec ein kleines Script aufzurufen das im Ordner /home/iobroker liegt

Habe auch einen Hdmi-cec Adapter gefunden, leider ist der noch Alpha Status und dürfte nicht weiter verfolgt werden! https://forum.iobroker.net/topic/14027/iobroker-cec/7
leider funktioniert das alles nicht.
Der Master wurde mit Raspian-stretch aufgesetzt und der Slave mit Raspian -buster
Auf beiden Pi läuft nodejs 10.17.0 und npm 6.11.3hat jemand eine Idee, bzw kann mir helfen?
lg
Christoph -
Der cec-client ist auf dem Slave installiert wo auch der Fernsehr per hdmi angeschlossen ist.
Installiert habe ich mit dem Kommando "sudo apt-get install cec-utils" version 4.0.4 -
Hallo,
Ich verwende zwei Raspberry im Multihost Betrieb und möchte mit einem Blockly per exec den hdmi cec-client (am Slave) verwenden um einen Fernsehr ein und auszuschalten. Der Befehl kommt vom KNX Adapter der Auf dem Master installiert ist .Habe am Slave auch eine eigene Java Instanz installiert und das Blockly auf dieser Instanz erstellt.Habe schon einiges ausprobiert z.b. den Befehl zum Einschalten direkt von exec auszuführen,

oder mit exec ein kleines Script aufzurufen das im Ordner /home/iobroker liegt

Habe auch einen Hdmi-cec Adapter gefunden, leider ist der noch Alpha Status und dürfte nicht weiter verfolgt werden! https://forum.iobroker.net/topic/14027/iobroker-cec/7
leider funktioniert das alles nicht.
Der Master wurde mit Raspian-stretch aufgesetzt und der Slave mit Raspian -buster
Auf beiden Pi läuft nodejs 10.17.0 und npm 6.11.3hat jemand eine Idee, bzw kann mir helfen?
lg
Christoph@Chrisdor sagte in Multihost, mit exec hdmi cec-client starten:
hat jemand eine Idee, bzw kann mir helfen?
Geht es ohne sudo? Wenn nicht, musst du ioBroker erlauben, den Befehl per sudo auszuführen. sudo müsste dann aber vor cec-client stehen, nicht vor echo!
Dazu musst du folgende Zeile zur
sudoers-Datei hinzufügen (natürlich den korrekten Pfad ersetzen!):iobroker ALL=(ALL) /pfad/zu/cec-clientDas muss mit dem Befehl
visudogeschehen - hier steht wie: https://www.unixtutorial.org/how-to-use-visudo -
@Chrisdor dann musst du das kommando auch von der Javascript instanz die auf dem Slave läuft starten
-
@Chrisdor sagte in Multihost, mit exec hdmi cec-client starten:
hat jemand eine Idee, bzw kann mir helfen?
Geht es ohne sudo? Wenn nicht, musst du ioBroker erlauben, den Befehl per sudo auszuführen. sudo müsste dann aber vor cec-client stehen, nicht vor echo!
Dazu musst du folgende Zeile zur
sudoers-Datei hinzufügen (natürlich den korrekten Pfad ersetzen!):iobroker ALL=(ALL) /pfad/zu/cec-clientDas muss mit dem Befehl
visudogeschehen - hier steht wie: https://www.unixtutorial.org/how-to-use-visudo@AlCalzone sudoers ist auf meinem pi ein Ordner

muss ich die Zeile in die Datei iobroker einfügen?
oder wenn ich visudo eingebe komme ich zu dieser Datei

und hier einfügen?noch eine Frage: wie finde ich heraus wo der cec-client installiert wurde? habe den nur den Befehl sudo apt-get install cec-utils ausgeführt!
-
@AlCalzone sudoers ist auf meinem pi ein Ordner

muss ich die Zeile in die Datei iobroker einfügen?
oder wenn ich visudo eingebe komme ich zu dieser Datei

und hier einfügen?noch eine Frage: wie finde ich heraus wo der cec-client installiert wurde? habe den nur den Befehl sudo apt-get install cec-utils ausgeführt!
@Chrisdor sagte in Multihost, mit exec hdmi cec-client starten:
oder wenn ich visudo eingebe komme ich zu dieser Datei
Das müsste richtig sein. Du kannst aber auch eine extra Datei in dem gezeigten Ornder anlegen, aber auch die muss mit
visudobearbeitet werden, da sonst ein Syntaxfehler dein gesamtes System lahm legen kann.Die iobroker-Datei bitte nicht bearbeiten, das überschreibt sonst der Fixer.
wie finde ich heraus wo der cec-client installiert wurde
which cec-client -
Habe jetzt das "sudo" im im Blockly gändert

und den Befehl zu sudoers Datei hinzugefügt

klappt leider immer noch nicht! -
@Chrisdor Was passiert denn, wenn du den Befehl auf der Konsole als
iobrokerausführst?sudo su - iobroker -s /bin/bash echo "on 0" | sudo cec-client -s -d 1 -
@Chrisdor Ups, ich habe was vergessen... die Zeile in sudoers muss
iobroker ALL=(ALL) NOPASSWD: /usr/bin/cec-clientlauten
@AlCalzone funktioniert auch nicht, habe den Befehl auch nochmals als iobroker ausgeführt und es kommt wieder die Passwort abfrage
-
@AlCalzone funktioniert auch nicht, habe den Befehl auch nochmals als iobroker ausgeführt und es kommt wieder die Passwort abfrage
-
@AlCalzone habe nach dem ändern der sudoers einen reboot durchgeführt! hat leider auch nichts gebracht
-
@AlCalzone habe jetzt mal zum testen den iobroker in sudoers so geändert wie "root" selbst da bekomme ich eine Passwort abfrage wenn ich den Befehl als user iobroker ausführe

-
Habe das Problem gelöst!!!!!
ich habe den Eintrag "iobroker" in sudoers wieder gelöscht und im Ordner /etc/sudoers.d einen neuen Ordner mit dem Name iobroker2 angelegt. In iobroker2 habe ich folgendes eingetragen

jetzt funktioniert das Kommando echo "on 0" | sudo cec-client -s -d 1 als user iobroker in der Konsole ohne Passwort abfrage.Habe auch noch etwas am script geändert.

verwende jetzt ein anderes "falls Object. -
Habe das Problem gelöst!!!!!
ich habe den Eintrag "iobroker" in sudoers wieder gelöscht und im Ordner /etc/sudoers.d einen neuen Ordner mit dem Name iobroker2 angelegt. In iobroker2 habe ich folgendes eingetragen

jetzt funktioniert das Kommando echo "on 0" | sudo cec-client -s -d 1 als user iobroker in der Konsole ohne Passwort abfrage.Habe auch noch etwas am script geändert.

verwende jetzt ein anderes "falls Object. -
@Chrisdor Jetzt hast du allen Usern erlaubt, den Befehl als sudo ohne Passwort auszuführen. Ist in diesem Fall vermutlich ok, damit sollte man aber aufpassen.
@AlCalzone habe jetzt den Befehl "ALL ALL=NOPASSWD: /usr/bin/cec-client wieder gelöscht. Wenn ich es richtig verstanden habe sollte jetzt nur der user iobroker die Erlaubnis haben! Oder?
Es funktioniert zumindest noch! -
@Chrisdor Jetzt hast du allen Usern erlaubt, den Befehl als sudo ohne Passwort auszuführen. Ist in diesem Fall vermutlich ok, damit sollte man aber aufpassen.
@AlCalzone Danke für deine Hilfe, hätte ich allein nicht geschaft!!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden

