FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: Rince am 10 Februar 2014, 15:52:01

Titel: [gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 10 Februar 2014, 15:52:01
Edit:
Raspberry mit HDMI Verbindung kann das, nachdem man den CEC Client installiert hat.
Links dazu und der Befehl zum Einschalten findet sich in Post #10
http://forum.fhem.de/index.php/topic,20032.msg147625.html#msg147625

Edit Ende...


Der Beitrag entstand eigentlich hier:
http://forum.fhem.de/index.php/topic,19968.0.html
Da er aber vom Thena abweicht, gibts nen extra Thread :)


Bezüglich dem TV Einschalten, wenn es per Netzwerk nicht geht:

Habe dazu im Moment 2 verschiedene Ideen, die mir beide nicht richtig gut gefallen:

Variante 1:
iTach => ein WLAN IR Umsetzer mit fhem Unterstützung. Auch wenn das einzige was ich brauche, letztlich ein einziger IR Code ist, der Rest geht über LAN. iTach liegt noch im Karton, kam noch nicht dazu.

Vorteil:
fhem kann den TV einschalten
Original FB geht uneingeschränkt

Nachteil:
nicht eben preiswert
Man muss prüfen, ob der TV an ist, sonst schaltet man automatisiert um oder aus (und Presence ist oft auf present,  auch wenn der TV augenscheinlich aus ist)


Variante 2:
Entgegen dem, was man öfter im Netz liest, geht zumindest der Samsung sehr wohl an, wenn man per Steckdose den Strom anschaltet. Habe neulich einige HM Aktoren verbaut, und deshalb die Hauptsicherung ausgeschaltet. Dabei ist es mir aufgefallen. Ob es daran lag, dass der TV an war, habe ich noch nicht geprüft, wäre aber wichtig zu wissen.
Aber in jedem Fall brauche ich auch noch nen IR Empfänger an fhem, um rauszufinden ob wer mit der Fernbedienung den Fernseher einschaltet, um die Funksteckdose anzuwerfen.

Vorteil:
Wenn TV aus, dann ist er aus

Nachteil:
Wenn man Aufnahmen programmiert hat, muss  man das berücksichtigen
IR Empfangshardware braucht man auch noch


Variante 3
Irgend etwas, was über HDMI die Glotze anwirft



Wie löst ihr das denn bei euch?
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: marvin78 am 10 Februar 2014, 15:55:13
Mein Samsung TV geht nur dann bei Stromzufuhr an, wenn er vor dem Ausschalten des Aktors an war. Nimmt man den Strom weg, wenn der TV im Standby war, dann ist er auch bei Strom an wieder im Standby. Das wäre bei Variante 2 zu beachten.

EDIT: Ich löse es mit IRTrans. Auch nicht billig.
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: mi.ke am 11 Februar 2014, 01:08:44
Ich lasse vom FS20 IRF anschalten, Rest geht über LAN.

btw.Ich könnte noch einen für die Küche gebrauchen . . .
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Starkstrombastler am 11 Februar 2014, 07:38:26
Zu Variante 3:

http://forum.fhem.de/index.php/topic,16189.msg131342.html#msg131342
(http://forum.fhem.de/index.php/topic,16189.msg131342.html#msg131342)
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: justme1968 am 11 Februar 2014, 09:23:37
statt itach gibt es noch andere lösungen für fhem und ir.

aus dem stehgreif fällt mir der fs20 ir sender ein, ein cuno, ein  raspberry pi oder wenn du noch mehr bastel kannst oder willst ein panstamp oder ein andere arduino per firmata.

gruss
  andre
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Invers am 11 Februar 2014, 09:44:45
FS20 IRF scheint derzeit nirgends lieferbar zu sein.

Folgende Überlegung gehört sicher nicht hier rein, aber ich werfe es mal in die Runde:
Ich war vorigen Monat bei Conrad, um diverse Sachen einzukaufen. Da habe ich aber nicht mehr alles gefunden. So z.B. den 4-fach Wandsender.
Eine Nachfrage hat ergeben, dass angebleich die Sortimente FS20 und Homematic zusammengeführt werden sollen.
Eine Anfrage bei einem anderen Verkäufer hat das jedoch nicht bestätigt. Der Verkäufer verhielt sich aber eigenartig. Den Lügendetektortest hätte der sicher nicht bestanden.
Als ich vor einigen Tagen erneut bei Conrad war, waren auch die Keymatic verschwunden, welche im Monat davor in Massen herumlagen und sogar zum Test und zur Ansicht aufgebaut waren. Einen Ausverkauf schliesse ich aufgrund der damals vorhandenen Menge aus. Wieder fragte ich den Verkäufer und erhielt die Antwort, er würde die gerade nicht finden (er hatte mit mir zusammen danach gesucht), weil gerade umgeräumt wurde. Auch den Aussen-Bewegungsmelder konnte ich nicht kaufen, weil er nicht da war.
Nun weiss ich nicht, ob da was Wahres dran ist mit der Zusammenlegung, aber da nun immer mehr Komponenten verschwinden, könnte es schon sein.
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 11 Februar 2014, 15:43:06
Was mich an den IR Teilen stört, ist die Plazierung der Sender :(

Auf die Empfänger kleben (sind 2x davon beim iTach dabei) fällt auf Grund des WAF aus, jedenfalls beim Sammy, und weiter hinten im Zimmer (für die HighPower LED) fehlt entweder der Stellplatz oder der Strom, um einen brauchbaren Winkel zu bekommen.

Die Idee mit dem RasPi ist gut. Jedenfalls im Ansatz.
Ein RasPi steht eh unter der Glotze, da läuft mein fhem drauf.

Wenn es jetzt eine Möglichkeit gäbe, den HDMI Ausgang softwaregesteuert Ein/Auszuschalten, könnte man das in einen fhem Befehl umwandeln. Dann könnte man 10 Sekunden später den Eingang wieder auf LiveTV schalten, und die Kiste liefe.
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 11 Februar 2014, 15:57:36
Kaum sucht du was, findest was :)
http://the-martins.org/?p=81
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=64&t=7570

Vielleicht hat sich das Problem damit gelöst.
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: mi.ke am 12 Februar 2014, 10:49:08
Cool !

Hast Du's schon getestet ?

Funktionierts ?

PS.
Dann kommt der IRF in die Küch . . .
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 13 Februar 2014, 00:07:40
Noch nicht.
Verbringe meine freie Zeit zur Zeit in Warteschleifen und mit Telekom Technikern, die seit 16.1. versuchen, meinen VDSL Anschluss zum laufen zu bekommen,

Langsam glaube ich, der DSLAM ist im Eimer...

Das ist quasi das letzte, was noch nicht getauscht wurde.
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 10 März 2014, 17:01:16
Sodala.

Läuft auf diese Art und Weise:

Benötigt:
Raspberry mit HDMI Kabel an TV
(in meinem Fall ein Samsung es8090)

Man muss libcec installieren.
Für wheezy auf dem RasPi kann man 1:1 nach dieser Anleitung gehen:
http://www.raspberrypi.org/forum/viewtopic.php?f=29&t=70923 (http://www.raspberrypi.org/forum/viewtopic.php?f=29&t=70923)

Das dauert ca. 15 Minuten, der RasPi ist nicht so fix im compilieren. Nach dem "make" kann man getrost die ein oder andere Tasse Kaffe trinken gehen.

Ist alles durch, so helfen folgende Befehle:

(Bitte den RasPi vorher neu starten!)

Einschalten
echo "on 0" | cec-client -s
(er schaltet übrigens dabei gleich in den TV Modus, man muss also nicht mal hinterher irgend etwas umstellen)


Ausschalten
echo "standby 0" | cec-client -s


Damit sollte das lästige Problem:
Wie kann fhem den Fernseher einschalten erledigt sein :)

Schön wäre, wenn noch Besitzer anderer Marken das ausprobieren könnten.
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Starkstrombastler am 10 März 2014, 22:42:17
Ich kann meinen Philips TV mit den Prozeduren ein- und ausschalten.
Allerdings geht er nicht automatisch in den TV-Modus, sondern bleibt auf dem Kanal, an dem der RPi angeschlossen ist. Aber das ist ja kein Problem.

Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: tpm88 am 12 März 2014, 09:11:35
Prima, funktioniert auch mit Panasonic VIERA LCD (Modell von 2012). Das Einschalten allerdings nur, wenn im VIERA Setup Menu bei den Verbindungseinstellungen "Auto Ein" beim Start von via HDMI angeschlossenen Geräten aktiviert ist.

Und noch eine Ergänzung - falls auf dem RasPi RASPBMC läuft, fehlen für den configure / compile des cec-clients nötige Firmware Librariers und Includes im Verzeichnis /opt/vc.

Fehler beim Step configure ist dann folgender:
configure: error: Raspberry Pi API not found or incompatible with libCEC

Bei mir hat es mit folgendem Workaround geklappt:

1. RasPi Firmware in ein separates Verzeichnis (z.B. /home/fw) herunterladen. Vorsicht - braucht fast 3GB Freiplatz!!
mkdir /home/fw
cd /home/fw
sudo git clone https://github.com/raspberrypi/firmware.git


2. Vor dem configure / make des cec-clients folgende Symlinks anlegen:
cd /opt/vc
sudo ln -s /home/fw/opt/vc/lib .
sudo ln -s /home/fw/opt/vc/include .


Tobias
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 12 März 2014, 12:41:18
Prima.
Übrigens kann das Ding noch einigs mehr:
http://www.cec-o-matic.com/

Wobei natürlich klar ist, dass nicht alle Geräte jeden Befehl beherrschen, und noch viel weniger, dass sie ihn richtig umsetzen.

Die Frage ist, nachdem CEC ja doch halbwegs universell ist, ob es sich lohnt, daraus ein fhem Modul zu basteln?
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Markus am 23 Oktober 2014, 00:45:13
Bei mir will das nicht so recht :-(
über die Konsole startet der TV jedesmal
aber was gebe ich bei fhem ein?
gebe ich"echo 'test' | wall" in fhem ein sehe ich das Ergebnis in der Konsole!
aber "echo "on 0" | cec-client -s" funktioniert nicht

Gruß Markus
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 24 Oktober 2014, 13:37:25
Ja, da war noch was...

Ich glaube es lag an den Rechten! Du musst dem CEC Teil auch umfangreiche Rechte einräumen, deinem fhem User entsprechend...

Genaueres fürchte ich, kann ich dir im Moment nicht sagen, da der entsprechende RasPi nicht mehr lebt...
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: der-Lolo am 24 Oktober 2014, 13:59:14
Mittlerweile gibt es auch den Harmony Hub als IR gerät - vielleicht ist das das richtige für dich.
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Markus am 24 Oktober 2014, 14:12:35
Danke für die Antworten!

Über die Konsole kann ich den TV ja schon Starten
Nur über FHEM will es nicht so recht  :'(

FHEM hat sogar root rechte also sollte es doch klappen oder?
ich habe schon alle Möglichen Kombinationen ausprobiert die mir eingefallen sind
{system('sudo echo "on 0" | cec-client -s');;}
{system('echo "on 0" | cec-client -s');;}
{('echo "on 0" | cec-client -s')}



im log erhalte ich so etwas
DEBUG:   [               2] trying to autodetect all CEC adapters
sudo: no tty present and no askpass program specified
autodetect FAILED

DEBUG:   [              16] trying to autodetect all CEC adapters
autodetect FAILED
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Doggiebert am 24 Oktober 2014, 14:24:25
Ich hab' jetzt meine Raspi fhem.cfg nicht greifbar, aber ich glaub' bei mir sieht's so aus (ohne Gewähr, aus dem Gedächtnis):
{system("sudo echo \"on 0\" | cec-client -s")}

Hab's gestern abend hingekriegt - musste am Receiver noch was freischalten, da der zwischen Raspi und Samsung TV hängt.
Bin immer mehr begeistert von Raspi+FHEM, schön langsam wird das echt brauchbar. Auch wenn eine Methode nicht greift, findet sich immer noch eine andere Lösung. So, nun kann ich den TV per cec-client einschalten, alles andere sollte per STV Modul gehen.
Infrarotlösungen sind immer mit Vorsicht zu genießen, da lass nur mal die Sonne kräftig reinscheinen...

Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Markus am 24 Oktober 2014, 14:38:40
Nein das war's leider auch nicht

:'(
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Doggiebert am 24 Oktober 2014, 14:57:31
Ich schau dann heut' abend mal nach, wie's bei mir genau ist. Die Fehlermeldung klingt aber eher nach einem anderen Problem.
Ich hab den cec-client normal über apt-get installiert, und nix an den Rechten gedreht, allerdings hab ich auch FHEM auf Raspi nicht Fritzi.

Kannst Du denn andere sudo-Statements fehlerfrei ausführen? Probier mal einen einfachen "sudo echo hallo" aus...
Vielleicht ist es ja auch das Problem:
http://stackoverflow.com/questions/21659637/sudo-no-tty-present-and-no-askpass-program-specified-netbeans (http://stackoverflow.com/questions/21659637/sudo-no-tty-present-and-no-askpass-program-specified-netbeans)

P.S.: Bei allem, was ich hier so lese, sind die paar Euro für ne Raspi-Anschaffung und das bissl mehr an Stromkosten vielleicht keine schlechte Investition...  ???
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: dieda am 24 Oktober 2014, 16:11:33
Hab da noch ne blöde Frage:

Mein Samy hat ja nur einen HDMI/DVI-Anschluss, der ist ja schon belegt mit einem Droiden auf den ich ungern verzichten will. Funktioniert dieser Workaround auch an jedem beliebigen Anschluss oder wenn ich die Raspy über den AVR  (Onkoy TRX) anschließe?
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Doggiebert am 24 Oktober 2014, 16:28:23
Mein Samy hat 3 HDMI-Anschlüsse *prahl*  8) , aber bei mir läuft auch alles über den Onkyo, d.h. auch Raspi --> Onkyo --> Samy, weil ich ja auch mal per XBMC Musik hören will, ohne den Fernseher einschalten zu müssen. In dem Setup kann ich problemlos vom Raspi aus den TV einschalten.
Muss nur an Samy & Onky richtig konfiguriert sein. Beim Samsung natürlich CEC einschalten (dort heisst's ja AnyNet), und beim Onkyo hab ich die HDMI-Steuerung ausgeschaltet (dort heissts RIHD), aber den Raspi Eingang auf HDMI-Thru konfiguriert. Damit sollte der Onkyo nicht auf CEC reagieren und aber Kommandos zum Samsung durchlassen. Kann aber nur einer der Eingänge zum Ausgang durchgeschleift werden.
Am Onkyo brauche ich CEC eh nicht, weil der sich komplett über LAN steuern lässt.

Erhöht zwar lt. Fernbedienung den Standbyverbrauch, ist mir aber relativ wurscht, weil das eh an einer (FHEM-)schaltbaren Steckdose hängt.
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: dieda am 24 Oktober 2014, 16:36:06
Danke, ich wollte nat. auf Nummer sicher gehen... 8)

Dann werde ich mir mal die Mühe machen und die Raspi umziehen lassen... CEC ist ja schon aktiviert... Schaue mir das dann auch mal für den Droiden an...
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Markus am 24 Oktober 2014, 16:43:08
Ich bin vor zwei Wochen auf einen Raspi umgezogen sorry hab mein Profil vergessen zu aktualiesieren ;-)

Also FHEM läuft auf raspi
wenn ich bei fhem "echo 'Hallo' | wall" eingebe sehe ich das Ergebnis in der Konsole
bei "sudo echo hallo" geschied nichts

über putty funktioniert :sudo echo hallo und echo hallo
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: mi.ke am 26 Oktober 2014, 13:56:10
Hi,

hat schon jemand den CEC Client auf einem Cubietruck zum laufen bekommen?

Cheers
mi.ke
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Markus am 28 Oktober 2014, 23:10:15
ich hab es nicht geschaft den TV über den Raspberry zu starten :-(
aber dieser post hat mich trotzdem geholfen ich starte jetzt meinen DVD Player über FS20 IRF das Funktioniert super und der starten meinen Panasonic TV über cec HDMI
wenn der TV läuft schalte ich den DVD einfach wieder aus und der TV schaltet automatisch um auf den DVB um :-)

Gruss Markus
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 29 Oktober 2014, 07:10:11
Ahhhhh
Mir ist es wieder eingefallen :)

Ich hab den Startbefehl in eine Datei geschrieben, selbige ausführbar gemacht und diese Datei von fhem aus angeworfen :)



Ansonsten zu CEC
An welchem HDMI Anschluss der RasPi hängt, ist gem. Spezifikation völlig wurscht. Genau genommen ist CEC ein Bussystem, wo jedes Gerät eine Nummer bekommt.
Welche Nummer, ist abhängig von der Geräteklasse. Der TV hat immer 0 wenn ich recht erinnere. Deshalb dürfte es z.B. mit 2 TV Geräten Ärger geben.

Mit einem Cubietruck wird es nicht funktionieren, weil der kein CEC kann soweit ich weiß.

Von wo in dem Bus das Signal losgetreten wird, ist egal.
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: holzwurm83 am 29 Dezember 2014, 02:00:22
Hallo zusammen,

habe das gestern auch mal mit meinem Samsung TV ausprobiert. Allerdings bin ich über diese Anleitung darauf gekommen und habe erst dann den Beitrag hier im Forum gesehen.
http://constey.de/2014/10/fernseher-ueber-hdmi-per-raspberry-pi-steuern-cec/ (http://constey.de/2014/10/fernseher-ueber-hdmi-per-raspberry-pi-steuern-cec/)

Das hat auf anhieb auch funktioniert.

Was nicht gleich ging war das Ein- und Ausschalten aus Fhem heraus. Wenn man sich per ssh auf einen RPI schalte, oder direkt ein Terminal öffnet sollte der TV bei Eingabe von
echo "on 0" | sudo cec-client -s -d 1
an gehen.

Will man den TV aus Fhem heraus starten muss man
{`echo "on 0" | sudo cec-client -s -d 1`}
eingeben.

Wichtig ist dabei das der Benutzer mit dem Fhem ausgeführt wird auch sudo rechte hat.

Ich musste dazu in die Datei
/etc/sudoers
mit
sudo vi /etc/sudoers
um folgenden Eintrag ergänzen
fhem ALL=(ALL) NOPASSWD: ALL
da mein Benutzer "fhem" heißt.

Man kann die sudo Freigabe auch nur auf den CEC-Client beschränken, aber das habe ich noch nicht rausgefunden.

Ich kann den TV jetzt Ein- und Ausschalten und die HDMI Kanäle ändern. Andere Befehle konnte ich nicht wirklich in Erfahrung bringen. Habe mich auch auf http://www.cec-o-matic.com (http://www.cec-o-matic.com) umgeschaut, aber irgendwie verstehe ich das nicht.
Wie kann ich z.B. die Lautstärke wechseln? Wie müsste dafür der Befehl lauten?
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Schlimbo am 22 Januar 2015, 13:04:07
Hallo zusammen,

ich habe mich jetzt auch mal mit der TV-Einschalt-Geschichte beschäftigt und finde die Idee über die CEC Steuerung sehr schön!

Installation nach Anleitung hat auf meinen Raspberry super funktioniert, mit der Steuerung aus FHEM heraus hatte ich anfänglich auch meine Problemchen.

Der Hinweiß von holzwurm83 brachte mich aber dann auch zum Ziel.

habe FHEM aber nicht volle Root Rechte gegeben sondern nur für die CEC Steuerung:

In der sudoers Datei habe ich folgendes hinzugefügt:

sudoers öffnen:   sudo visudo

bei "Cmnd alias specification":

# Cmnd alias specification
Cmnd_Alias FHEM = /usr/local/bin/cec-client


bei "User privilege specification":
# User privilege specification
fhem    ALL=(root) NOPASSWD: FHEM


Beim Aufruf in FHEM ist auch noch darauf zu achten backticks (`  `) und keine normalen Anführungszeichen ('  ') zu verwenden, das hatte ich nämlich anfänglich auch falsch geschrieben.
Erst der Copy/Paste von holzwurm83's code hat mich darauf aufmerksam gemacht:
ZitatWill man den TV aus Fhem heraus starten muss man
{`echo "on 0" | sudo cec-client -s -d 1`}
eingeben.

Gruß Schlimbo
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: holzwurm83 am 24 Januar 2015, 23:56:40
Hallo Schlimbo,

Danke für das Feedback mit den begrenzten  Rechten!

Hast du das damit den Befehlen raus? Ich würde auch gerne die Lautstärke und die Kanäle vom TV schalten können aber irgendwie komme ich mit der CEC Befehlsseite nicht zum Erfolg.
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Schlimbo am 25 Januar 2015, 16:34:21
Hi holzwurm83,
so ganz habe ich das mit der Steuerung auch noch nicht raus, ich benötige momentan auch nur das Ein- und Ausschalten, da die restliche Steuerung von anderen Modulen übernommen wird. (PHTV, ENIGMA2, und Yamaha_AVR).

Hier mein aktueller Stand:

Eine Befehlsübersicht kann mit folgendem Befehl ausgegeben werden: "echo h | cec-client -s -d 1"
echo h | cec-client -s -d 1
opening a connection to the CEC adapter...

================================================================================
Available commands:

[tx] {bytes}              transfer bytes over the CEC line.
[txn] {bytes}             transfer bytes but don't wait for transmission ACK.
[on] {address}            power on the device with the given logical address.
[standby] {address}       put the device with the given address in standby mode.
[la] {logical address}    change the logical address of the CEC adapter.
[p] {device} {port}       change the HDMI port number of the CEC adapter.
[pa] {physical address}   change the physical address of the CEC adapter.
[as]                      make the CEC adapter the active source.
[is]                      mark the CEC adapter as inactive source.
[osd] {addr} {string}     set OSD message on the specified device.
[ver] {addr}              get the CEC version of the specified device.
[ven] {addr}              get the vendor ID of the specified device.
[lang] {addr}             get the menu language of the specified device.
[pow] {addr}              get the power status of the specified device.
[name] {addr}             get the OSD name of the specified device.
[poll] {addr}             poll the specified device.
[lad]                     lists active devices on the bus
[ad] {addr}               checks whether the specified device is active.
[at] {type}               checks whether the specified device type is active.
[sp] {addr}               makes the specified physical address active.
[spl] {addr}              makes the specified logical address active.
[volup]                   send a volume up command to the amp if present
[voldown]                 send a volume down command to the amp if present
[mute]                    send a mute/unmute command to the amp if present
[self]                    show the list of addresses controlled by libCEC
[scan]                    scan the CEC bus and display device info
[mon] {1|0}               enable or disable CEC bus monitoring.
[log] {1 - 31}            change the log level. see cectypes.h for values.
[ping]                    send a ping command to the CEC adapter.
[bl]                      to let the adapter enter the bootloader, to upgrade
                          the flash rom.
[r]                       reconnect to the CEC adapter.
[h] or [help]             show this help.
[q] or [quit]             to quit the CEC test client and switch off all
                          connected CEC devices.
================================================================================


wie oben zu sehen, sind die Befehle:
echo "on 0" | sudo cec-client -s -d 1
echo "standby 0" | sudo cec-client -s -d 1

einige wenige, die man so direkt eingaben kann.

Alle anderen Befehle werden über "tx" und einem Zahlencode gesteuert:
Beispiel "Lautstärke erhöhen":
echo "tx 40 44 41" | sudo cec-client -s -d 1

Beschreibung:
tx : transfer bytes over the CEC line
4 :  Sender --> Playback 1
0 :  Empfänger --> TV
44: Enables remote control commands to be passed through to other devices within the system.
41: Kommando --> Volume up

Die Befehle können auf http://www.cec-o-matic.com/  (http://www.cec-o-matic.com/) sehr einfach zusammengestellt werden.

Allerdings reagiert mein Fernseher auf sehr wenige dieser Kommandos. Aber damit kannst du ja mal etwas Testen.

Eine Beschreibung der Befehlszusammensetzung findest du auch unter: http://wiki.kwikwai.com/index.php?title=CEC_command_syntax (http://wiki.kwikwai.com/index.php?title=CEC_command_syntax)

Gruß Schlimbo

Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Paul.baumann am 07 Februar 2015, 14:12:09
Hallo zusammen,

ich nutze StreamRadio und habe meinen Raspberry via HDMI mit meinem Samsung AV-Receiver verbunden. Über CEC-Client kann ich nun den AVR einschalten und gleich den richtigen HDMI-Eingang aktivieren.

Anschließend werden aber keine weiteren Befehle vom CEC-Client verarbeitet. Erst wenn ich direkt am AVR einen anderen HDMI-Eingang auswähle, kann ich wieder erfolgreich Befehle senden und so den AVR z.B. ausschalten.

Hat jemand eine Idee, warum es nicht klappt, wenn am AVR der Eingang mit dem Raspberry aktiv ist?

Paul
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 07 Februar 2015, 14:29:22
Wenn du das StreamRadio mal weg läßt, gehen dann mehr Befehle?
Noch alternativer:
Tipp doch mal die Befehle auf der Konsole ein. Vielleicht verrät dir die Ausgabe näheres?
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Paul.baumann am 07 Februar 2015, 14:53:44
Auch ohne StreamRadio geht nicht mehr. Ich teste direkt in der Konsole.

Hier die Ausgabe für den Ausschaltbefehl, wenn es nicht geht:

Zitat
DEBUG:   [            1019]     << Recorder 1 (1) -> Audio (5): POLL
TRAFFIC: [            1019]     << 15
TRAFFIC: [            1111]     << 15
DEBUG:   [            1202]     >> POLL not sent
DEBUG:   [            1202]     Audio (5): device status changed into 'not present'
NOTICE:  [            1203]     << putting 'Audio' (5) in standby mode
DEBUG:   [            1203]     not sending command 'standby': destination device 'Audio' marked as not present
DEBUG:   [            1203]     unregistering all CEC clients

So sieht es aus wenn es geht:

Zitat
DEBUG:   [            1167]     expected response received (90: report power status)
DEBUG:   [            1169]     << Recorder 1 (1) -> Audio (5): POLL
TRAFFIC: [            1170]     << 15
DEBUG:   [            1231]     >> POLL sent
DEBUG:   [            1231]     Audio (5): device status changed into 'present'
DEBUG:   [            1231]     << requesting vendor ID of 'Audio' (5)
TRAFFIC: [            1232]     << 15:8c
TRAFFIC: [            1425]     >> 5f:87:00:00:f0
DEBUG:   [            1425]     >> Audio (5) -> Broadcast (F): device vendor id (87)
DEBUG:   [            1425]     Audio (5): vendor = Samsung (0000f0)
DEBUG:   [            1427]     expected response received (87: device vendor id)
DEBUG:   [            1428]     replacing the command handler for device 'Audio' (5)
NOTICE:  [            1428]     << putting 'Audio' (5) in standby mode
TRAFFIC: [            1429]     << 15:36
DEBUG:   [            1490]     unregistering all CEC clients

Nachtrag:
Es funktioniert!
Das 4. HDMI-Kabel brachte den Erfolg.


Danke Paul
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: aliate am 04 März 2015, 18:33:57
Guten Abend,

hat hier jemand das Ganze schon mit einem LG TV hinbekommen?
Ich habe einen LG LA6918 und möchte diesen auch über meinen Raspberry Pi (in Verbindung mit fhem) steuern.  Auf dem Raspberry habe ich libcec nach der hier geposteten Anleitung installiert, doch leider macht mein TV beim absetzten der Befehle über die ssh Terminalverbindung nichts.

Im Internet habe ich schon mehrere Anleitungen und "Befehlsschreibweisen" versucht, außerdem habe ich vier verschiedene HDMI-Kabel an allen möglichen HDMI-Anschlüssen des TV's getestet.

Beim Absetzen dieses Befehls echo "standby 0" | cec-client -s erhalte ich folgende Rückmeldung:

opening a connection to the CEC adapter...
DEBUG:   [              95]     unregistering all CEC clients
DEBUG:   [              96]     Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [              98]     InitHostCEC - vchiq_initialise succeeded
DEBUG:   [              99]     InitHostCEC - vchi_initialise succeeded
DEBUG:   [             100]     InitHostCEC - vchi_connect succeeded
DEBUG:   [             102]     logical address changed to Free use (e)
DEBUG:   [             103]     Open - vc_cec initialised
NOTICE:  [             104]     connection opened
DEBUG:   [             106]     << Broadcast (F) -> TV (0): POLL
DEBUG:   [             107]     initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             110]     << e0
DEBUG:   [             112]     processor thread started
DEBUG:   [             172]     >> POLL sent
DEBUG:   [             173]     TV (0): device status changed into 'present'
DEBUG:   [             174]     << requesting vendor ID of 'TV' (0)
TRAFFIC: [             175]     << e0:8c
TRAFFIC: [             385]     >> 0f:87:00:e0:91
DEBUG:   [             386]     >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [             387]     TV (0): vendor = LG (00e091)
DEBUG:   [             388]     expected response received (87: device vendor id)
DEBUG:   [             389]     replacing the command handler for device 'TV' (0)
DEBUG:   [             390]     TV (0): CEC version 1.3a
DEBUG:   [             391]     TV (0): menu language set to 'eng'
NOTICE:  [             392]     registering new CEC client - v2.2.0
DEBUG:   [             394]     detecting logical address for type 'recording device'
DEBUG:   [             395]     trying logical address 'Recorder 1'
DEBUG:   [             396]     << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [             397]     << 11
TRAFFIC: [             488]     << 11
TRAFFIC: [             609]     >> 0e:8c
DEBUG:   [             610]     >> POLL not sent
DEBUG:   [             611]     using logical address 'Recorder 1'
DEBUG:   [             611]     Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [             612]     Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [             613]     Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [             614]     Recorder 1 (1): CEC version 1.4
DEBUG:   [             614]     AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [             616]     logical address changed to Recorder 1 (1)
DEBUG:   [             616]     Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [             617]     Recorder 1 (1): menu language set to 'eng'
DEBUG:   [             619]     GetPhysicalAddress - physical address = 3000
DEBUG:   [             619]     AutodetectPhysicalAddress - autodetected physical address '3000'
DEBUG:   [             619]     Recorder 1 (1): physical address changed from ffff to 3000
DEBUG:   [             620]     << Recorder 1 (1) -> broadcast (F): physical adddress 3000
TRAFFIC: [             621]     << 1f:84:30:00:01
NOTICE:  [             773]     CEC client registered: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 3.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi' 'EXYNOS', git revision: b3d938a, compiled on: Tue Mar  3 19:26:37 UTC 2015 by root@raspberrypi on Linux 3.18.7+ (armv6l)
DEBUG:   [             775]     Recorder 1 (1): vendor = LG (00e091)
DEBUG:   [             776]     replacing the command handler for device 'Recorder 1' (1)
DEBUG:   [             776]     Recorder 1 (1): CEC version 1.3a
DEBUG:   [             777]     << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [             777]     << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [            1109]     >> 01:8f
DEBUG:   [            1109]     >> TV (0) -> Recorder 1 (1): give device power status (8F)
DEBUG:   [            1110]     << Recorder 1 (1) -> TV (0): on
TRAFFIC: [            1110]     << 10:90:00
DEBUG:   [            1114]     << requesting power status of 'TV' (0)
TRAFFIC: [            1352]     >> 0f:87:00:e0:91
DEBUG:   [            1353]     >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [            1354]     << Recorder 1 (1) -> Broadcast (F): vendor id LG (e091)
TRAFFIC: [            1355]     << 1f:87:00:e0:91
TRAFFIC: [            1537]     >> 01:8c
DEBUG:   [            1539]     >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
TRAFFIC: [            1538]     << 10:8f
DEBUG:   [            1691]     << Recorder 1 (1) -> TV (0): vendor id LG (e091)
TRAFFIC: [            1692]     << 1f:87:00:e0:91
TRAFFIC: [            1904]     >> 01:1a:01
DEBUG:   [            1905]     >> TV (0) -> Recorder 1 (1): give deck status (1A)
DEBUG:   [            1906]     >> Recorder 1 (1): deck status changed from 'stop' to 'LG other'
DEBUG:   [            1907]     << Recorder 1 (1) -> TV (0): deck status 'LG other'
TRAFFIC: [            1908]     << 10:1b:20
TRAFFIC: [            2089]     >> 01:46
DEBUG:   [            2089]     >> TV (0) -> Recorder 1 (1): give osd name (46)
DEBUG:   [            2090]     << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [            2091]     << 10:47:43:45:43:54:65:73:74:65:72
TRAFFIC: [            2452]     >> 01:89:01
DEBUG:   [            2453]     >> TV (0) -> Recorder 1 (1): vendor command (89)
DEBUG:   [            2454]     Recorder 1 (1): power status changed from 'on' to 'standby'
DEBUG:   [            2455]     << Recorder 1 (1) -> TV (0): standby
TRAFFIC: [            2456]     << 10:90:01
TRAFFIC: [            2607]     << 10:89:02:05
DEBUG:   [            2694]     expected response not received (90: report power status)
TRAFFIC: [            2819]     << 10:8f
NOTICE:  [            2821]     SL initialised
TRAFFIC: [            3001]     >> 01:90:00
DEBUG:   [            3002]     >> TV (0) -> Recorder 1 (1): report power status (90)
DEBUG:   [            3003]     TV (0): power status changed from 'unknown' to 'on'
DEBUG:   [            3004]     expected response received (90: report power status)
NOTICE:  [            3006]     << putting 'TV' (0) in standby mode
TRAFFIC: [            3007]     << 10:36
DEBUG:   [            3158]     unregistering all CEC clients
NOTICE:  [            3160]     unregistering client: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 3.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi' 'EXYNOS', git revision: b3d938a, compiled on: Tue Mar  3 19:26:37 UTC 2015 by root@raspberrypi on Linux 3.18.7+ (armv6l)
DEBUG:   [            3161]     Recorder 1 (1): power status changed from 'standby' to 'unknown'
DEBUG:   [            3162]     Recorder 1 (1): vendor = Unknown (000000)
DEBUG:   [            3162]     Recorder 1 (1): CEC version unknown
DEBUG:   [            3163]     Recorder 1 (1): osd name set to 'Recorder 1'
DEBUG:   [            3164]     Recorder 1 (1): device status changed into 'unknown'
TRAFFIC: [            3165]     >> 01:46
DEBUG:   [            3166]     >> TV (0) -> Recorder 1 (1): give osd name (46)
TRAFFIC: [            3167]     >> 01:89:01
DEBUG:   [            3167]     >> TV (0) -> Recorder 1 (1): vendor command (89)
TRAFFIC: [            3169]     >> 0f:87:00:e0:91
DEBUG:   [            3170]     >> TV (0) -> Broadcast (F): device vendor id (87)
TRAFFIC: [            3172]     >> 01:1a:01
DEBUG:   [            3169]     unregistering all CEC clients
DEBUG:   [            3173]     >> TV (0) -> Recorder 1 (1): give deck status (1A)
TRAFFIC: [            3218]     >> 01:8f
DEBUG:   [            3219]     >> TV (0) -> Recorder 1 (1): give device power status (8F)
TRAFFIC: [            3339]     >> 01:90:00
DEBUG:   [            3339]     >> TV (0) -> Recorder 1 (1): report power status (90)
TRAFFIC: [            3459]     >> 01:00:36:04
DEBUG:   [            3459]     >> TV (0) -> Recorder 1 (1): feature abort ( 0)
DEBUG:   [            3460]     marking opcode 'standby' as unsupported feature for device 'TV'
DEBUG:   [            4117]     UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [            4119]     logical address changed to Broadcast (f)


Beim Absetzen dieses Befehls echo "pow 0" | sudo cec-client -s -d 1  (Power-Status auslesen) erhalte ich folgende Rückmeldung:


opening a connection to the CEC adapter...
power status: on


Dieser Befehl funktioniert also bzw. der Status des Fernsehers wird korrekt ausgelesen.

CEC bzw. Simplink ist aktiviert und der Raspi wird auch (zumindest zeitweise) als "CECTester" im TV ausgewiesen.


Evtl. kann mir jemand helfen bzw. was mit der obigen Rückmeldung anfangen.

Vielen Dank und schöne Grüße

Hermann
Titel: Antw:Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Sailor am 10 März 2016, 21:35:14
Hallo Rince

Zitat von: Rince am 10 März 2014, 17:01:16
Einschalten
echo "on 0" | cec-client -s
(er schaltet übrigens dabei gleich in den TV Modus, man muss also nicht mal hinterher irgend etwas umstellen)


Ausschalten
echo "standby 0" | cec-client -s


Damit sollte das lästige Problem:
Wie kann fhem den Fernseher einschalten erledigt sein :)

Schön wäre, wenn noch Besitzer anderer Marken das ausprobieren könnten.

Also einschalten geht, aber in StandBy kriege ich meinen Fernseher dannach nicht mehr.  :o

Gruss
    Sailor
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Rince am 11 März 2016, 07:14:43
Ich muss gestehen, ich hab grad keinen RasPi mit Debian an einer Glotze hängen.

Muss in meinen 2 Jahre alten Erinnerungen suchen:
Hast du mal ein paar andere Befehle ausprobiert?
Weiterhin musst du dem Fernseher explizit erlauben, mit sich mit CEC steuern zu lassen (wie auch immer dein TV Hersteller CNC nennt; Anynet z.B.)
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: harald654 am 24 November 2016, 23:27:28
Hallo,

bei mir funktionieren die Befehle über SSH (Putty):
echo "on 0" | sudo cec-client -s -d 1
echo "standby 0" | sudo cec-client -s -d 1


Mir ist nur nicht klar wie ich die Befehle mit FHEM absetzen kann.
Wie macht ihr das?


Gruß,
H
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: justme1968 am 24 November 2016, 23:32:19

"echo \"on 0\" | sudo cec-client -s -d 1"
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: harald654 am 25 November 2016, 00:01:15
Hallo justme1968,

mir geht es darum wie man überhaupt solche befehle mittels FHEM senden kann, gibt es hierfür ein Modul?

Gruß,
H.
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Otto123 am 25 November 2016, 01:02:04
Zitat von: harald654 am 25 November 2016, 00:01:15
Hallo justme1968,

mir geht es darum wie man überhaupt solche befehle mittels FHEM senden kann, gibt es hierfür ein Modul?

Gruß,
H.
Genauso wie justme1968 geschrieben hat, hier nachlesen -> http://fhem.de/commandref_DE.html#command

Gruß Otto
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: harald654 am 25 November 2016, 13:36:45
Hallo Otto,

ich versteh es leider immer noch nicht  :-\
Bis jetzt habe ich versucht den Befehle über die Eingabeleiste (oben) zu senden, das scheint aber nicht zu funktionieren.
Im Log steht:
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

sudo: no tty present and no askpass program specified

nach dem ich fhem rootrechte vergeben habe (/etc/sudoers):
fhem ALL=(ALL) NOPASSWD: ALL
steht nun im Log:
opening a connection to the CEC adapter...
aber nichts passiert.
wenn ich in der Eingabeleiste:
{`echo "on 0" | sudo cec-client -s -d 1`}
eingebe, hängst sich FHEM komplett auf.


Edit: ok, mit den Befehlen:
"echo "on 0" | sudo cec-client -s -d 1"
"echo "standby 0" | sudo cec-client -s -d 1"

geht es jetzt  :)
Titel: Antw:[gelöst mit RasPi] Ideensammelthread, TV einschalten wenn Wake on Lan nicht geht
Beitrag von: Otto123 am 25 November 2016, 15:01:54
Hallo harald654,
Naja hat ja keiner gesagt, dass was in der Eingabezeile vom Terminal schon nicht geht, aus FHEM heraus gehen wird  ;D

Es ist keine gute Idee fehm zum "Dauer sudo" zu machen. Das ist ein dünnes Brett ...

Besser ist es mit ordentlichen Berechtigungen zu arbeiten, ich denke, dass man das auch mit dem cec-client hinbekommt.

Gruß Otto