Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. VIS und Scripte

    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

    VIS und Scripte

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @Andre Heinze last edited by

      @andre-heinze

      @andre-heinze sagte in VIS und Scripte:

      Gibt es vielleicht einen Adapter der genau dies unterstützt?

      weiß ich nicht ? glaube nicht

      Wie binde ich JS Dateien in VIS ein, und nicht einfach in HTML mit <script>

      es gibt in der vis auf der rechten seite ein ab scripte

      Image 10.png

      wie kann ich die onclick function auf ein widget mit der ID=w00001 ausführen
      evtl mit jquery:

      $('#w00317').click(function () { 
          var audio = document.getElementById("iradio");
          console.log("pause")
          audio.pause();
      });
      
      Andre Heinze 1 Reply Last reply Reply Quote 0
      • Andre Heinze
        Andre Heinze @liv-in-sky last edited by

        @liv-in-sky
        und genau das ist das Problem. Ich kann auf die id kein onclick setzen oder später mit javascript finden.

        7fb8ae78-306f-48fc-9fd5-c3ca27218208-image.png

        Das liegt vielleicht daran, dass JS im Header vollständig geladen wird.
        d90823cd-d829-4d93-a7c1-acf4609f2def-image.png

        Aber das warten auf das Dokument funktioniert hier auch nicht.

        liv-in-sky 1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @Andre Heinze last edited by liv-in-sky

          @andre-heinze

          schau mal da: https://forum.iobroker.net/post/603137

          so funktioniert es - ist ein html widget mit "rrrr" als text

          let timeout11 = 10500; //Zeit erhöhen wenn der Klick nicht angenommen wird
          
          $(document).ready( () => {
          
            setTimeout( () => {
          
           $('#w00431').click(function () { 
                 alert("dd");
          });
            }, timeout11);
          
          });
          

          AApossis (34).gif

          den timeout braucht man - sonst geht es nicht

          Andre Heinze 1 Reply Last reply Reply Quote 0
          • Andre Heinze
            Andre Heinze @liv-in-sky last edited by

            @liv-in-sky Danke!

            ja hab mir schon gedacht. Beim Inspizieren wird der JS Code vor der HTML geladen.

            Einen Timeout will ich vermeiden soll ja nicht nur eine Funktion sein die geladen wird.

            Entweder such ich im Docker die Defaul HTML Datei raus und binde dort meine code als Absoluten Pfad mit ein, oder das letzte HTML Objekt wird wird meine Scriptdatei. Umständlich wird es wenn ich neue Sachen in die Visio einfüge, da dies immer als letztes Element eingebunden werden muss.

            Kann ich die ID also w00040 bestimmen wann diese geladen wird?

            liv-in-sky 2 Replies Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @Andre Heinze last edited by

              @andre-heinze alle deine vorschläge hören ich kompizierter an, als ein timeout. aber ich wäre auch an einer lösung interessiert - ich hatte damit bisher kein problem, da meine html tabellen, die ich für die vis erstelle, die scripte beinhalten.

              ein timeout ist ja auch nur ein problem, wenn du direkt nach einen browser refresh etwas ausführen willst, weil du direkt nach dem refresh in der vis etwas sehen oder oder machen willst.

              @OliverIO
              muss dich wieder mal fragen, ob du für unser problem eine gute idee hast. https://forum.iobroker.net/post/609009 zeigt das problem. man braucht unbedingt diesen timeout, damit im scripte tab (in der vis) das jquery funktioniert - kann man das irgendwie lösen

              OliverIO 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky last edited by

                @liv-in-sky sagte in VIS und Scripte:

                . https://forum.iobroker.net/post/609009 zeigt das problem. man braucht unbedingt diesen timeout, damit im scripte tab (in der vis) das jquery funktioniert

                @Glasfaser - hast du vielleicht eine idee dazu

                Glasfaser 1 Reply Last reply Reply Quote 0
                • Glasfaser
                  Glasfaser @liv-in-sky last edited by

                  @liv-in-sky

                  Habe ich schon länger verfolgt , aber so ganz werde ich nicht schlau daraus .

                  liv-in-sky 1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @Glasfaser last edited by liv-in-sky

                    @glasfaser was würde dich schlau machen?

                    vielleicht helfen da deine überlegungen

                    Glasfaser 1 Reply Last reply Reply Quote 0
                    • Glasfaser
                      Glasfaser @liv-in-sky last edited by

                      @liv-in-sky

                      Also wenn ich es nochmal quer lese ( Sorry )

                      Er möchte nur ein Dialog Popup . ( Inhalt mit der Steuerung mit übernahme der $('#wxxxxx') )

                      Also ... auf klick auf irgendeinem Lampen Widget wird die ID übernommen und in das PopUp übertragen , damit er nur einmal dieses Popup nutzt zur Steuerung

                      liv-in-sky 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @Andre Heinze last edited by liv-in-sky

                        @andre-heinze was sich auch mache - ich habe ein widget, welches nur scripte für ein besonderes project enthält - das widget enthält nichts sichtbares, aber die sripte können angewendet werden - nicht schön, aber funktioniert

                        ich habe auch ein widget, welches ich durch einen datenpunkt "misbrauche" - ich lade über ein "normales" javascript einen datenpunkt mit verschiedenenen scripte, welche ich in der vis brauche - die vis lädt den aktalisierten dp und führt das script darin aus

                        1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @Glasfaser last edited by

                          @glasfaser das darf @Andre-Heinze beantworten 🙂

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

                            @liv-in-sky

                            Dann wäre deine Lösung , die du schon immer nutzt , eigentlich eleganter !

                            Dies kenne ich hierher ...

                            https://forum.iobroker.net/topic/23346/vorlage-variable-zeitsteuerung-mit-vis-editor

                            wo du es noch für dich verfeinert hast 😉

                            1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @liv-in-sky last edited by OliverIO

                              @liv-in-sky sagte in VIS und Scripte:

                              @andre-heinze alle deine vorschläge hören ich kompizierter an, als ein timeout. aber ich wäre auch an einer lösung interessiert - ich hatte damit bisher kein problem, da meine html tabellen, die ich für die vis erstelle, die scripte beinhalten.

                              ein timeout ist ja auch nur ein problem, wenn du direkt nach einen browser refresh etwas ausführen willst, weil du direkt nach dem refresh in der vis etwas sehen oder oder machen willst.

                              @OliverIO
                              muss dich wieder mal fragen, ob du für unser problem eine gute idee hast. https://forum.iobroker.net/post/609009 zeigt das problem. man braucht unbedingt diesen timeout, damit im scripte tab (in der vis) das jquery funktioniert - kann man das irgendwie lösen

                              Eine feste Zeit vorzugeben ist gefährlich, da manche Endgeräte langsamer und andere schneller sind.
                              Da in vis die einzelnen Widgets dynamisch generiert werden und die Reihenfolge nicht feststeht, weiß man nicht wann der Code ausgeführt wird.

                              Da ich aktuell nicht so intensiv die Posts lesen konnte, weiß ich nicht in welchem Kontext das document.ready ausgeführt wird.
                              Wenn es in einem html Widget drin steht, ist es unnötig, da zu diesem Zeitpunkt das document definitiv vollständig geladen wurde.

                              Um das vis Problem zu lösen, kann man in die vorhandenen widgets schauen

                              Also Vorschlag den folgenden Code

                              VAR widgetID=„myId“
                              function doanything() {
                                          var $div = $('#' + widgetID);
                                          // if nothing found => wait
                                          if (!$div.length) {
                                              return setTimeout(function () {
                                                  doanything();
                                              }, 100);
                                          }
                                          console.log(„Widget wurde nun von vis erzeugt“;
                                          //ab hier click oder andere Events oder Code ausführen
                              }
                              doanything();
                              
                              
                                   
                              
                              liv-in-sky 1 Reply Last reply Reply Quote 1
                              • liv-in-sky
                                liv-in-sky @OliverIO last edited by

                                @oliverio das ist natürlich clever, auf das widget zu warten - danke - hatte mir schon die ganze zeit überlegt, auf was jquery "hören" könnte - das ist dann die lösung - auf das widget selbst

                                @Andre-Heinze muss nun wissen, ob das für ihn funktioniert

                                ohne den vorschlag von @OliverIO hätte ich einfach ein widget mit all meinen code (popup,..) über das "normale" schalter widget gelegt (oder direkt daneben,, oder in die ecke,...) - so kann dann auch ein selbsterstelltes popup mit zusätzlichen settings aufgerufen werden - der code könnte dannn sogar über ein binding von einem dp geholt werden bzw die "normalen" iobroker scripte könnten individuel über ein script erzeugt werden

                                Andre Heinze 1 Reply Last reply Reply Quote 0
                                • Andre Heinze
                                  Andre Heinze @liv-in-sky last edited by

                                  @liv-in-sky
                                  ich hab mich entschieden hierfür ein eigenes Widget oder Adapter zu erstellen. Sobald es fertig ist melde ich mich hier nochmal.

                                  liv-in-sky 1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @Andre Heinze last edited by

                                    @andre-heinze

                                    bitte posten, wenn fertig - würd mich interessieren

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    456
                                    Online

                                    31.9k
                                    Users

                                    80.2k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    17
                                    713
                                    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