Modul für aktuelle LG-TVs?

Begonnen von oxident, 09 September 2013, 21:38:33

Vorheriges Thema - Nächstes Thema

Grinsekatze

Ich komm nicht weiter.

Nachdem ich das 2012 Modul eingebunden habe und es soweit auch funtkioniert, habe ich jetzt Probleme mit dem Poweroncmd.

Ich habe ein Attribut hinzugefügt:
define FernseherWohnzimmer LGTV2012 192.168.178.20
attr FernseherWohnzimmer2 pairingcode 123456
attr FernseherWohnzimmer2 room Wohnzimmer
attr FernseherWohnzimmer2 poweroncmd "echo 'on 0' | cec-client -s -d 1"


Wenn ich auf der Kommandozeile (mittels SSH)
Zitatecho 'on 0' | cec-client -s -d 1
eingebe, dann schaltet der Fernseher auch ein.

Probiere ich es aus FHEM heraus mit dem Befehl Power_on, dann erhalte ich im Logfile nur
Zitat2016.06.11 15:31:06 2: LGTV2012: TV Response :
sh: 1: echo 'on 0' | cec-client -s -d 1: not found

Kamm mir Jemand bei der Umsetzung behilflich sein?

fiedel

Setze mal noch ein sudo davor. Kann sein, dass du auf der Konsole root bist, der Ben. fhem jedoch nicht.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Grinsekatze

#272
Ich hab's jetzt auch mal mit einem sudo probiert, doch weiterhin kein Erfolg.
Langsam weiß ich nicht weiter. Ich hab auch libwww-perl und libxml-simple-perl istalliert, wie hier beschrieben: http://www.tatsch.it/controlling-lg-televisions-fhem/.

Edit:
Nachdem ich nun mal die Anführungszeichen entfernt habe, bekomme ich nun immerhin eine Fehlermeldung (mit und ohne sudo):
Zitat* failed to open vchiq instance
.
Das konnte ich lösen, indem ich den Benutzer fhem zur Gruppe video hinzugefügt habe:usermod -a -G video fhem

Danach bekam ich jedoch die Meldung von fhem, dass kein cec-client gefunden werden konnte. Auf der Konsole klappt es auch nicht mehr. Nach einem Neustart klappts wieder auf der Konsole, aber nicht aus fhem heraus. Irgendwie dreh ich mich im Kreis.


fiedel

Dann gib mal den Pfad zum cec-client mit an. Wenn es in der Shell geht, geht es auch aus FHEM.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Grinsekatze

Zitat von: fiedel am 17 Juni 2016, 10:10:39Wenn es in der Shell geht, geht es auch aus FHEM.

Das ist auch meine stille Überzeugung - und zumindest mit meiner letzten Fhem Installation war das auch noch so, doch bekomm ich's hier nicht hin.

Ich habe OSMC installiert und FHEM nachinstalliert. mit einem cec-client -l bekomme ich auch angezeigt, dass der Client erkannt wird.

Auf der Konsole benutze ich inzwischen diese Befehle (geht mit und ohne sudo), wobei ausschalten nicht klappt (bekomme die Fehlermeldung: Segmentation fault): sudo echo "on 0" | /usr/osmc/bin/cec-client -s -d 1
sudo echo "standby 0" | /usr/osmc/bin/cec-client -s -d 1


Zum testen habe ich nun einmal ein Dummy und zwei Notifys gebaut, um nicht auf das Modul zugreifen zu müssen:
define FernseherWohnzimmer dummy
attr FernseherWohnzimmer webCmd toggle:on:off
attr FernseherWohnzimmer setList state:on,off

define FernseherWohnzimmerOn notify FernseherWohnzimmer:on {system("sudo echo 'on 0' | /usr/osmc/bin/cec-client -s -d 1 &")}
define FernseherWohnzimmerOff notify FernseherWohnzimmer:off {system("sudo echo 'standby 0' | /usr/osmc/bin/cec-client -s -d 1 &")}


Ebenfalls habe ich in der /etc/sudoers noch folgenden Eintrag gemacht (unterhalb der User privilege specifications):
fhem ALL=(ALL) NOPASSWD: /usr/osmc/bin/cec-client


Wenn ich den Dummy nun in Fhem einschalte bekomme ich im Log lediglich:
ZitatFernseherWohnzimmerOn return value: -1

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
opening a connection to the CEC adapter...
Der Fernseher (ein LG) bleibt jedoch aus.

fiedel

Da bin ich auch ratlos wie Rudi...   ;D Den sudoers Eintrag der das "no tty present and no askpass program specified"- Problem behebt, hast du ja auch schon drin. Reboot wirst du danach auch gemacht haben? Die Lösung ist sicher ganz einfach, aber da muss jetzt noch mal jemand drübergucken, der das Modul mit dem CEC- Client nutzt.
Die Idee mit dem Dummy war übrigens sehr gut! Du kannst zum Testen aber auch den Systembefehl direkt in die Eingabezeile pasten und abschicken. So mache ich das immer (aus Faulheit).  ;)

Viel Erfolg!
Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Markus Bloch

Der Befehl ist falsch:

echo "on 0" | sudo /usr/osmc/bin/cec-client -s -d 1
echo "standby 0" | sudo /usr/osmc/bin/cec-client -s -d 1


echo brauch keine Root-Rechte um was auszugeben ;-)

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Grinsekatze

#277
Danke, so klappt's!

Jetzt muss ich nur noch das Ausschalten lauffähig machen - aber das liegt nicht an Fhem, sondern an dem System selbst.

Durch das Umstellen von sudo bekomme ich jetzt immerhin kein Segmentation fault Fehler mehr. Jedoch geht der TV trotzdem nicht aus - weder aus Fhem noch von der Konsole.

vitolinker

Hallo Forum,

habe einen aktuellen LG EG9109 und die Verbindung zu WebOS mit dieser Anleitung zum Laufen gebracht:
https://knx-user-forum.de/forum/%C3%B6ffentlicher-bereich/geb%C3%A4udetechnik-ohne-knx-eib/823383-ip-control-der-neuen-lg-webos-tv-s

Die Files waren noch etwas zu debuggen, aber dann konnte ich Nachrichten auf den Fernseher schicken und anzeigen lassen.
Weitere Kommandos sind hier zu finden (habe allerdings noch nicht testen können):
https://www.npmjs.com/package/lgtv2#audiogetstatus

Ich teste auf einem aktuellen Raspberry Pi 3.
Musste php5 installieren mit
sudo apt-get install php5

Aufruf des skriptes mit
php test-lg-webos.php
(beide anhängende Dateien befinden sich in einem beliebigen Verzeichnis, aus dem heraus die Skripte aufgerufen werden)

Nach dem ersten Aufruf wurde auf dem eingeschalteten LG im gleichen Netzwerk eine Verbindungsanfrage bestätigt.
Anschließend das test-lg-webos.php Skript anpassen wie im Kommentar beschrieben mit dem nun erhaltenen Key.

Todo:
Vielleicht kann jemand das php-Skript in Perl überführen und mit den Kommandos in ein Modul für FHEM gießen?
Stelle mich gerne als Tester zur Verfügung. Leider sind meine Perl-Kenntnisse sehr übersichtlich und nicht ausreichend hierzu.

Quick and Dirty:
Hier könnte man das Test Skript abwandeln und per FHEM direkt per CLI ausführen, quasi jedes Kommando ein eigenes Skript...

Bin gespannt, ob es jemanden hier hilft oder ob wir hier gemeinsam ein Modul entwickeln können.

Viele Grüße

the ratman

hoi, super! endlich tut sich da mal was sinnvolles *bg*

das testscript werkelt auf anhieb bei mir.
schad nur, dass ich wohl ned wirklich selber was mit anfangen werd können, aber ich denk, da findet sich sicher einer hier.
→do↑p!dnʇs↓shit←

destogl

Hallo zusammen,

ich habe den Modul 75_LGTV_RS232 vom Markus Bloch erweitert mit Funktionen, der ich in die Anleitungen (siehe post von HardLife: https://forum.fhem.de/index.php/topic,51044.msg427013.html#msg427013) und in lg-tv-command Programmen (aus den GitHub) gefunden habe.

Die Dokumentation habe ich auch am Ende des Dokuments hinzugefügt.

Achtung: Ich muss noch alle Funktionen testen, da manche ggf. nicht richtig funktionieren. Es gibt auch ein Paar Funktionen die sehr komplexe Parameter haben, da muss man sich überlegen, ob möglich ist die auch sinnvoll zu integrieren.

micky0867

Mein 55LA7909-ZA scheint seit einiger Zeit spontane Reboots zu machen.
Bild kurz weg, LG-Symbol leuchtet auf, Bild wieder da.

Ich bin mir nicht sicher, ob es was mit dem Fhem Modul zu tun hat, haber in einem anderen Forum von Problemen mit Plex und dlna gelesen.
Habe ihn jetzt erstmal wieder aus Fhem entfernt.

Werde berichten, falls er jetzt doch noch bootet.

Ma_Bo

Hey micky0867,
das gleiche Phänomen machte meiner auch schon mal, dies ist aber seit dem das Modul bei mir läuft, erst 2x oder 3x passiert. (TV über WLan angebunden und über das IP Modul von hier in FHEM integriert)

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

destogl

Zitat von: vitolinker am 03 August 2016, 20:03:43
habe einen aktuellen LG EG9109 und die Verbindung zu WebOS mit dieser Anleitung zum Laufen gebracht:
https://knx-user-forum.de/forum/%C3%B6ffentlicher-bereich/geb%C3%A4udetechnik-ohne-knx-eib/823383-ip-control-der-neuen-lg-webos-tv-s

....

Stelle mich gerne als Tester zur Verfügung. Leider sind meine Perl-Kenntnisse sehr übersichtlich und nicht ausreichend hierzu.

....

Bin gespannt, ob es jemanden hier hilft oder ob wir hier gemeinsam ein Modul entwickeln können.

Hallo vitolinker,

ich habe angefangen einen Modul zu schreiben. Bisher habe ich geschafft den Fernseher ansprechen, bzw. Connect aus dem PHP  in Perl implementieren. Dafür braucht man momentan auch geänderte HttpUtils.pm.

Fallst du lust hast es schnell zu testen kannst versuchen mit: define WZ_TV_IP LGTV_IP14 <IP>

Notwendige Module sind im Anhang. In nächsten Tagen mache ich weiter.

Intruder1956

Hallo destogl,
habe dein Modul mal installiert, oder besser versucht  ;)
Meldung im log
2016.11.23 15:33:19 1: reload: Error:Modul 82_LGTV_IP14 deactivated:
Can't locate String/Random.pm in @INC (you may need to install the String::Random module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl ./FHEM) at ./FHEM/82_LGTV_IP14.pm line 38.
BEGIN failed--compilation aborted at ./FHEM/82_LGTV_IP14.pm line 38.

2016.11.23 15:33:19 0: Can't locate String/Random.pm in @INC (you may need to install the String::Random module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl ./FHEM) at ./FHEM/82_LGTV_IP14.pm line 38.
BEGIN failed--compilation aborted at ./FHEM/82_LGTV_IP14.pm line 38.


Gruß Werner
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,