Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. lgtv Adapter zur Steuerung von LG WebOS SmartTVs

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    lgtv Adapter zur Steuerung von LG WebOS SmartTVs

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      pix last edited by

      Hallo,

      du kannst das Kommando umformulieren in

      "Alexa, schalte HDMI1 ein" oder "Alexa, schalte Eingang1 ein"

      und dann in den Cloud-Adapter Einstellungen ein Smartgerät zufügen, das den Datenpunkt````
      lgtv.0.input

      
      Vielleicht verwendest du auch gleich eine Szene, um auch noch andere Kommandos zuzufügen.
      
      Gruß
      
      Pix
      1 Reply Last reply Reply Quote 0
      • L
        LaGra last edited by

        Hallo pi.

        Genau so habe ich es ja versucht. Aber es geht nicht.

        Alexa schaltet nicht um.

        Ich kann aber momentan auch nicht schreibe wie ich will, da ich hier in der Tapatalk App rumtümpel.

        Ich habe mein Passwort neu angefordert aber es kommt nix.

        Keine Ahnung, warum Tapatalk läuft?

        Sollte dies ein Admin lesen….. seid so nett und schaut mal wieso ich keine Mail für ein neues Passwort bekomme.

        Gesendet von meinem SM-G935F mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • V
          VANTOM last edited by

          Wie kann ich in blocky die eingänge schalten?

          1 Reply Last reply Reply Quote 0
          • V
            VANTOM last edited by

            oder könnte mir bitte einer ein script zeigen in dem der LG TV eingeschaltet wird und dann auf den jeweilig gewählten Eingang springt… hab schon probiert aber es geht nichts... werde mich wohl in java weiter rein arbeiten müssen... ein Beispiel wär echt super...

            1 Reply Last reply Reply Quote 0
            • L
              LaGra last edited by

              An die Frage hänge ich mich mal ran. Würde mich auch interessieren.

              LG scheint nicht verbreitet zu sein in der iobroker Gemeinde :lol:

              1 Reply Last reply Reply Quote 0
              • S
                SchuetzeSchulz last edited by

                Einschalten geht leider nicht. Das gibt die API nicht her.

                Zumindest habe ich diesbezüglich in der LG WebOS API nichts gefunden 😞

                1 Reply Last reply Reply Quote 0
                • H
                  hobbyquaker last edited by

                  Über das API geht das nicht, wenn der Fernseher aus ist ist der Smart Dienst inaktiv und es steht kein API zur Verfügung. Bei den meisten WebOS TVs geht es aber über WOL, falls das vom Fernseher nicht unterstützt wird bleibt nur der Workaround via Infrarot.

                  1 Reply Last reply Reply Quote 0
                  • L
                    LaGra last edited by

                    Mir persönlich geht es mehr um eingänge von lg.0.input.

                    Eingeschalten wird der TV ohnehin per broadlink.

                    1 Reply Last reply Reply Quote 0
                    • L
                      LaGra last edited by

                      Hallo nochmals.

                      Ich habe die letzten beiden Tage damit verbracht ein wenig zu tüfteln. Nun ist es mir gelungen

                      lg.0.input per Script zu setzten und zu starten.

                      
                      on({id: 'javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink', change: "ne"}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        if (getState("javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink").val === false) {
                          setState( "lgtv.0.input"/*Select input source*/,'HDMI_1',on);
                        }
                      });
                      
                      

                      Allerdings ist dieser Code mangels meiner Kompetenz in Javascript doch recht unsauber und wirft eine Warnung in den Log

                      "javascript-0 2017-11-23 08:10:19.474 warn State "undefined" not found"

                      Kann mir hier jemand mit mehr Erfahrung bitte helfen?

                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Hallo,
                        @LaGra:

                        Hallo nochmals.

                        Ich habe die letzten beiden Tage damit verbracht ein wenig zu tüfteln. Nun ist es mir gelungen

                        lg.0.input per Script zu setzten und zu starten.

                         
                         
                        on({id: 'javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink', change: "ne"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          if (getState("javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink").val === false) {
                            setState( "lgtv.0.input"/*Select input source*/,'HDMI_1',on);
                          }
                        });
                        
                        

                        Allerdings ist dieser Code mangels meiner Kompetenz in Javascript doch recht unsauber und wirft eine Warnung in den Log

                        "javascript-0 2017-11-23 08:10:19.474 warn State "undefined" not found"

                        Kann mir hier jemand mit mehr Erfahrung bitte helfen? `
                        mir ist nicht klar, wie du detektierst, ob der Fernseher eingeschaltet wurde.

                        Dein Skript reagiert auf die (De-)Aktivierung des Skriptes javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink, das hakt ziemlich.

                        Du musst dir klar machen, dass du die Skripte nicht aktivieren oder deaktivieren musst. Sie laufen immer. Innerhalb der Skripte gibt es Funktionion (on() oder schedule), die zB einzelne Datenpunkte überwachen und einen Code ausführen, sobald eine definierte Änderung eintritt oder eine Zeit erreicht wird (schedule()).

                        Ich schalte meinen TV per harmony-hub ein. So könnte ich dort auf einen Datenpunkt horchen und dann etwas zeitversetzt (bis der TV tatsächlich an ist) einen Befehl zum Kanalwechsel senden. Wie genau schaltest du deinen Fernseher ein?

                        Pix

                        1 Reply Last reply Reply Quote 0
                        • L
                          LaGra last edited by

                          Via Broadlink wird der TV eingeschalten.

                          1 Reply Last reply Reply Quote 0
                          • L
                            LaGra last edited by

                            Hallo Pix.

                            Mir geht es nicht darum den LG Fernseher einzuschalten. Dies erledigt mein Broadlink via IR.

                            Ich versuche im laufenden Betrieb des TV diesen auf zB.: HDMI 1 umzuschalten.

                            on({id: 'javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink', change: "ne"}, function (obj) {
                              var value = obj.state.val;
                              var oldValue = obj.oldState.val;
                              if (getState("javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink").val === false) {
                                setState( "lgtv.0.input"/*Select input source*/,'HDMI_1',on);
                              }
                            });
                            

                            oder auch

                            on({id: 'javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink', change: "ne"}, function (obj) {
                              var value = obj.state.val;
                              var oldValue = obj.oldState.val;  {
                                setState( "lgtv.0.input",'HDMI_1' );
                              }
                            });
                            

                            Tun dies mit zB.: Alexa, schalte Steamlink ein.

                            Der Script wird erkannt und der TV schaltet auch auf HDMI1 um.

                            Nur leider etwas unsauber, da er eine Fehlermeldung in den Log schreibt.

                            ` > javascript.0 2017-11-24 08:59:10.498 info Start javascript script.js.Kanäle_TV.HDMI_Steamlink

                            javascript.0 2017-11-24 08:59:10.491 warn at Object. (script.js.Fernseher.Steamlink:4:5)

                            javascript.0 2017-11-24 08:59:10.473 warn Wrong type of lgtv.0.input: "string". Please fix, while deprecated and will not work in next versions. `

                            Ich wollte später auch HDMI2 und HDMI3 jeweils durch einen eigenen Script mit Alexa steuerbar machen. So das ich meine

                            PS4 und Kodibox nutzen kann.

                            Ich habe keine Erfahrung mit Javascript und bin daher froh, dass ich es bis hierher schon geschafft habe. Allerdings nervt mich diese Fehlermeldung.

                            Wie kann ich die umgehen? Ein Scriptbeispiel wäre echt nett, da ich sonst wirklich nur Bahnhof verstehe, wenn die ITler mit

                            ihren Texten um die Ecke kommen.

                            MfG LaGra

                            1 Reply Last reply Reply Quote 0
                            • G
                              gBonfire last edited by

                              –> javascript.0 2017-11-24 08:59:10.473 warn Wrong type of lgtv.0.input: "string". Please fix, while deprecated and will not work in next versions.

                              Hallo zusammen,

                              ....hatte die gleiche Fehlermeldung auch mal.

                              Bei mir lag die Ursache darin begründet, dass ich wegen des ganzen verzweifelten rumprobierens (beschäftige mich erst seit gestern mit dem Thema und habe nur grosse Augen, was hier alles geleistet wird...) in den "Objekten" unter "lgtv.0.input" den Typ des Wertes auf Zahl gesetzt hatte.

                              Als ich dann dort den Typ auf "Zeichenkette" geändert hatte (also String) ging es.

                              Aber darf ich bei der Gelegenheit noch eine Frage stellen ?

                              Ich hatte auch ein wenig mit openHAB runprobiert.

                              Dort gab es ein "Binding", welches es erlaubte die Lautstärke direkt einzutragen (also gleich den Wert 30 z.B.) und es gibt im Gegenzug die Möglichkeit eines ChannelDown und eines ChannelUp.

                              Besteht hier in ioBroker ebenfalls dies Möglichkeit dies so zu nutzen ?

                              https://github.com/sprehn/openhab2-addo … /README.md

                              ..leider ist openHAB in meinen Augen für mich keine Alternative zu ioBroker.

                              Und falls dies nicht geht, besteht hier irgendwie die Möglichkeit eines "Featurerequests" ?

                              Nicht falsch verstehen, bitte, bitte. Das wäre nur das i-Tüpfelchen auf dem ganzen.

                              Zur Not ist es für mich auch nicht zu viel verlangt, wenn ich versuche openHAB für den Fernseher zu verwenden und für den Rest ioBroker 🙂

                              Herzlichen Dank und…... Ihr seid Klasse !!

                              Grüße

                              gBonfire

                              1 Reply Last reply Reply Quote 0
                              • L
                                LaGra last edited by

                                Hallo gBonfire.

                                Hättest du eventuell mal ein Codebeispiel für mich?

                                Edit.

                                Hat sich erledigt….. hab's geschnallt. Im Objekt.

                                Danke

                                1 Reply Last reply Reply Quote 0
                                • P
                                  pix last edited by

                                  @LaGra:

                                  Hallo Pix.

                                  Mir geht es nicht darum den LG Fernseher einzuschalten. Dies erledigt mein Broadlink via IR.

                                  Ich versuche im laufenden Betrieb des TV diesen auf zB.: HDMI 1 umzuschalten.

                                  on({id: 'javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink', change: "ne"}, function (obj) {
                                    var value = obj.state.val;
                                    var oldValue = obj.oldState.val;
                                    if (getState("javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink").val === false) {
                                      setState( "lgtv.0.input"/*Select input source*/,'HDMI_1',on);
                                    }
                                  });
                                  

                                  oder auch

                                  on({id: 'javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink', change: "ne"}, function (obj) {
                                    var value = obj.state.val;
                                    var oldValue = obj.oldState.val;  {
                                      setState( "lgtv.0.input",'HDMI_1' );
                                    }
                                  });
                                  

                                  Tun dies mit zB.: Alexa, schalte Steamlink ein.

                                  Der Script wird erkannt und der TV schaltet auch auf HDMI1 um.

                                  Nur leider etwas unsauber, da er eine Fehlermeldung in den Log schreibt.

                                  ` > javascript.0 2017-11-24 08:59:10.498 info Start javascript script.js.Kanäle_TV.HDMI_Steamlink

                                  javascript.0 2017-11-24 08:59:10.491 warn at Object. (script.js.Fernseher.Steamlink:4:5)

                                  javascript.0 2017-11-24 08:59:10.473 warn Wrong type of lgtv.0.input: "string". Please fix, while deprecated and will not work in next versions. `

                                  Ich wollte später auch HDMI2 und HDMI3 jeweils durch einen eigenen Script mit Alexa steuerbar machen. So das ich meine

                                  PS4 und Kodibox nutzen kann.

                                  Ich habe keine Erfahrung mit Javascript und bin daher froh, dass ich es bis hierher schon geschafft habe. Allerdings nervt mich diese Fehlermeldung.

                                  Wie kann ich die umgehen? Ein Scriptbeispiel wäre echt nett, da ich sonst wirklich nur Bahnhof verstehe, wenn die ITler mit

                                  ihren Texten um die Ecke kommen.

                                  MfG LaGra `

                                  Kannst du bitte das gesamte Skript posten, das den Fehler verursacht? Im Log steht, das Zeile 4 ab Zeichen 5 ein Problem macht.

                                  Die Zeile darunter sagt, dass der Datenpunkt mit einer Zeichenkette gefüllt wird. Das ist aber falsch. Ich vermute, es muss eine Zahl rein. Ich vermute 0 für HDMI1, 1 für HDMI 2 usw.

                                  Mit Steam Link kenne ich mich nicht aus. Gibt es einen Adapter, der das Signal schickt?

                                  Das zweite Code-Beispiel im zitierten Post hat ja auch einen Fehler: Da sind geschweifte Klammern, aber es gibt keine IF-Abfrage. Die davor stattfinden Zuweisung der Variablen ist auch nicht nötig, da diese Variablen nicht weiter verwendet werden.

                                  Sehe ich das richtig? Deine Alexa-Anbindung schaltet das ganze Skript javascript.0.scriptEnabled.Kanäle_TV.HDMI_Steamlink ein?

                                  Ich würde für jeden HDMI Kanal ein Boolean-Objekt anlegen und das als Smartobjekt mit Alexa verbinden

                                  const delay = 3; // Verzögerung in s bis zu Rückstellung der Objekte auf false
                                  
                                  const idHDMI1 = 'javascript.0.Kanäle_TV.HDMI1';
                                  const idHDMI2 = 'javascript.0.Kanäle_TV.HDMI2';
                                  const idHDMI3 = 'javascript.0.Kanäle_TV.HDMI3';
                                  const idKanal = "lgtv.0.input"/*Select input source*/;
                                  
                                  createStates(idHDMI1, false, {
                                     name: 'HDMI 1',
                                     type: boolean,
                                     role: 'switch',
                                     smartName:	{
                                         de: 'Eingang eins'
                                      }
                                  };
                                  createStates(idHDMI2, false, {
                                     name: 'HDMI 2',
                                     type: boolean,
                                     role: 'switch',
                                     smartName:	{
                                         de: 'Eingang zwei'
                                      }
                                  };
                                  createStates(idHDMI3, false, {
                                     name: 'HDMI 3',
                                     type: boolean,
                                     role: 'switch',
                                     smartName:	{
                                         de: 'Eingang drei'
                                      }
                                  };
                                  
                                  on(idHDMI1, function(obj) {
                                      if (obj.state.val) setState(idKanal, 0);
                                      setStateDelayed(idHDMI1, false, delay * 1000);
                                  });
                                  on(idHDMI2, function(obj) {
                                      if (obj.state.val) setState(idKanal, 1);
                                      setStateDelayed(idHDMI2, false, delay * 1000);
                                  });
                                  on(idHDMI3, function(obj) {
                                      if (obj.state.val) setState(idKanal, 2);
                                      setStateDelayed(idHDMI3, false, delay * 1000);
                                  });
                                  
                                  

                                  Das Skript setzt voraus, dass lgtv.0.input auf Zahlen wartet. Das Skript legt automatisch Smartnames an. Also nur Alexa Smarthome Geräte aktualisieren. Danach sollte "Alexa, schalte Eingang eins ein" auf HDMI1 schalten, usw.

                                  Nach dem Aufruf durch Alexa wird das Objekt auf true gesetzt und dadurch im Skript die entsprechende Funktion ausgelöst (1,2 oder 3). Darin wird dann der passende Befehl zum Schalten des TV abgesetzt (setState()). Damit Alexa später mal wieder auf diesen Eingang schalten kann (true), muss dieser wieder auf false zurückgesetzt werden. Das passiert dann zweitversetzt nach delay Sekunden.

                                  Bitte um Feedback!

                                  Pix

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    LaGra last edited by

                                    Hallo Pix.

                                    Hat sich bereits erledigt. Funktioniert jetzt alles zu meiner Zufriedenheit.

                                    Ich habe jetzt wie von gBonfire empfohlen den Type im Reiter Objekte von "Logikwert" auf "Zeichenkette" geändert

                                    3319_objekt.png

                                    und anschießend diesen Blockly getüftelt.

                                    3319_script.png

                                    Jetzt kann ich nachdem ich im Cloud Adapter den Script ausgewählt habe und mit Namen versehen habe

                                    diesen auch mit Alexa steuern.

                                    zB.: Alexa, Steamlink an

                                    Schon schaltet der TV auf HDMI1 ohne Fehlermeldung in Log.

                                    Das ganze geht auch mit lg.0.launch oder lg.0.channel

                                    bei lg.0.launch

                                    3319_livetv.png

                                    und bei lg.0.channel

                                    3319_rtl.png

                                    allerdings muss man bei lg.0.channel im Reiter Objekte keine Änderung vornehmen.

                                    > Mit Steam Link kenne ich mich nicht aus. Gibt es einen Adapter, der das Signal schickt?

                                    Würde mich freuen wenn es dafür mal irgendwann einen Adapter geben würde.

                                    Der Steamlink ist eine Streamingbox von Value um Steam Spiele auf dem TV zu spielen.

                                    MfG LaGra

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pix last edited by

                                      Hallo,

                                      danke fürs Posten der Lösung. Immer gut, wenn auf eine Frage auch die Lösung kommt. Dann könne auch andere profitieren.

                                      Adapterwünsche bitte separat in einem eigenen Thread veröffentlichen "Adapterwunsch: Steamlink"

                                      Gruß

                                      Pix

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dermario last edited by

                                        Hi, wie würde eine Lösung für

                                        "Alexa, Fernseher leiser" / lauter aussehen? Es müsste dann z.B. 5x auf "VolumeUp" gedrückt werden (weil man sonst die Veränderung nicht merkt) muss ja irgendwie mit dem Schleifenobjekt "wiederhole 5x" eingestellt werden aber bekomme es nicht hin 😞

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          dermario last edited by

                                          @dermario:

                                          Hi, wie würde eine Lösung für

                                          "Alexa, Fernseher leiser" / lauter aussehen? Es müsste dann z.B. 5x auf "VolumeUp" gedrückt werden (weil man sonst die Veränderung nicht merkt) muss ja irgendwie mit dem Schleifenobjekt "wiederhole 5x" eingestellt werden aber bekomme es nicht hin 😞 `

                                          Okay, habs einfach über eine Szene hinbekommen, in der ich mit 500ms Verzögerung hintereinander den gleichen Befehl sende 😉 In Alexa dann über eine Routine eingebunden "Alexa, Fernseher lauter" - läuft 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            gfn.Bl4ck last edited by

                                            Ich habe den Adapter erfolgreich konfiguriert und kann auch über den Objekte Reiter im iobroker die Befehle senden.

                                            Leider taucht mein TV nicht in der Liste der Smart Geräte auf.

                                            Kann mir dabei jemand helfen?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            lgtv
                                            113
                                            861
                                            238666
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo