Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Upnp - Samsung TV (J-Series) steuern

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Upnp - Samsung TV (J-Series) steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jey Cee
      Jey Cee Developer last edited by

      Hallo zusammen,

      hier möchte ich ein Beispiel zeigen wofür der upnp-Adapter genutzt werden kann.

      Es gibt zwar den Samsung Adapter, der aber nur für Samsung Geräte vor 2015 nutzbar ist. Samsung hat die Api geändert.

      Ich gehe hier nicht auf die Nutzung mit Javascript oder Blockly ein. Primär geht es darum die sehr Komplexe Handhabung der Samsung Schnittstelle näher zu bringen.

      Alle folgende Objekte sind Unterobjekte von MainTVServer2->MainTVAgent2. Nicht alle Objekte sind an meinem TV Nutzbar, daher kann ich nur auf die eingehen die bei mir Funktionieren. Wenn man Objekte abfrägt erhält man im Objekt "Result" (wenn vorhanden) eine Rückmeldung ob der Befehl ausgeführt wurde, OK, oder nicht und warum, NOTOK_xxx.

      EnforceAKE: Sinn bisher unbekannt. Erhalte die Meldung NOTOK, ohne weitere informationen.

      GetAvailableActions: Das Dürfte das Interessanteste Objekt sein, es gibt die Objekte (Actions) aus die vom TV unterstützt werden.

      GetBannerInformation: Dieses Objekt steht in Zusammenhang mit einem Streamingdienst. Bisher konnte ich aber nicht feststellen mit welechem. Die Rückmeldung ist immer NOTOK_NotStreaming.

      GetChannelListURL: Mit hilfe der URL die hier ausgegeben wird kommt man an die Programm Liste des TVs. Gelesen werden kann sie mit hilfe eine Hex Editors. Sobald ich mich mehr damit beschäftigt habe werde ich meine Erkenntnisse hier Wiedergeben.

      GetCurrentExternalSource: Hier bekommt man auskunft welche Quelle Aktuell für die Wiedergabe benutzt wird und welche ID ihr zugewiesen wurde. Das bezieht sich nur auf Hardware Schnittstellen wie TV, AV, HDMI, Component und Video.

      GetCurrentMainTVChannel: Dieses Objekt (Action) liefert den Aktuell ausgewählten TV Kanal. Wenn man zwischen den TV Kanälen wechseln möchte ist dieser besonders interessant, da der gelieferte xml String so wie er ist genutzt wird um auf diesen Kanal zu schalten. Das passiert mit Hilfe des Objekts "SetMainTVChannel".

      GetDTVInformation: Liefert ein xml String mit Informationen, noch unklar worauf sich die Informationen beziehen oder wofür sie benutzt werden können.

      GetDetailPrograminformation: Liefert Informationen zu einer Sendung auf einem bestimmten Sender zu einer bestimmten Anfangszeit. Das Channel Objekt (Argument) wird mit dem xml String aus dem Objekt GetCurrentMainTVChannel befüllt, natürlich mit dem Sender für den man die Information haben möchte. Bei AntennaMode haben die Zahlen 1-3 funktioniert. Jedoch hab ich nur den xml Body ohne die gewünschten Informationen als Antwort bekommen. In welchem Format StartTime angegeben werden muss kann ich nicht sagen, Typisch wäre hh:mm:ss.

      Laut Entwicklerdokumentation von Samsung arbeitet der TV bei dieser Funktion mit TZDate was aus Angular JS kommt. Das sieht so aus: 2017-01-14T20:03:00Z. Trotzdem bekomme ich nur leere Antworten.

      GetRecordChannel: Gibt den Sender wieder von dem Aktuell aufgenommen wird. Bei mir werden 2 Channel Objekte angezeigt, daher gehe ich davon aus es wäre möglich 2 Aufnahmen gleichzeitig zu machen.

      GetSourceList: Gibt, nicht wie erwartet, nur den Aktuellen Typ der Quelle als xml String aus. Darin findet sich auch die ID der Quelle.

      SetAntennaMode: Damit lässt sich der Tuner auswählen, mein TV hat einen Tripple Tuner wie vermutlich die meissten neuen TVs. Bis jetzt ist mir die Syntax unklar.

      SetMainTVChannel: Lässt das Umschalten auf einen bestimmten Sender zu. Das Channel Objekt wird mit dem xml String aus GetCurrentMainTVChannel befüllt, der String stellt den Sender/Kanal dar. ChannelListType findet sich bei GetChannelListURL->ChannelListType (z.B. 0x01). SatelliteID ist bei mir "0".

      SetMainTVSource: Mit Hilfe dieses Objekts kann man zwischen den Eingangsquellen wechseln. ID ist die ID für den Eingang, z.B. TV = 0, HDMI1 = 13, HDMI2 = 14, HDMI3 = 15. UiID scheint immer "0" zu sein und Source ist der Name des Eingangs/Bezeichnung.

      –---------------------------------------------------------------------------------------------

      Folgende Objekte sind Unterobjekte von MediaRenderer->RenderingControl. Dieser Teil ist auch für andere Geräte verwendbar, der Service MediaRenderer wird von allen Audio/Video playern bereitgestellt. Hier gibt es nur geringfügige Unterschiede.

      Zu beachten ist das die Objekte sich auf die Tonausgabe beziehen und nur nutzbar sind wenn man keinen AV Reciver nutzt.

      GetMute: Frägt ab ob der TV Lautlos geschalten ist oder nicht. 0 = Laut, 1 = Lautlos(Mute). Der Channel legt fest welcher Kanal abgefragt wird. Bei meinem TV gibt es nur "Master". Mögliche Kanäle findet man in A_ARG_TYPE_Channel->native->allowedValues.

      GetVolume: Frägt die Lautstärke ab. Wertbereich 0-100. Der Channel legt fest welcher Kanal abgefragt wird. Bei meinem TV gibt es nur "Master". Mögliche Kanäle findet man in A_ARG_TYPE_Channel->native->allowedValues.

      SetMute: Schaltet den TV Lautlos oder Laut. 0 = Laut, 1 = Lautlos(Mute). Den Wert gibt man bei DesiredMute ein. Der Channel legt fest welcher Kanal abgefragt wird. Bei meinem TV gibt es nur "Master". Mögliche Kanäle findet man in A_ARG_TYPE_Channel->native->allowedValues.

      SetVolume: Setzt die Lautstärke. Wertbereich 0-100. Den möglichen Wertebereich findet man in Volume->native->min/maxValue. Der Channel legt fest welcher Kanal abgefragt wird. Bei meinem TV gibt es nur "Master". Mögliche Kanäle findet man in A_ARG_TYPE_Channel->native->allowedValues.

      ===================================================================

      Scripte

      ===================================================================

      Lautstärke ändern, Lautlos:

      ! ````
      var device = 'upnp.0.[TV]_UE48JU6435';
      var control = 'javascript.0.Samsung_TV';
      var oldVol;
      var changeVol;
      ! on({id: control + '.Vol_UP', val: true
      }, function(obj){
      getVolume();

          changeVol = 1; //der Wert um den die Lautstärke geändert wird, kann beliebig geändert werden
      })
      

      on({id: control + '.Vol_Down', val: true
      }, function(obj){
      getVolume();
      log('leiser');
      changeVol = -1; //der Wert um den die Lautstärke geändert wird, kann beliebig geändert werden
      })

      ! on({id: control + '.Mute'
      }, function(){
      //Mute status abfragen
      setState(device + '.MediaRenderer.RenderingControl.GetMute.InstanceID', 0);
      setState(device + '.MediaRenderer.RenderingControl.GetMute.Channel', 'Master');
      setState(device + '.MediaRenderer.RenderingControl.GetMute', 'send');
      var oldMute = getState(device + '.MediaRenderer.RenderingControl.Mute').val;

          if(oldMute == 0){
              setState(device + '.MediaRenderer.RenderingControl.SetMute.InstanceID', 0);
              setState(device + '.MediaRenderer.RenderingControl.SetMute.Channel', 'Master');
              setState(device + '.MediaRenderer.RenderingControl.SetMute.DesiredMute', 1);
              setState(device + '.MediaRenderer.RenderingControl.SetMute', 'send');
              getVolume();
          }else{
              setState(device + '.MediaRenderer.RenderingControl.SetVolume.InstanceID', 0);
              setState(device + '.MediaRenderer.RenderingControl.SetVolume.Channel', 'Master');
              setState(device + '.MediaRenderer.RenderingControl.SetVolume.DesiredVolume', oldVol);
              setState(device + '.MediaRenderer.RenderingControl.SetVolume', 'send');
          }
      })
      

      function getVolume(){
      //zuletzt eingestellte Lautstärke vom TV abfragen
      setState(device + '.MediaRenderer.RenderingControl.GetVolume.InstanceID', 0);
      setState(device + '.MediaRenderer.RenderingControl.GetVolume.Channel', 'Master');
      setState(device + '.MediaRenderer.RenderingControl.GetVolume', 'send');

      }

      ! on({id: device + '.MediaRenderer.RenderingControl.Volume', change: 'ne'}, function (obj){ //Wird ausgeführt sobald die Aktuelle Lautstärke vom TV angekommen ist
      oldVol = getState(device + '.MediaRenderer.RenderingControl.Volume').val;
      oldVol = parseInt(oldVol);
      var newVol = oldVol + changeVol; //Berechnung der neuen Lautstärke
      log(newVol);
      //neue Lautstärke an TV senden
      setState(device + '.MediaRenderer.RenderingControl.SetVolume.Channel', 'Master');
      setState(device + '.MediaRenderer.RenderingControl.SetVolume.DesiredVolume', newVol);
      setState(device + '.MediaRenderer.RenderingControl.SetVolume.InstanceID', 0);
      setState(device + '.MediaRenderer.RenderingControl.SetVolume', 'send')

      })

      
      Fortsetzung folgt
      1 Reply Last reply Reply Quote 0
      • B
        bz7i last edited by

        Hey, habe das gerade mal probiert.

        Bekomme aber keine Antwort vom TV.

        Muss Ich am TV den Zugriff zulassen oder funktioniert das so ?

        1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer last edited by

          Der Zugriff muss erlaubt werden. Am TV sollte eine Meldung eingeblendet werden, wenn man versucht zu steuern, ob der Zugriff gestattet werden soll.

          Gesendet von meinem m8 mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • B
            bz7i last edited by

            Bei mir kommt leider nichts 😢

            Hab in den Einstellungen vom TV auch rumgeblättert , finde aber leider nichts.

            Eine Idee hast du nicht, oder ?

            1 Reply Last reply Reply Quote 0
            • X
              xast last edited by

              Hi, erstmal danke für den Adapter.

              Ich bin erst seit kurzem dabei mich mit Iobroker und den vielen Adapter auseinanderzusetzen. Gerade die Steuerung meines Samsung TV (leider schon J-Serie) interessiert mich brennend. Bin aber gerade mit dem Adapter überfordert und bekomme nichts gesteuert (weder Sonos noch Fernseher). Könnte bitte jemand mal ein ausführliches Beispiel geben wie das funktioniert? Bin langsam am verzweifeln.

              Danke im Voraus

              xast

              1 Reply Last reply Reply Quote 0
              • Jey Cee
                Jey Cee Developer last edited by

                @bz7i:

                Bei mir kommt leider nichts 😢

                Hab in den Einstellungen vom TV auch rumgeblättert , finde aber leider nichts.

                Eine Idee hast du nicht, oder ? `

                Sorry das ich so spät Antworte hab nicht gesehen das du hier nochmal geschrieben hast.

                Pack den code mal in ein script und starte es. Wenn das so nicht geht weiss ich auch nicht weiter.

                setState("upnp.0.[TV]_UE48JU6435.MainTVServer2.MainTVAgent2.GetAvailableActions"/*GetAvailableActions*/, 'send');
                

                @xast:

                Gerade die Steuerung meines Samsung TV (leider schon J-Serie) interessiert mich brennend. Bin aber gerade mit dem Adapter überfordert und bekomme nichts gesteuert (weder Sonos noch Fernseher). Könnte bitte jemand mal ein ausführliches Beispiel geben wie das funktioniert? Bin langsam am verzweifeln.

                xast `

                Die Steuerung des TV's ist leider nur sehr begrenzt möglich, da es scheinbar nicht möglich ist key codes zu senden. Ich habe im ersten Post ein Script ergänzt mit dem es möglich ist Lautstärke und Lautlos zu steuern. Das script kann auch für andere upnp player (z.B. Sonos) verwendet werden. Es können anpassungen nötig sein.

                1 Reply Last reply Reply Quote 0
                • M
                  my-knx-shop last edited by

                  Es gibt für die KS Serie ja bereits einen Adapter der es möglich macht den TV zu steuern.

                  Klappt auch wunderbar mit ein aus - Programm - lautstärke etc.

                  Leider habe ich und auch derjenige der den Adapter erstellt hat, keine Information darüber, wie es ggf. möglich ist, wie auch bei anderen TV´s wie Loewe / LG etc, Einblendungen bzw. PopUps zu generieren, die einen frei definierten Text beinhalten.

                  Ziel ist es zum Beispiel anzeigen zu lassen: Waschmaschine ist fertig, Bewegung im Garten registriert, Es hat geklingelt ( falls Klingel Nachts auf aus ist ) usw.

                  Vielleicht gibt es jemanden der das liesst und evtl. schon ein paar Ansätze dazu hat. Bei älteren Samsung TVs gab es mal eine App die das möglich machte und auf dem TV installiert sein musste. ( irgendwas mit nofitications ).

                  Danke für Eure Mithilfe.

                  1 Reply Last reply Reply Quote 0
                  • Thisoft
                    Thisoft last edited by

                    Ich habe jetzt einen Samsung-TV aus der J-Serie hier zum Spielen. Allerdings hab ich bisher noch keinerlei Erfolge. Im UPnP-Adapter sind zwar alle Objekte da. Aber wenn ich versuche etwas aus dem oben geposteten Script zum Laufen zu bekommen erhalte ich nur die folgende Rückmeldung vom TV:

                    upnp.0
                    2017-04-10 22:48:34.701
                    warn
                    Sent message: {"uri":"http://192.168.137.51:7676/smp_13_","headers":{"Content-Type":"text/xml; charset=\"utf-8\"","SOAPAction":"\"urn:schemas-upnp-org:service:RenderingControl:1#SetVolume\"","USER-AG
                    upnp.0
                    2017-04-10 22:48:34.701
                    warn
                    Unexpected answer from upnp service: {"statusCode":500,"body":"\r\n
                    

                    Err 500 ist soweit ich das gefunden habe ein "Internal Server Error"

                    Es erscheint auch keine Abfrage auf den TV ob ich etwas zulassen möchte… Hab gerade keine Idee mehr 😞

                    1 Reply Last reply Reply Quote 0
                    • Jey Cee
                      Jey Cee Developer last edited by

                      Die Autorisierung klappt nicht mit jedem Befehl, hast du mal GetAvailableActions versucht? Siehe 3 posts weiter oben.

                      Gesendet von meinem m8 mit Tapatalk

                      1 Reply Last reply Reply Quote 0
                      • Thisoft
                        Thisoft last edited by

                        Hmm - nächstes Problem. GetAvailableActions finde ich nirgends :?: 😞

                        Hats Du noch eine Idee?

                        1 Reply Last reply Reply Quote 0
                        • Jey Cee
                          Jey Cee Developer last edited by

                          Japp exportiert mal dein objektbaum für deinen TV, vom upnp Adapter. Und poste ihn hier. Dann schau ich mir den mal an. Kann aber paar Tage dauern bis ich wieder Zeit hab.

                          Und welches Model und welche fw hat dein TV?

                          Gesendet von meinem m8 mit Tapatalk

                          1 Reply Last reply Reply Quote 0
                          • Thisoft
                            Thisoft last edited by

                            Hallo JeyCee,

                            hab's jetzt endlich geschafft meinen Objektbaum zu exportieren. Auf dem PC wo ich üblicherweise die Administration mache (Edge-Browser auf Windows 10) hat das Exportieren von Objekten überhaupt nicht funktioniert und auf einem anderen PC mit Chrome hatte ich auch diverse Probleme wie leere Dateien etc. Aber das nur am Rande - der TV-Objektbaum ist im Anhang
                            250_upnp0.zip
                            Das Gerät ist ein Samsung UE40J5250SS. Die Firmware müsste die 1117 sein - wenn das die Firmwareversion ist die du brauchst. Habe im TV-Menü keinen Eintrag gefunden der explizit "Firmwareversion" heißt, aber ich denke dass es diese ist…

                            Vielen Dank für Dein Angebot Dir das mal anzuschauen - wäre schön wenn wir da ein Stückchen weiterkommen 🙂

                            Gruß Thilo

                            1 Reply Last reply Reply Quote 0
                            • Jey Cee
                              Jey Cee Developer last edited by

                              Alles klar, da fehlt MainTVServer2 in deinem Objektbaum. Lösch doch mal den ganzen Baum für deinen TV und starte den Adapter neu.

                              Sollte zwar nicht vorkommen das nicht alle Objekte angelegt werden, aber das hatte ich bei meinem Samsung TV auch.

                              Firmware und Model sind mehr Informativ für mich.

                              1 Reply Last reply Reply Quote 0
                              • Thisoft
                                Thisoft last edited by

                                Hab jetzt schon zweimal den Objektbaum gelöscht und den Adapter neugestartet, aber "MainTVServer2" fehlt immer noch 😢

                                Gibt's da noch 'ne Chance? Muss vielleicht im TV noch was umgeschaltet/aktiviert werden?

                                1 Reply Last reply Reply Quote 0
                                • Jey Cee
                                  Jey Cee Developer last edited by

                                  @Thisoft:

                                  Muss vielleicht im TV noch was umgeschaltet/aktiviert werden? `

                                  Nicht das ich wüsste, aber du kannst ja am TV mal alle Einstellungen durchgehen.

                                  Alternativ besteht auch die Möglichkeit das man im Servicemenü was aktivieren muss. Da musst du dann aber google bemühen um Infos dazu zu bekommen. Da ist dann auf jeden Fall Vorsicht geboten, sonst endet das schlimmsten falls in einer Boot schleife.

                                  Leider ist Samsung nicht sehr großzügig mit Informationen und so stochert man oft im Nebel.

                                  1 Reply Last reply Reply Quote 0
                                  • Thisoft
                                    Thisoft last edited by

                                    Hallo Jey Cee,

                                    ich bin leider noch nicht weitergekommen. Aber ich habe bei meiner Suche eine recht interessante Seite gefunden https://forum.fhem.de/index.php/topic,57595.0.html. Das klingt so als hätten die Leute dort eine Lösung gefunden. Allerdings liest sich das für mich irgendwie sehr kryptisch - kannst Du damit vielleicht mehr anfangen?

                                    1 Reply Last reply Reply Quote 0
                                    • Jey Cee
                                      Jey Cee Developer last edited by

                                      Hab mir den verlinkten Thread durch gelesen, da ist seit meinem letzten Besuch einiges dazu gekommen.

                                      Leider scheint auch dort keiner es mit der J-Serie zum laufen zu bekommen. Irgend etwas ist an dieser Serie gänzlich anders als an den anderen.

                                      Gesendet von meinem m8 mit Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • Thisoft
                                        Thisoft last edited by

                                        Ja, scheint irgendwie nicht so kommunikativ zu sein die J-Serie.

                                        Was bei mir allerdings schon mal funktioniert ist wenn ich im Browser eingebe:

                                        http://192.168.xxx.xxx:8080/ws/pairing?step=0&app_id=my-app&device_id=ffy-device
                                        

                                        Dann wird mir am TV ein vierstelliger Code angezeigt. Das ist ja eigentlich schon ein Erfolg - oder? Ich weiß nur absolut nicht was ich da jetzt noch drumherumbauen müsste…

                                        1 Reply Last reply Reply Quote 0
                                        • Jey Cee
                                          Jey Cee Developer last edited by

                                          https://community.smartthings.com/t/samsung-smart-tv-support/741/79 ist ein Thread wo darüber diskutiert wurde.

                                          Leider steht da nicht wie man den Pin Code Codieren muss.

                                          1 Reply Last reply Reply Quote 0
                                          • sigi234
                                            sigi234 Forum Testing Most Active last edited by

                                            Hallo,

                                            entschuldige ich muss mich mal melden, habe was zusammengebracht, aber ich weis nicht wo und wie ich den Code eingeben soll.

                                            Nach Aufruf der http://192.168.178.61:8080/ws/pairing?s … ffy-device

                                            wird mir angezeigt das sich eine App verbinden will und ein CODE dazu.

                                            Hier mal was ich so zurückbekomme, verbunden ist er ja anscheinend.

                                            EnforceAKE,GetAvailableActions,GetBannerInformation,GetChannelListURL,GetCurrentExternalSource,GetCurrentMainTVChannel,GetDTVInformation,GetDetailProgramInformation,GetRecordChannel,GetSourceList,SetAntennaMode,SetMainTVChannel,SetMainTVSource,StartCloneView,StartExtSourceView,StartSecondTVView,StopRecord,StopView
                                            

                                            Ist ein Samsung UE40JU6450

                                            Sigi

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            878
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            23
                                            8517
                                            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