Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. script im html widget hat fehler

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    364

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    323

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

script im html widget hat fehler

Geplant Angeheftet Gesperrt Verschoben Visualisierung
16 Beiträge 2 Kommentatoren 316 Aufrufe 5 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von liv-in-sky
    #1

    versuche gerade meinen youtube player für vis auf den neuesten stand zu bringen

    um einen befehl an den integrierten player (liegt in einem extra) html widget zu senden , schreibe ich in ein anderes html widget zb. folgende befehle. somit kann ich über meine vis-view am pc, den yt-plyer auf dem entfernt stehenden eco-8 ansehen, der eine andere view offen hat

    <script>player.loadVideoById("J9kf3fVLWy4", 5, "large");</script>
    
    <script>player.playPause();</script>
    

    usw

    funktioniert, macht aber bei einem befehl ein problem

    <script>player.loadPlaylist(playlist: "4MJRS-cLozU" );</script>
    

    dann kommt dieser fehler:

    1761.0710204081633
    VM6254:46 <script>player.loadPlaylist(playlist "4MJRS-cLozU" );</script>
    VM6254:55 https://www.youtube.com/watch?t=5&v=J9kf3fVLWy4
    VM6254:57 Putin: Kann man ihn stoppen? | Situation in Ukraine Update
    VM6254:59 1761.0710204081633
    conn.js:1256 Error: can't render tplHtml w00008 on "youtube_new1": 
    conn.js:1256 Error: 0 - SyntaxError: missing ) after argument listSyntaxError: missing ) after argument list
    conn.js:1256 Error: 1 -     at eval (<anonymous>)
    conn.js:1256 Error: 2 -     at http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:2:2622
    conn.js:1256 Error: 3 -     at Function.globalEval (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:2:2633)
    conn.js:1256 Error: 4 -     at m.fn.init.domManip (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:3:23107)
    conn.js:1256 Error: 5 -     at m.fn.init.t.fn.domManip (http://192.168.178.59:8082/vis/lib/js/can.custom.min.js:28:2469)
    conn.js:1256 Error: 6 -     at m.fn.init.replaceWith (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:3:22242)
    conn.js:1256 Error: 7 -     at Object.renderWidget (http://192.168.178.59:8082/vis/js/vis.js:1733:29)
    conn.js:1256 Error: 8 -     at Object.reRenderWidget (http://192.168.178.59:8082/vis/js/vis.js:1122:14)
    conn.js:1256 Error: 9 -     at Object.updateState (http://192.168.178.59:8082/vis/js/vis.js:3115:22)
    conn.js:1256 Error: 10 -     at http://192.168.178.59:8082/vis/js/vis.js:3728:21
    

    das liegt anscheinend am doppelpunkt in dem befehl

    hat jmd eine idee, wie ich das umgehen kann

    @Bluefox wäre auch eine frage an dich (vis auf latest stand)

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    OliverIOO 2 Antworten Letzte Antwort
    0
    • liv-in-skyL liv-in-sky

      versuche gerade meinen youtube player für vis auf den neuesten stand zu bringen

      um einen befehl an den integrierten player (liegt in einem extra) html widget zu senden , schreibe ich in ein anderes html widget zb. folgende befehle. somit kann ich über meine vis-view am pc, den yt-plyer auf dem entfernt stehenden eco-8 ansehen, der eine andere view offen hat

      <script>player.loadVideoById("J9kf3fVLWy4", 5, "large");</script>
      
      <script>player.playPause();</script>
      

      usw

      funktioniert, macht aber bei einem befehl ein problem

      <script>player.loadPlaylist(playlist: "4MJRS-cLozU" );</script>
      

      dann kommt dieser fehler:

      1761.0710204081633
      VM6254:46 <script>player.loadPlaylist(playlist "4MJRS-cLozU" );</script>
      VM6254:55 https://www.youtube.com/watch?t=5&v=J9kf3fVLWy4
      VM6254:57 Putin: Kann man ihn stoppen? | Situation in Ukraine Update
      VM6254:59 1761.0710204081633
      conn.js:1256 Error: can't render tplHtml w00008 on "youtube_new1": 
      conn.js:1256 Error: 0 - SyntaxError: missing ) after argument listSyntaxError: missing ) after argument list
      conn.js:1256 Error: 1 -     at eval (<anonymous>)
      conn.js:1256 Error: 2 -     at http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:2:2622
      conn.js:1256 Error: 3 -     at Function.globalEval (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:2:2633)
      conn.js:1256 Error: 4 -     at m.fn.init.domManip (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:3:23107)
      conn.js:1256 Error: 5 -     at m.fn.init.t.fn.domManip (http://192.168.178.59:8082/vis/lib/js/can.custom.min.js:28:2469)
      conn.js:1256 Error: 6 -     at m.fn.init.replaceWith (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:3:22242)
      conn.js:1256 Error: 7 -     at Object.renderWidget (http://192.168.178.59:8082/vis/js/vis.js:1733:29)
      conn.js:1256 Error: 8 -     at Object.reRenderWidget (http://192.168.178.59:8082/vis/js/vis.js:1122:14)
      conn.js:1256 Error: 9 -     at Object.updateState (http://192.168.178.59:8082/vis/js/vis.js:3115:22)
      conn.js:1256 Error: 10 -     at http://192.168.178.59:8082/vis/js/vis.js:3728:21
      

      das liegt anscheinend am doppelpunkt in dem befehl

      hat jmd eine idee, wie ich das umgehen kann

      @Bluefox wäre auch eine frage an dich (vis auf latest stand)

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #2

      @liv-in-sky sagte in script im html widget hat fehler:

      <script>player.loadPlaylist(playlist: "4MJRS-cLozU" );</script>
      

      Die notation ist vom javascript her illegal, wenn dann müsste es heißen (also in ein Objekt einpacken)

      <script>player.loadPlaylist({playlist: "4MJRS-cLozU"});</script>
      

      Welcher Player ist das? gibt es da doku?
      auch ein Objekt mit einem Attribut playlist und nur ein Eintrag dahinter macht logisch kein sinn, wenn dann wäre da ein Array sinnvoll, da eine playlist ja sicherlich auch mehrere Einträge haben kann.

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      liv-in-skyL 1 Antwort Letzte Antwort
      0
      • liv-in-skyL liv-in-sky

        versuche gerade meinen youtube player für vis auf den neuesten stand zu bringen

        um einen befehl an den integrierten player (liegt in einem extra) html widget zu senden , schreibe ich in ein anderes html widget zb. folgende befehle. somit kann ich über meine vis-view am pc, den yt-plyer auf dem entfernt stehenden eco-8 ansehen, der eine andere view offen hat

        <script>player.loadVideoById("J9kf3fVLWy4", 5, "large");</script>
        
        <script>player.playPause();</script>
        

        usw

        funktioniert, macht aber bei einem befehl ein problem

        <script>player.loadPlaylist(playlist: "4MJRS-cLozU" );</script>
        

        dann kommt dieser fehler:

        1761.0710204081633
        VM6254:46 <script>player.loadPlaylist(playlist "4MJRS-cLozU" );</script>
        VM6254:55 https://www.youtube.com/watch?t=5&v=J9kf3fVLWy4
        VM6254:57 Putin: Kann man ihn stoppen? | Situation in Ukraine Update
        VM6254:59 1761.0710204081633
        conn.js:1256 Error: can't render tplHtml w00008 on "youtube_new1": 
        conn.js:1256 Error: 0 - SyntaxError: missing ) after argument listSyntaxError: missing ) after argument list
        conn.js:1256 Error: 1 -     at eval (<anonymous>)
        conn.js:1256 Error: 2 -     at http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:2:2622
        conn.js:1256 Error: 3 -     at Function.globalEval (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:2:2633)
        conn.js:1256 Error: 4 -     at m.fn.init.domManip (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:3:23107)
        conn.js:1256 Error: 5 -     at m.fn.init.t.fn.domManip (http://192.168.178.59:8082/vis/lib/js/can.custom.min.js:28:2469)
        conn.js:1256 Error: 6 -     at m.fn.init.replaceWith (http://192.168.178.59:8082/lib/js/jquery-1.11.2.min.js:3:22242)
        conn.js:1256 Error: 7 -     at Object.renderWidget (http://192.168.178.59:8082/vis/js/vis.js:1733:29)
        conn.js:1256 Error: 8 -     at Object.reRenderWidget (http://192.168.178.59:8082/vis/js/vis.js:1122:14)
        conn.js:1256 Error: 9 -     at Object.updateState (http://192.168.178.59:8082/vis/js/vis.js:3115:22)
        conn.js:1256 Error: 10 -     at http://192.168.178.59:8082/vis/js/vis.js:3728:21
        

        das liegt anscheinend am doppelpunkt in dem befehl

        hat jmd eine idee, wie ich das umgehen kann

        @Bluefox wäre auch eine frage an dich (vis auf latest stand)

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #3

        @liv-in-sky sagte in script im html widget hat fehler:

        player.loadPlaylist

        ok
        hab die doku gefunden, ist die youtube api
        https://developers.google.com/youtube/iframe_api_reference?hl=de

        Das ist der richtige Befehl für nur ein Element

        <script>player.loadPlaylist("4MJRS-cLozU" );</script>
        

        Bei zwei und mehr Elementen

        <script>player.loadPlaylist(["4MJRS-cLozU","4MJRS-cLozU"] );</script>
        

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        liv-in-skyL 2 Antworten Letzte Antwort
        0
        • OliverIOO OliverIO

          @liv-in-sky sagte in script im html widget hat fehler:

          <script>player.loadPlaylist(playlist: "4MJRS-cLozU" );</script>
          

          Die notation ist vom javascript her illegal, wenn dann müsste es heißen (also in ein Objekt einpacken)

          <script>player.loadPlaylist({playlist: "4MJRS-cLozU"});</script>
          

          Welcher Player ist das? gibt es da doku?
          auch ein Objekt mit einem Attribut playlist und nur ein Eintrag dahinter macht logisch kein sinn, wenn dann wäre da ein Array sinnvoll, da eine playlist ja sicherlich auch mehrere Einträge haben kann.

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #4

          @oliverio

          erwischt - ich hatte früher dort was anderes - aber das funktioniert ja nicht mehr

          in deinem beispielen kommt auch :

          Image 6.png

          die anleitung ist da: (hast du ja schon gefunden)

          https://developers.google.com/youtube/iframe_api_reference?hl=de

          ich habe schon x-sachen getestet - kommt immer der schwarze bildschirm

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @liv-in-sky sagte in script im html widget hat fehler:

            player.loadPlaylist

            ok
            hab die doku gefunden, ist die youtube api
            https://developers.google.com/youtube/iframe_api_reference?hl=de

            Das ist der richtige Befehl für nur ein Element

            <script>player.loadPlaylist("4MJRS-cLozU" );</script>
            

            Bei zwei und mehr Elementen

            <script>player.loadPlaylist(["4MJRS-cLozU","4MJRS-cLozU"] );</script>
            
            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von
            #5

            @oliverio

            ich glaube, da stimmt was mit der api nicht - ich habe das script umgeschrieben und nutze nun .loadVideoById - wenn ich mehrere videos laden ill, soll mein javascript das organisieren und hintereinander abspielen

            danke für's nachsehen und helfen

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @liv-in-sky sagte in script im html widget hat fehler:

              player.loadPlaylist

              ok
              hab die doku gefunden, ist die youtube api
              https://developers.google.com/youtube/iframe_api_reference?hl=de

              Das ist der richtige Befehl für nur ein Element

              <script>player.loadPlaylist("4MJRS-cLozU" );</script>
              

              Bei zwei und mehr Elementen

              <script>player.loadPlaylist(["4MJRS-cLozU","4MJRS-cLozU"] );</script>
              
              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von
              #6

              @oliverio würde dich gerne noch was fragen

              ich möchte das widget mit dem yt-player in verschiedenen projekten nutzen

              gibt es eine möglichkeit, ein widget , welches ein script im html teil hat, zu deaktivieren ? ich möchte, dass dieses widget das script nicht mehr ausführt

              natürlich sollte das widget wieder geladen/aktiviert werden können

              fällt dir da was ein ?

              oder muss ich das anders lösen - z.b. das widget über einen datenpunkt zu beschreiben - dann könnte ich ja den yt-player überschreiben

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              OliverIOO 1 Antwort Letzte Antwort
              0
              • liv-in-skyL liv-in-sky

                @oliverio würde dich gerne noch was fragen

                ich möchte das widget mit dem yt-player in verschiedenen projekten nutzen

                gibt es eine möglichkeit, ein widget , welches ein script im html teil hat, zu deaktivieren ? ich möchte, dass dieses widget das script nicht mehr ausführt

                natürlich sollte das widget wieder geladen/aktiviert werden können

                fällt dir da was ein ?

                oder muss ich das anders lösen - z.b. das widget über einen datenpunkt zu beschreiben - dann könnte ich ja den yt-player überschreiben

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von OliverIO
                #7

                @liv-in-sky
                hm, müsste man mal probieren.
                welches widget ist es?

                wenn man die funktionsadresse erreicht, dann könnte man diese "überladen".

                als start vereinfachtes Beispiel, hier wird in einem widget eine funktion definiert.

                var a = function(a,b,c) {
                //hier diverser code der ausgeführt wird
                }
                a(1,2,3)
                

                dann könnte man an anderer stelle, nachdem die funktion definiert wurde so etwas machen

                a = function(a,b,c) {}
                

                dadurch würde die funktion die in a gepeichert ist, überladen mit einer funktion, die die selbe aufruf signatur hat, aber einfach nix macht. sie würde vom vorhandenen code noch aufgerufen werden, aber halt ohne funktion.
                man könnte dann auch geänderten code reinschreiben und so eine andere Ausführung erzeugen.
                Da die Erzeugung von vis widgets von der Reihenfolge nicht vorhersehbar ist (ich habe bisher noch kein Schema entdecken können, numerische Reihenfolge ist es nämlich nicht), müsste man die Funktion regelmäßig monitoren und ggfs immer wieder neu überladen.
                Aber wie gesagt, das hängt davon ab wie das widget gestaltet wurde.

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                liv-in-skyL 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @liv-in-sky
                  hm, müsste man mal probieren.
                  welches widget ist es?

                  wenn man die funktionsadresse erreicht, dann könnte man diese "überladen".

                  als start vereinfachtes Beispiel, hier wird in einem widget eine funktion definiert.

                  var a = function(a,b,c) {
                  //hier diverser code der ausgeführt wird
                  }
                  a(1,2,3)
                  

                  dann könnte man an anderer stelle, nachdem die funktion definiert wurde so etwas machen

                  a = function(a,b,c) {}
                  

                  dadurch würde die funktion die in a gepeichert ist, überladen mit einer funktion, die die selbe aufruf signatur hat, aber einfach nix macht. sie würde vom vorhandenen code noch aufgerufen werden, aber halt ohne funktion.
                  man könnte dann auch geänderten code reinschreiben und so eine andere Ausführung erzeugen.
                  Da die Erzeugung von vis widgets von der Reihenfolge nicht vorhersehbar ist (ich habe bisher noch kein Schema entdecken können, numerische Reihenfolge ist es nämlich nicht), müsste man die Funktion regelmäßig monitoren und ggfs immer wieder neu überladen.
                  Aber wie gesagt, das hängt davon ab wie das widget gestaltet wurde.

                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von liv-in-sky
                  #8

                  @oliverio

                  ist ein standard html widget

                  dieses widget soll in verschiedenen views aufrufbar sein

                  [{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"    <div id=\"player\"></div>\n\n    <script>\n      // 2. This code loads the IFrame Player API code asynchronously.\n      var tag = document.createElement('script');\n\n      tag.src = \"https://www.youtube.com/iframe_api\";\n      var firstScriptTag = document.getElementsByTagName('script')[0];\n      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n      // 3. This function creates an <iframe> (and YouTube player)\n      //    after the API code downloads.\n      var player;\n      \n      function onYouTubeIframeAPIReady() {\n        player = new YT.Player('player', {\n          height: '480',\n          width: '640',\n          videoId: '4Qgxxh-nO04',\n           playerVars:{ origin:window.location.href, enablejsapi:1,\n                       loop: 1\n                      },\n       \n          events: {\n            'onReady': onPlayerReady,\n            'onStateChange': onPlayerStateChange\n          }\n        });\n      }\n\n      // 4. The API will call this function when the video player is ready.\n      function onPlayerReady(event) {\n        event.target.playVideo();\n      }\n\n      // 5. The API calls this function when the player's state changes.\n      //    The function indicates that when playing a video (state=1),\n      //    the player should play for six seconds and then stop.\n      var done = false;\n      function onPlayerStateChange(event) {\n        if (event.data == YT.PlayerState.PLAYING && !done) {\n          \n          done = true;\n        }\n      }\n      function stopVideo() {\n        player.stopVideo();\n      }\n      \n      /*----------------------------------------------------------------------*/\n      \n      setInterval( function () {\n        console.log(vis.states.attr('javascript.0.YouTube.Command.val'))\nvar myState = player.getPlayerState();\nswitch (myState) { case -1: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"nicht gestartet\");break; case 0: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"beendet\") ;break; case 1: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"Wiedergabe\");break; case 2: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"Pause\");break; case 3: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"Buffered\");break; case 5: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"in Position\");break;\n\n}\n\n vis.setValue(\"javascript.0.YouTube.PlayerStatus\",player.getPlayerState());\n if(player.getPlayerState()==1) {\n vis.setValue(\"javascript.0.YouTube.Spiele\",player.getPlaylistIndex()); \n vis.setValue(\"javascript.0.YouTube.MomentanURL\",player.getVideoUrl());console.log(player.getVideoUrl());\n vis.setValue(\"javascript.0.YouTube.VideoCurrent\", Math.round(player.getCurrentTime()));\n if (player.getVideoData().title!=null ) console.log(player.getVideoData().title);\n if (player.getVideoData().title!=null ) vis.setValue(\"javascript.0.YouTube.VideoTitle\",player.getVideoData().title);\n vis.setValue(\"javascript.0.YouTube.VideoDuration\", Math.round(player.getDuration()));\n console.log(player.getDuration());\n var helperlein=player.getDuration();\n vis.setValue(\"javascript.0.YouTube.VideoDauer\", Math.floor(((helperlein)/60/60) % 24) +\"h \"+ Math.floor( ((helperlein)/60) % 60 )+\" m \" + Math.floor( ((helperlein)) % 60 )+ \" s\");\n \nconsole.log(Math.round(player.getDuration())-Math.round(player.getCurrentTime()));\n if (Math.round(player.getDuration()) - Math.round(player.getCurrentTime()) <5 ) vis.setValue(\"javascript.0.YouTube.EndeVideo\",true) ;\n vis.setValue(\"javascript.0.YouTube.Save.SaveSettingAktuell\",player.getVideoData().video_id+','+Math.round(player.getCurrentTime()));\n \n \n}\n\n\n}, 5000);\n\n      \n      \n      \n      \n      \n      \n      \n       /*----------------------------------------------------------------------*/\n      \n      \n      \n    </script>\n    \n","class":"","visibility-oid":"javascript.0.YouTube.Visible"},"style":{"left":"31px","top":"1086px","width":"640px","height":"480px","z-index":"900","background-color":"transparent"},"widgetSet":"basic"}]
                  

                  dieses widget macht die steuerung

                  Image 1.png

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    @oliverio

                    ist ein standard html widget

                    dieses widget soll in verschiedenen views aufrufbar sein

                    [{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"    <div id=\"player\"></div>\n\n    <script>\n      // 2. This code loads the IFrame Player API code asynchronously.\n      var tag = document.createElement('script');\n\n      tag.src = \"https://www.youtube.com/iframe_api\";\n      var firstScriptTag = document.getElementsByTagName('script')[0];\n      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n      // 3. This function creates an <iframe> (and YouTube player)\n      //    after the API code downloads.\n      var player;\n      \n      function onYouTubeIframeAPIReady() {\n        player = new YT.Player('player', {\n          height: '480',\n          width: '640',\n          videoId: '4Qgxxh-nO04',\n           playerVars:{ origin:window.location.href, enablejsapi:1,\n                       loop: 1\n                      },\n       \n          events: {\n            'onReady': onPlayerReady,\n            'onStateChange': onPlayerStateChange\n          }\n        });\n      }\n\n      // 4. The API will call this function when the video player is ready.\n      function onPlayerReady(event) {\n        event.target.playVideo();\n      }\n\n      // 5. The API calls this function when the player's state changes.\n      //    The function indicates that when playing a video (state=1),\n      //    the player should play for six seconds and then stop.\n      var done = false;\n      function onPlayerStateChange(event) {\n        if (event.data == YT.PlayerState.PLAYING && !done) {\n          \n          done = true;\n        }\n      }\n      function stopVideo() {\n        player.stopVideo();\n      }\n      \n      /*----------------------------------------------------------------------*/\n      \n      setInterval( function () {\n        console.log(vis.states.attr('javascript.0.YouTube.Command.val'))\nvar myState = player.getPlayerState();\nswitch (myState) { case -1: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"nicht gestartet\");break; case 0: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"beendet\") ;break; case 1: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"Wiedergabe\");break; case 2: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"Pause\");break; case 3: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"Buffered\");break; case 5: vis.setValue(\"javascript.0.YouTube.PlayerStatus2\",\"in Position\");break;\n\n}\n\n vis.setValue(\"javascript.0.YouTube.PlayerStatus\",player.getPlayerState());\n if(player.getPlayerState()==1) {\n vis.setValue(\"javascript.0.YouTube.Spiele\",player.getPlaylistIndex()); \n vis.setValue(\"javascript.0.YouTube.MomentanURL\",player.getVideoUrl());console.log(player.getVideoUrl());\n vis.setValue(\"javascript.0.YouTube.VideoCurrent\", Math.round(player.getCurrentTime()));\n if (player.getVideoData().title!=null ) console.log(player.getVideoData().title);\n if (player.getVideoData().title!=null ) vis.setValue(\"javascript.0.YouTube.VideoTitle\",player.getVideoData().title);\n vis.setValue(\"javascript.0.YouTube.VideoDuration\", Math.round(player.getDuration()));\n console.log(player.getDuration());\n var helperlein=player.getDuration();\n vis.setValue(\"javascript.0.YouTube.VideoDauer\", Math.floor(((helperlein)/60/60) % 24) +\"h \"+ Math.floor( ((helperlein)/60) % 60 )+\" m \" + Math.floor( ((helperlein)) % 60 )+ \" s\");\n \nconsole.log(Math.round(player.getDuration())-Math.round(player.getCurrentTime()));\n if (Math.round(player.getDuration()) - Math.round(player.getCurrentTime()) <5 ) vis.setValue(\"javascript.0.YouTube.EndeVideo\",true) ;\n vis.setValue(\"javascript.0.YouTube.Save.SaveSettingAktuell\",player.getVideoData().video_id+','+Math.round(player.getCurrentTime()));\n \n \n}\n\n\n}, 5000);\n\n      \n      \n      \n      \n      \n      \n      \n       /*----------------------------------------------------------------------*/\n      \n      \n      \n    </script>\n    \n","class":"","visibility-oid":"javascript.0.YouTube.Visible"},"style":{"left":"31px","top":"1086px","width":"640px","height":"480px","z-index":"900","background-color":"transparent"},"widgetSet":"basic"}]
                    

                    dieses widget macht die steuerung

                    Image 1.png

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von OliverIO
                    #9

                    @liv-in-sky

                    dann verstehe ich nicht so ganz.
                    da ist ja der komplette code drin.
                    den kann man ja bearbeiten wie man möchte.
                    unter welche umständen soll es dann nicht mehr funktionieren?
                    was willst du genau erreichen?

                    ok nach nochmaligem lesen möchtest du ein allgemeines youtube widget habe,
                    das du irgendwie steuern kannst (per datenpunkt bspw) um beliebige videos abzuspielen und das informiert, wenn ein video zu ende ist.

                    problem am html widget ist, das der einzige weg dem widget einen datenpunkt mitzugeben das binding ist, welches man im html einbettet. Hab das zwar so noch nie getestet, müsste aber funktionieren;

                    <script>
                    var dp = "{javascript.0.test}";
                    </script>
                    

                    weiteres problem ist, das jedesmal wenn sich der datenpunkt ändert, wird das komplette widget von der seite entfernt und wieder neu hinzugefügt. d.h.
                    das widget weiß nicht mehr, das es gerade noch da war. das muss man beim programmieren berücksichtigen

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    liv-in-skyL 2 Antworten Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @liv-in-sky

                      dann verstehe ich nicht so ganz.
                      da ist ja der komplette code drin.
                      den kann man ja bearbeiten wie man möchte.
                      unter welche umständen soll es dann nicht mehr funktionieren?
                      was willst du genau erreichen?

                      ok nach nochmaligem lesen möchtest du ein allgemeines youtube widget habe,
                      das du irgendwie steuern kannst (per datenpunkt bspw) um beliebige videos abzuspielen und das informiert, wenn ein video zu ende ist.

                      problem am html widget ist, das der einzige weg dem widget einen datenpunkt mitzugeben das binding ist, welches man im html einbettet. Hab das zwar so noch nie getestet, müsste aber funktionieren;

                      <script>
                      var dp = "{javascript.0.test}";
                      </script>
                      

                      weiteres problem ist, das jedesmal wenn sich der datenpunkt ändert, wird das komplette widget von der seite entfernt und wieder neu hinzugefügt. d.h.
                      das widget weiß nicht mehr, das es gerade noch da war. das muss man beim programmieren berücksichtigen

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von
                      #10

                      @oliverio

                      im moment liegt das widget mit dem yt-player in einer view und läßt sich ohne probleme steuern

                      ich würde aber gerne den player bzw das script deaktivieren können, weil ich gerne über einen schalter sagen möchte, auf welchen tablet, echo show oder raspi-mit kiosk der player laufen soll

                      das problem- alle diese player (in den verschiedenen views) werden von einem javascript gesteuert bzw , da bidirectional - geben rückmeldung - das bedeutet, das gleichzeitig mehrere player laufen und alle die selben dp des steuer-scripts füttern - das ist natürlich nicht gut. es ist schon ein problem, wenn in dem vis-editor die seite mit dem player-widget offen ist und gleichzeitig eine view mit einem player in der runtime - schon da kommt es zu seltsamen reaktionen - ist aber nicht so wild, ich deaktiviere den vis-editor tab, wenn ich das in der runtime teste und code

                      momentan suche ich nach einen weg, wie ich immer nur einen player aktivieren kann - je nachdem, welches tablet (view),.. ich nutzen will

                      ich habe mal versucht, nur das script des players in einen dp zu schreiben um den player zu aktivieren (durch das schreiben des dp wird das widget (binding) neu geladen und der player initialisiert)
                      zum deaktivieren setze ich dann diesen dp auf " " - so ist das script nicht mehr da (in der theorie) und alles ist gut - leider ist das nicht der fall, das script läuft im browser weiter. den player selbst kann ich mit player.destroy() stoppen - aber mein script im selben widget nicht

                      ist alles ein wenig schwer zu beschreiben

                      gerade fällt mir aber ein, dass in meinem script evtl eine abfrage rein muss, um das interval zu stoppen, wenn der player nicht existiert
                      werd ich gleich mal testen

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      1 Antwort Letzte Antwort
                      0
                      • OliverIOO OliverIO

                        @liv-in-sky

                        dann verstehe ich nicht so ganz.
                        da ist ja der komplette code drin.
                        den kann man ja bearbeiten wie man möchte.
                        unter welche umständen soll es dann nicht mehr funktionieren?
                        was willst du genau erreichen?

                        ok nach nochmaligem lesen möchtest du ein allgemeines youtube widget habe,
                        das du irgendwie steuern kannst (per datenpunkt bspw) um beliebige videos abzuspielen und das informiert, wenn ein video zu ende ist.

                        problem am html widget ist, das der einzige weg dem widget einen datenpunkt mitzugeben das binding ist, welches man im html einbettet. Hab das zwar so noch nie getestet, müsste aber funktionieren;

                        <script>
                        var dp = "{javascript.0.test}";
                        </script>
                        

                        weiteres problem ist, das jedesmal wenn sich der datenpunkt ändert, wird das komplette widget von der seite entfernt und wieder neu hinzugefügt. d.h.
                        das widget weiß nicht mehr, das es gerade noch da war. das muss man beim programmieren berücksichtigen

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von liv-in-sky
                        #11

                        @oliverio

                        warum funktioniert das nicht? möchte das interval beenden, wenn das yt-player object null ist

                        Image 4.png

                        im browser log sieht es so aus

                        Image 2.png

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        OliverIOO 1 Antwort Letzte Antwort
                        0
                        • liv-in-skyL liv-in-sky

                          @oliverio

                          warum funktioniert das nicht? möchte das interval beenden, wenn das yt-player object null ist

                          Image 4.png

                          im browser log sieht es so aus

                          Image 2.png

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von
                          #12

                          @liv-in-sky

                          ich habe mir das mal angeschaut und glaube das es in einem html widget zu schwierig ist so umzusetzen, das man davon beliebig viele in eine view einbauen kann.

                          Problem 1:
                          Das skript erzeugt ein eigenes Skripttag über das es die eigentliche Bibliothek von yoututbe lädt.
                          Wenn du mehrere widgets einfügst, dann wird die bibliothek mehrfach geladen. das könnte Probleme geben-

                          Problem 2:
                          Das Skript nutzt eine Funktion, welche von der geladenen Bibliothek aufgerufen wird, wenn die bibliothek geladen ist. diese funktion darf nur einmal existieren. wenn man mehrere html widgets mit dieser funktion zu vis hinzufügt, wird nur der letzte aufgerufen und die anderen nicht.

                          Meiner Meinung nach könnte man das nur umgehen wenn man ein eigenes widget baut, Dort wäre dann allgemeiner Code und der wüsste wieviel playerwidgets gleichzeitig auf einer vis sich befinden und kann das regeln.

                          zum Problem mit dem abbrechen von setInterval.
                          Um den abzubrechen, muss man sich die ID merken, die setInterval beim ersten Aufruf zurückgibt und clearInterval mit diesem ID löscht dann diesen.
                          Besser wäre setTimeout zu verwenden und am Ende des Codes dann den immer wieder neu aufzurufen, solange du abbrechen willst, dann einfach nicht nochmal neu aufrufen

                          https://developer.mozilla.org/de/docs/Web/API/setTimeout

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          liv-in-skyL 2 Antworten Letzte Antwort
                          0
                          • OliverIOO OliverIO

                            @liv-in-sky

                            ich habe mir das mal angeschaut und glaube das es in einem html widget zu schwierig ist so umzusetzen, das man davon beliebig viele in eine view einbauen kann.

                            Problem 1:
                            Das skript erzeugt ein eigenes Skripttag über das es die eigentliche Bibliothek von yoututbe lädt.
                            Wenn du mehrere widgets einfügst, dann wird die bibliothek mehrfach geladen. das könnte Probleme geben-

                            Problem 2:
                            Das Skript nutzt eine Funktion, welche von der geladenen Bibliothek aufgerufen wird, wenn die bibliothek geladen ist. diese funktion darf nur einmal existieren. wenn man mehrere html widgets mit dieser funktion zu vis hinzufügt, wird nur der letzte aufgerufen und die anderen nicht.

                            Meiner Meinung nach könnte man das nur umgehen wenn man ein eigenes widget baut, Dort wäre dann allgemeiner Code und der wüsste wieviel playerwidgets gleichzeitig auf einer vis sich befinden und kann das regeln.

                            zum Problem mit dem abbrechen von setInterval.
                            Um den abzubrechen, muss man sich die ID merken, die setInterval beim ersten Aufruf zurückgibt und clearInterval mit diesem ID löscht dann diesen.
                            Besser wäre setTimeout zu verwenden und am Ende des Codes dann den immer wieder neu aufzurufen, solange du abbrechen willst, dann einfach nicht nochmal neu aufrufen

                            https://developer.mozilla.org/de/docs/Web/API/setTimeout

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #13

                            @oliverio

                            was ich nicht verstehe - das log zeigt null aber das if reagiert nicht - hast du eine idee , warum das so sein könnte - dann wäre alle gut und ich könnte das schon hinbkommen

                                var ytInter=  setInterval( function () {
                                     console.log(player.i);
                                 if(player.i == null || player.i==undefined || !player) {console.log("AUS");clearInterval(ytInter);}  
                                 .......
                                 .......     
                            

                            hier sieht man, nachdem ich den player destroyed habe, dass null gelogt wird - verstehe das einfach nicht

                            Image 8.png

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            OliverIOO 1 Antwort Letzte Antwort
                            0
                            • OliverIOO OliverIO

                              @liv-in-sky

                              ich habe mir das mal angeschaut und glaube das es in einem html widget zu schwierig ist so umzusetzen, das man davon beliebig viele in eine view einbauen kann.

                              Problem 1:
                              Das skript erzeugt ein eigenes Skripttag über das es die eigentliche Bibliothek von yoututbe lädt.
                              Wenn du mehrere widgets einfügst, dann wird die bibliothek mehrfach geladen. das könnte Probleme geben-

                              Problem 2:
                              Das Skript nutzt eine Funktion, welche von der geladenen Bibliothek aufgerufen wird, wenn die bibliothek geladen ist. diese funktion darf nur einmal existieren. wenn man mehrere html widgets mit dieser funktion zu vis hinzufügt, wird nur der letzte aufgerufen und die anderen nicht.

                              Meiner Meinung nach könnte man das nur umgehen wenn man ein eigenes widget baut, Dort wäre dann allgemeiner Code und der wüsste wieviel playerwidgets gleichzeitig auf einer vis sich befinden und kann das regeln.

                              zum Problem mit dem abbrechen von setInterval.
                              Um den abzubrechen, muss man sich die ID merken, die setInterval beim ersten Aufruf zurückgibt und clearInterval mit diesem ID löscht dann diesen.
                              Besser wäre setTimeout zu verwenden und am Ende des Codes dann den immer wieder neu aufzurufen, solange du abbrechen willst, dann einfach nicht nochmal neu aufrufen

                              https://developer.mozilla.org/de/docs/Web/API/setTimeout

                              liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von
                              #14

                              @oliverio sagte in script im html widget hat fehler:

                              Problem 1:
                              Das skript erzeugt ein eigenes Skripttag über das es die eigentliche Bibliothek von yoututbe lädt.
                              Wenn du mehrere widgets einfügst, dann wird die bibliothek mehrfach geladen. das könnte Probleme geben-
                              Problem 2:
                              Das Skript nutzt eine Funktion, welche von der geladenen Bibliothek aufgerufen wird, wenn die bibliothek geladen ist. diese funktion darf nur einmal existieren. wenn man mehrere html widgets mit dieser funktion zu vis hinzufügt, wird nur der letzte aufgerufen und die anderen nicht.

                              ich hätte diese player in verschiedenen vis-projecten - daher sollte das kein thema sein -verschiedene geräte, die verschiedene vis projekte und deren views nutzen

                              in einem project in verschiedenen views - da hast du sicher recht - das ginge so nicht

                              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                              1 Antwort Letzte Antwort
                              0
                              • liv-in-skyL liv-in-sky

                                @oliverio

                                was ich nicht verstehe - das log zeigt null aber das if reagiert nicht - hast du eine idee , warum das so sein könnte - dann wäre alle gut und ich könnte das schon hinbkommen

                                    var ytInter=  setInterval( function () {
                                         console.log(player.i);
                                     if(player.i == null || player.i==undefined || !player) {console.log("AUS");clearInterval(ytInter);}  
                                     .......
                                     .......     
                                

                                hier sieht man, nachdem ich den player destroyed habe, dass null gelogt wird - verstehe das einfach nicht

                                Image 8.png

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von
                                #15

                                @liv-in-sky woher kommt i ?

                                innerhalb von setTimeout/setInterval bis du nicht mehr im normalen Skript scope.
                                d.h. ein vor setInterval definiertes i ist innen drin nicht mehr verfügbar.
                                du kannst mal probieren das i (leider sehe ich den code dafür nicht) mit let anstatt mit var zu deklarieren.
                                wenn das nicht funktioniert, dann muss man der funktion das i per bind mitgeben.
                                aber irgendwie glaube ich hast du bei player.i noch ein denkfehler.
                                zeig mal den code wo i definiert wird

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                liv-in-skyL 1 Antwort Letzte Antwort
                                0
                                • OliverIOO OliverIO

                                  @liv-in-sky woher kommt i ?

                                  innerhalb von setTimeout/setInterval bis du nicht mehr im normalen Skript scope.
                                  d.h. ein vor setInterval definiertes i ist innen drin nicht mehr verfügbar.
                                  du kannst mal probieren das i (leider sehe ich den code dafür nicht) mit let anstatt mit var zu deklarieren.
                                  wenn das nicht funktioniert, dann muss man der funktion das i per bind mitgeben.
                                  aber irgendwie glaube ich hast du bei player.i noch ein denkfehler.
                                  zeig mal den code wo i definiert wird

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  schrieb am zuletzt editiert von
                                  #16

                                  @oliverio

                                  wenn ich als ersten befehl innerhalb setInterval den clearInterval aufrufe stoppt das script - aber das console log("AUS") wird schon nicht ausgeführt - if trifft nicht zu - das kapier ich nicht

                                  das i definiert der yt-player - hier das ganze object - console.log(player) - ganz unten siehst du i -

                                  Image 9.png

                                  das war der wert, der mir aufgefallen war - daher nutze ich diesen wert - ich kann auch auf player prüfen - das geht auch nicht

                                  nach dem befehl destroy player kommt das als object zurück - daher habe ich i gnommen

                                  Image 10.png

                                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                  1 Antwort Letzte Antwort
                                  0

                                  Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                  Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                  Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                  Registrieren Anmelden
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  554

                                  Online

                                  32.8k

                                  Benutzer

                                  82.8k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe