Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Gelöst] alten Samsung TV steuern.

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    823

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.6k

[Gelöst] alten Samsung TV steuern.

Scheduled Pinned Locked Moved Skripten / Logik
15 Posts 6 Posters 2.6k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    maniac
    wrote on last edited by
    #1

    Hallo zusammen.

    Ich bin dabei mein erstes Script zu basteln (fange mit Javascript bei Null an) und habe dazu hier im Forum einige Tipps gefunden, die ich übernommen habe.

    Allerdings komme ich gerade nicht weiter.

    Ich möchte Siri sagen "stelle TV 3,4,5,6% usw.. lauter/leiser". Also die gesprochene Zahl soll die Lautstärke um eben diese erhöhen/verringen.

    Der TV reagiert schon wenn ich sage "Erhöhe Samsung um 10%", allerdings nur eine Stufe hoch.

    Mir fehlt anscheinend nur die richtige Schleife?

    Ich habe von Hand bei den Objekten einen Datenpunkt erstellt.

    ! ````
    {
    "common": {
    "name": "TV_unten",
    "desc": "Lautstärke",
    "type": "number",
    "unit": "%",
    "role": "value",
    "def": 0,
    "min": 0,
    "max": 100
    },
    "native": {},
    "acl": {
    "object": 1636,
    "owner": "system.user.admin",
    "ownerGroup": "system.group.administrator",
    "state": 1636
    },
    "_id": "javascript.0.medien.TV_unten",
    "type": "state"
    }

    
    Und folgendes Script.
    
    >! ````
    >! on({
        id: "javascript.0.medien.TV_unten",
        change: "ne"
    }, function (obj) {
        var lauter = getState("javascript.0.medien.TV_unten"/*javascript.0.medien.TV_unten*/);
        setState("samsung.0.Volume.Volume Up"/*Volume.Volume Up*/, true, false);    // machIrgendwas(x);
    >!     
    >! for(var lauter=getState("javascript.0.medien.TV_unten"/*javascript.0.medien.TV_unten*/); i<lauter; i++){/setstatedelayed("samsung.0.volume.volume/up"/*volume.volume/up*/,/true,/50,/false);/}/);/<e=""></lauter;>
    

    Ich dachte jetzt durch den Befehl setze ich den Datenpunkt auf "10", dieser wird ausgelesen und lässt dann die Schleife 10x durchlaufen.

    Würde mir bitte jemand meinen Fehler aufzeigen?

    Gruß Frank…

    F 1 Reply Last reply
    0
    • L Offline
      L Offline
      Lucky
      wrote on last edited by
      #2

      wenn ich es richtig verstanden habe, ist deine Lautstärke Bereich 0-100 % , aktuell ist eingestellt z.b. 45% und du willst um x % erhöhen..

      Dafür brauchst du keine Schleife, lese den IST Wert der Lautstärke mit GetState aus und addiere x dazu und schreibe mit SetState den neuen Wert

      1 Reply Last reply
      0
      • M Offline
        M Offline
        maniac
        wrote on last edited by
        #3

        @Lucky:

        wenn ich es richtig verstanden habe, ist deine Lautstärke Bereich 0-100 % , aktuell ist eingestellt z.b. 45% und du willst um x % erhöhen..

        Dafür brauchst du keine Schleife, lese den IST Wert der Lautstärke mit GetState aus und addiere x dazu und schreibe mit SetState den neuen Wert `

        Das funktioniert leider nicht. Ich kann keinen Status auslesen. Der TV reagiert nur auf "Buttons", IOBroker weiss also nicht wie laut es gerade ist.

        Ich muss dies mit der Schleife machen.

        Gruß Frank…

        1 Reply Last reply
        0
        • L Offline
          L Offline
          Lucky
          wrote on last edited by
          #4

          ok, versuch mal so:

          createState('javascript.0.medien.TV_unten', 0,{type: "number", role: "Volume %"});
          
           on({id:'javascript.0.medien.TV_unten'}, function (obj){
          
                 for (var i = 0; i < obj.state.val; i++) {
                      console.log (i);
                          setStateDelayed("samsung.0.Volume.Volume Up"/*Volume.Volume Up*/, true, 50, false);
                  }
          
           });
          
          1 Reply Last reply
          0
          • M Offline
            M Offline
            maniac
            wrote on last edited by
            #5

            Schein "halbwegs" zu funktionieren.

            Zumindest wenn ich im Objekt einn Wert eintrage, wird der TV angesteuert.

            Allerdings nicht mit z.B. 10x.

            Da reagiert der TV nur 2-3mal drauf. Das wird dann am TV liegen denke ich, da er vielleicht nicht so schnell reagiert.

            Verzögerung hab ich testweise auch schon erhöht, bringt aber leider auch nix. Hab das mal testweise auf 1000 gestellt, wollte damit erreichen das jede Schleife 1sek lang ist. Wäre doch so richtig?

            createState('javascript.0.medien.TV_unten_leiser', 0,{type: "number", role: "Volume %"});
            
             on({id:'javascript.0.medien.TV_unten_leiser'}, function (obj){
            
                   for (var i = 0; i < obj.state.val; i++) {
                        console.log (i);
                            setStateDelayed("samsung.0.Volume.Volume Down"/*Volume.Volume Down*/, true, 1000, false);
                    }
            
             });
            
            

            Aber ich hab noch ein weiteres Problem.

            Lauter bekomme ich den Fernseher ja mit "Erhöhe Fernseher um x%" Aber wenn ich jetzt sage "Verringere Fernseher um x%" oder "Verringere Lautstärke um x%" sagt Siri mir entweder es wird nichts wiedergegeben oder es gibt keine Geräte die die Helligkeit regeln?

            Ich will ja Lautstärke regeln. Blöde Siri :)

            Das Device im YAHKA hab ich als Switch angelegt. Muss hier etwas anderes gewählt werden?

            Gruß Frank…

            1 Reply Last reply
            0
            • L Offline
              L Offline
              Lucky
              wrote on last edited by
              #6

              ja das ist der Callback der dir nen strich durch die Rechnung macht ;-)

              versuch mal so:

              createState('javascript.0.medien.TV_unten_leiser', 0,{type: "number", role: "Volume %"});
              
               on({id:'javascript.0.medien.TV_unten_leiser'}, function (obj){
              
              var i=0;
              
                  Intervall = setInterval(function () {
              
                      console.log(i);
                      setState("samsung.0.Volume.Volume Down",val=true,akt=true);
              
                      i++;
              
                          if (i==obj.state.val){
                              i=0;
                              clearInterval(Intervall);
                          }
              
                  }, 500);
              
               }); 
              
              1 Reply Last reply
              0
              • M Offline
                M Offline
                maniac
                wrote on last edited by
                #7

                Da reagiert er leider gar nicht drauf.

                Gruß Frank…

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  Lucky
                  wrote on last edited by
                  #8

                  also bei mir läuft das ohne Probleme, ich habe zwar nicht deinen TV, aber wenn ich z.b. eine Lampe steuere blinkt diese so oft wie angegeben, Voraussetzung ist das der state als Button angelegt ist.

                  1 Reply Last reply
                  0
                  • AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    wrote on last edited by
                    #9

                    Klassischer JavaScript-Anfängerfehler:

                    for (var i = 0; i < obj.state.val; i++) {
                        setStateDelayed("samsung.0.Volume.Volume Down"/*Volume.Volume Down*/, true, 1000, false);
                    }
                    

                    sorgt dafür, dass nach 1s der gleiche Wert mehrfach auf true gesetzt wird. Die Schleife pausiert nicht durch den Aufruf von setStateDelayed.

                    Korrekt wäre per setInterval (kann man abbrechen) oder so:

                    for (var i = 0; i < obj.state.val; i++) {
                        setStateDelayed("samsung.0.Volume.Volume Down"/*Volume.Volume Down*/, true, 1000 * (i + 1), false);
                    }
                    

                    Das sorgt dafür, dass eine Reihe von Befehlen eingereiht werden, jeweils nach 1,2,3,4,… Sekunden.

                    Der Schlüssel hierfür ist die Berechnung des Timeouts 1000 * (i + 1)

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      maniac
                      wrote on last edited by
                      #10

                      Danke.

                      Made my day :)

                      Der Sir Befehl klingt zwar etwas holprig, aber es funktioniert. "Hey Siri Stelle Fernseher lauter x" und "Hey Siri Stelle Fernseher leiser x"

                      Gruß Frank…

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        MaikB85
                        wrote on last edited by
                        #11

                        Ich wollte auch erst die Lautstärke vom Fernseher über Alexa Steuern. Habe auch einen Samsung. Hab es dann aber doch direkt mit dem Soundsystem gemacht. Vom Prinzip her ist das aber das gleiche. Ich kenne die aktuelle Lautstärke vom Soundsystem nicht und kann deshalb nur die Lautstärke per Sprachbefehl erhöhen oder reduzieren.

                        Habe es dann so gelöst mit Javascript:

                        on({id:'javascript.0.medien.Lautstärke_Soundsystem'}, function (obj){
                        
                             var volumevalue = getState("javascript.0.medien.Lautstärke_Soundsystem").val;
                             var oldvolumevalue = getState("javascript.0.medien.Lautstärke_Soundsystem_vorher").val;
                        
                             var diff = volumevalue - oldvolumevalue;
                        
                             console.log("gesetzte Lautstärke: " + diff);
                        
                             if (diff > 0) {
                                 //Lautstärke erhöhen
                                 console.log ("Lautstärke erhöhen");
                        
                                 // Maximale Lautstärkeerhöhung um 5 Schritte
                                 if (diff > 10) {
                                     diff = 10;
                                 }
                        
                                 for (var i = 0; i < diff; i++) {
                                    console.log (i);
                                    setStateDelayed("harmony.0.Harmony Hub.Logitech Verstärker.VolumeUp", 1, 1000 * (i + 1), false);
                                }
                                setState("javascript.0.medien.Lautstärke_Soundsystem_vorher", volumevalue);
                             }
                             else if (diff < 0) {
                                 //Lautstärke verringern
                                 console.log ("Lautstärke verringern");
                                 diff = diff * (-1);
                        
                                 // Maximale Lautstärkeerhöhung um 5 Schritte
                                 if (diff > 10) {
                                     diff = 10;
                                 }
                        
                                 for (var i = 0; i < diff; i++) {
                                    console.log (i);
                                    setStateDelayed("harmony.0.Harmony Hub.Logitech Verstärker.VolumeDown", 1, 1000 * (i + 1), false);
                                }
                                setState("javascript.0.medien.Lautstärke_Soundsystem_vorher", volumevalue);
                             }
                        
                         });
                        
                        // 40 entspricht 100%
                        // 2,5% Lautstärkeerhöhung pro Tastendruck
                        // Variablen: Min: -20 ; Max: +20 (entspricht 0-100% = 40 Schritte)
                        

                        Dabei habe ich mir 2 Variablen im iobroker erstellt:

                        • "Lautstärke_Soundsystem"

                        • "Lautstärke_Soundsystem_vorher"
                          1528_volume.png

                        Die Grenzen der Variablen habe ich auf -20 und +20 begrenzt, da ich 40 Lautstärkestufen bis 100% habe. Da Alexa scheinbar nur Prozentangaben richtig setzt habe ich dass dann so machen müssen. Zu der Variable "Lautstärke_Soundsystem" habe ich dann ein Smart-Gerät "Lautstärke" im Cloud Adapter angelegt. So ändere ich die Lautstärke per Befehl "Alexa, erhöhe/reduziere Lautstärke um x%". Bei 5% wären das 2 Lautstärkestufen. Für eine Lautstärkestufe müsste ich theoretisch 2,5% sagen aber mit 2 Prozent funktioniert es auch. Die Variable nimmt dann zwar Gleitkommawerte an, aber es wird trotzdem nur einmal der Lautstärkebefehl an das Soundsystem gesendet. Mir war es halt wichtig, dass wenn ich Prozentwerte angebe, es auch wirklich so viel Prozent von der Lautstärke sind.

                        Gruß Maik

                        1 Reply Last reply
                        0
                        • P Offline
                          P Offline
                          prodigy999
                          wrote on last edited by
                          #12

                          @maniac: wie hast Du den alten Samsung angebunden? Welchen Adapter hast Du dafür installiert?

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            maniac
                            wrote on last edited by
                            #13

                            @prodigy999:

                            @maniac: wie hast Du den alten Samsung angebunden? Welchen Adapter hast Du dafür installiert? `

                            Einfach den Samsung Adapter.

                            Gruß Frank…

                            1 Reply Last reply
                            0
                            • M maniac

                              Hallo zusammen.

                              Ich bin dabei mein erstes Script zu basteln (fange mit Javascript bei Null an) und habe dazu hier im Forum einige Tipps gefunden, die ich übernommen habe.

                              Allerdings komme ich gerade nicht weiter.

                              Ich möchte Siri sagen "stelle TV 3,4,5,6% usw.. lauter/leiser". Also die gesprochene Zahl soll die Lautstärke um eben diese erhöhen/verringen.

                              Der TV reagiert schon wenn ich sage "Erhöhe Samsung um 10%", allerdings nur eine Stufe hoch.

                              Mir fehlt anscheinend nur die richtige Schleife?

                              Ich habe von Hand bei den Objekten einen Datenpunkt erstellt.

                              ! ````
                              {
                              "common": {
                              "name": "TV_unten",
                              "desc": "Lautstärke",
                              "type": "number",
                              "unit": "%",
                              "role": "value",
                              "def": 0,
                              "min": 0,
                              "max": 100
                              },
                              "native": {},
                              "acl": {
                              "object": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator",
                              "state": 1636
                              },
                              "_id": "javascript.0.medien.TV_unten",
                              "type": "state"
                              }

                              
                              Und folgendes Script.
                              
                              >! ````
                              >! on({
                                  id: "javascript.0.medien.TV_unten",
                                  change: "ne"
                              }, function (obj) {
                                  var lauter = getState("javascript.0.medien.TV_unten"/*javascript.0.medien.TV_unten*/);
                                  setState("samsung.0.Volume.Volume Up"/*Volume.Volume Up*/, true, false);    // machIrgendwas(x);
                              >!     
                              >! for(var lauter=getState("javascript.0.medien.TV_unten"/*javascript.0.medien.TV_unten*/); i<lauter; i++){/setstatedelayed("samsung.0.volume.volume/up"/*volume.volume/up*/,/true,/50,/false);/}/);/<e=""></lauter;>
                              

                              Ich dachte jetzt durch den Befehl setze ich den Datenpunkt auf "10", dieser wird ausgelesen und lässt dann die Schleife 10x durchlaufen.

                              Würde mir bitte jemand meinen Fehler aufzeigen?

                              F Offline
                              F Offline
                              fabalan
                              wrote on last edited by
                              #14

                              Hi @maniac bin gerade am basteln mit Siri, iobroker und Sonos.
                              Möchte Siri den Befehl geben: "Musik (Lautsärke) 10" bzw. "Musik lauter" etc.

                              Nun meine Frage, wie bekommst du den Laustärkewert z.b. "10" von Siri in iobroker?
                              Bzw. welches Gerät benutzt du für die Spracheingabe?

                              Vielen Dank

                              M 1 Reply Last reply
                              0
                              • F fabalan

                                Hi @maniac bin gerade am basteln mit Siri, iobroker und Sonos.
                                Möchte Siri den Befehl geben: "Musik (Lautsärke) 10" bzw. "Musik lauter" etc.

                                Nun meine Frage, wie bekommst du den Laustärkewert z.b. "10" von Siri in iobroker?
                                Bzw. welches Gerät benutzt du für die Spracheingabe?

                                Vielen Dank

                                M Offline
                                M Offline
                                maniac
                                wrote on last edited by
                                #15

                                @fabalan sagte in [Gelöst] alten Samsung TV steuern.:

                                Hi @maniac bin gerade am basteln mit Siri, iobroker und Sonos.
                                Möchte Siri den Befehl geben: "Musik (Lautsärke) 10" bzw. "Musik lauter" etc.

                                Nun meine Frage, wie bekommst du den Laustärkewert z.b. "10" von Siri in iobroker?
                                Bzw. welches Gerät benutzt du für die Spracheingabe?

                                Vielen Dank

                                Ich hatte das damals mit dem Yahka Adapter gemacht. Habe das aber jetzt nicht mehr weiter verfolgt, da es für mich keinen Sinn mehr machte das per Sprache zu machen. Fernbedienung geht immer noch am schnellsten.

                                Gruß Frank…

                                1 Reply Last reply
                                0

                                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                With your input, this post could be even better 💗

                                Register Login
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                565

                                Online

                                32.8k

                                Users

                                82.7k

                                Topics

                                1.3m

                                Posts
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Home
                                • Recent
                                • Tags
                                • Unread 0
                                • Categories
                                • Unreplied
                                • Popular
                                • GitHub
                                • Docu
                                • Hilfe