Abend!
Vielen Dank, das funktioniert bei mir auch so!
Aber wo hast du denn die Befehle her? Suche auch noch (fast wichtiger) Amazon Prime.
Und wie machst du die Bedieunung? Cursortasten?
Könntest du das mal zeigen? Screenshot?
Ich habe leider bzgl. der Steuerung des TVs nichts Vorzeigbares. Probiere gelegentlich nur mit den vorhandenen Code-Schnipseln etwas herum. Den Befehl für Netflix habe ich aus der Doku zu dem LGTV2-Node-Package abgeleitet -> https://www.npmjs.com/package/lgtv2#systemlauncherlaunch
Würde mich ja gerne an einem Modul versuchen aber ich verstehe nicht wie das mit dem Handshake abläuft. Und immer den fest im Code hinterlegten Handshake-String zu senden finde ich jetzt auch nicht soo mega. Möchte den String lieber selbst erzeugen aber bisher habe ich keinen Plan wie das geht.
Danke für die rasche Antwort! Ich werds nochmal probieren und berichten…
Wie hast du Visualisierung gemacht? Webfront?
Der Grund ist, das die mitgelieferte Fernbedienungn so unterirdisch schlecht ist, das ich eigentlich lieber mit IPS den LG bedienen möchte.
Es wird bei uns (Kinder) so wie so nur Netflix und Prime geguckt und natürlich von der NAS die alten (guten) Kinderserien…
Perfekt wäre natürlich eine kleine „Videostation“ (Syn NAS) in IPS…
Wie gesagt, ich habe die Einbindung bzw. die Visualisierung bei mir bisher noch gar nicht umgesetzt. Eventuell komme ich jetzt in der bevorstehenden Urlaubszeit dazu mich näher damit zu beschäftigen.
Ich habe bereits in den Javascript-Abwandlungen für die LG-webOS-Steuerung gesehen, dass man über den Websocket-Zugang auf jeden Fall auch Tasten wie UP, DOWN, LEFT, RIGHT usw. senden kann. Habe aber noch nicht durchblickt wie das in der PHP-Variante auszusehen hat.
Weiß zufällig jemand ob man den Timer für das automatische Abschalten des TVs per Script aktivieren/steuern kann?
Hallo,
ich würde gerne meinen LG über die HomeMatic nur ausschalten. Mehr brauche ich da nicht.
Hat einer eine Idee, wie so ein Skript aussehen könnte. Ich würde das dann einfach mit einer HM Variable verknüpfen und damit den Ausschaltbefehl ausüben.
Gruß
Marc
Hast Du Dich mal hier orientiert und die Skripte angelegt. Die IP vom TV anpassen.
Ausschalten ist dann
<?php
includeScript(12345); // Objekt ID vom 1.Skript "webos"
function includeScript($scriptID)
{
$s = IPS_GetScript($scriptID);
include($s['ScriptFile']);
}
$tv = new webOSTV("XXX.XXX.XXX.XXX",3000,"0afd4c4xxxxxxxxxx"); // IP des TV eintragen, LG Client-Key eintragen
$tv->lg_handshake();
$tv->turnOff()
Zusätzlich muss noch in dem ersten Skript im Beitrag 53
Noch eine bloede Anfaengerfrage. Die Skripte fangen alle mit <?php an. Wird dann trotzdem danach noch mit <? in Zeile 3 begonnen?
Und, sehe ich das richtig, dass das erste Skript ohne Ereignis laufen wird, das zweite Skript nur zur einmaligen Ermittlung der Client-ID noetig ist und das dritte dann den jeweiligen Befehl ausfuehrt und ueber ein Ereignis angestossen wird?
Wenn hier noch <? im Forum in Beiträgen steht, dann ist das inzwischen überholt ein PHP Skript fängt immer mit
<?php
an. Danach folgt dann auch kein weiteres <? mehr. <? ist die alte Schreibweise, die neue ist <?php.
Also sämtliche Skripte, die Du hier im Forum findest ,die mit <? anfangen sind durch <?php am Anfang des Skripts zu ersetzten.
Das erste Skript dient zum abspeichern der Klasse. Eine Klasse ist so was wie ein Bauplan für ein Objekt. Ein Objekt hat Eigenschaften, diese Eigenschaften werden über Methoden angesprochen. Eine Klasse enthält also eine Anzahl an Methoden um das Objekt zu steuern. Wenn Dich das näher interessiert kannst Du z.B. hier lesen wie Klassen und Objekte funktionieren. Das erste Skript wird dem eigentlichen ausführenden Skript zur Verfügung gestellt über include. Das Ereignis wird also nicht auf das Skript 1 gelegt sondern am Schluss auf das Skript 3. Der Inhalt von Skript 1 wird in Skript 3 geladen. So muss der Code von Skript 1 auch nur einmal vorhanden sein.
Ich habe keine LG TV, aber so viel ich das verstanden habe ja.
Das dritte Skript ist das Skript in dem der eigentliche Befehl ausgeführt wird. Auf diesem Skript liegt dann auch ein Ereignis wenn gewünscht.
includeScript(12345); // Objekt ID vom 1.Skript "webos"
function includeScript($scriptID)
{
$s = IPS_GetScript($scriptID);
include($s['ScriptFile']);
}
Damit wird der Code aus dem ersten Skript geladen, der Code muss also auch bei mehreren Befehlen, d.h. mehreren Skripten, nur einmal im ersten Skript vorhanden sein.
$tv = new webOSTV("XXX.XXX.XXX.XXX",3000,"0afd4c4xxxxxxxxxx"); // IP des TV eintragen, LG Client-Key eintragen
Erzeugt aus der Klasse (Bauplan) ein Objekt $tv, das ist Dein Fernseher. Eine Klasse hat den Vorteil, dass man mehrere Objekte erzeugen kann. Jeder TV hat also die gleichen Eigenschaften wie an/aus, lauter/leiser. das einzige was den Fernseher von einem anderen Gerät unterscheidet ist die IP Adresse und der Client Key. Der Code der Klasse bleibt immer gleich.
$tv->turnOff()
ruft die Methode in Deinem Objekt $tv, dein Fernseher, auf um das Gerät auszuschalten.
Das ist ein Weg, eine Alternative wäre einfach direkt in IP-Symcon z.B. auf einem Schalter zu reagieren. Wie man das macht ist einem am Schluss selber überlassen.