Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [gelöst] hqwidget Checkbox in Vis per Skript bearbeiten

    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

    [gelöst] hqwidget Checkbox in Vis per Skript bearbeiten

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

      Hallo zusammen!
      ich würde gerne mit meinem hqwidget Checkbox Hue Szenen schalten.

      hqwidgetCheckbox.png

      Hue Szenen lassen sich in diesem Zusammenhang bekanntlich nicht "ausschalten". Daher würde ich gerne den Schalter nach 5 Sekunden wieder auf false springen lassen. Ich habe das jetzt folgendermaßen gelöst. Ich habe einen Datenpunkt erstellt und dazu ein BlocklySkript geschrieben. Das funktioniert auch so. Allerdings finde ich das sehr umständlich. Daher die Frage, wie ich das ganze direkt in der Vis über "Skripte" lösen kann. Bin in Sachen JavaScript allerdings noch ganz am Anfang. Die entscheidende Idee fehlt mir noch. Vielleicht habt ihr dazu Lösungen für mich?
      Vielen Dank schon mal!!!

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @Karel Puhli last edited by MCU

        @Karel-Puhli vorab
        https://forum.iobroker.net/topic/28680/vis-allgemein-skripte/4

        https://forum.iobroker.net/topic/3261/schalter-in-vis-zum-script-starten/3

        Karel Puhli 1 Reply Last reply Reply Quote 0
        • Karel Puhli
          Karel Puhli @MCU last edited by

          @MCU

          Danke schon mal für die Links. Ich habe nun folgenden Code in Vis unter Skripte eingefügt.

          on ({
          
          id: "0_userdata.0.Meine_Geräte.Nordlichter",
          
          change: 'ne',
          
          val: true
          
          },
          
          function(){
          
          
             setStateDelayed('0_userdata.0.Meine_Geräte.Nordlichter', false, 5000, true);
          
                      }
          
              );
          

          Es tut sich aber nichts. Wenn ich den selben Code im JavaScript Adapter ausführen lasse, funktioniert alles. Wo ist mein Denkfehler?

          Grüße!

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @Karel Puhli last edited by MCU

            @Karel-Puhli https://www.iobroker.net/#de/documentation/viz/app.md
            Da ist ein Beispiel hinterlegt vielleicht hilft es?

            $document.on..... ?

            var viewOrder = ['View 1','View 2','View 3','View 4','View 5','View 6'];
            
            $(document).on('swipe', function (event){
            
              event.preventDefault();
              if (event.originalEvent.touch.delta.x < -200 && event.originalEvent.touch.delta.y > -30 && event.originalEvent.touch.delta.y < 30) {
                if (viewOrder.indexOf(vis.activeView) < viewOrder.length - 2)
                  vis.changeView(viewOrder[viewOrder.indexOf(vis.activeView) + 1]);
                 else
                  vis.changeView(viewOrder[0]);
              } else
              if (event.originalEvent.touch.delta.x > 200 && event.originalEvent.touch.delta.y > -30 && event.originalEvent.touch.delta.y < 30) {
                if (viewOrder.indexOf(vis.activeView) > 0)
                  vis.changeView(viewOrder[viewOrder.indexOf(vis.activeView) - 1]);
                 else
                  vis.changeView(viewOrder[viewOrder.length - 1]);
               }
            });
            
            M 1 Reply Last reply Reply Quote 0
            • M
              MCU @MCU last edited by

              Man muss anscheinend mit den Scripten bezogen auf das HTML-Objekt arbeiten. In dem Moment der Bearbeitung ist ja die Seite eine HTML-Seite!

              var objTag = document.getElementById("w00072");

              M Karel Puhli 2 Replies Last reply Reply Quote 0
              • M
                MCU @MCU last edited by MCU

                @MCU https://forum.iobroker.net/topic/12723/einfach-mal-zeigen-will-teil-2/892

                https://forum.iobroker.net/topic/7395/zugriff-auf-objekt-in-script/8

                Karel Puhli 1 Reply Last reply Reply Quote 0
                • Karel Puhli
                  Karel Puhli @MCU last edited by

                  @MCU

                  Vielen lieben Dank! Ich versuche mal hier was passendes heraus zu suchen!

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    MCU @Karel Puhli last edited by

                    @Karel-Puhli https://forum.iobroker.net/topic/30877/script-in-vis-wozu-bzw-wie-funktionerts/2

                    1 Reply Last reply Reply Quote 0
                    • Karel Puhli
                      Karel Puhli @MCU last edited by Karel Puhli

                      @MCU

                      Man muss anscheinend mit den Scripten bezogen auf das HTML-Objekt arbeiten. In dem Moment der Bearbeitung ist ja die Seite eine HTML-Seite!

                      var objTag = document.getElementById("w00072");

                      Das war der entscheidende Tip!

                      Du kannst aus den Projekt-Skripten nicht auf die Objekte zugreifen. Die Vis-Skripte laufen im Browser, nicht auf dem Server, wo sich die Objekte befinden.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        MCU @Karel Puhli last edited by

                        @Karel-Puhli Wenn es funktioniert, stellst du bitte das Script und die entsprechenden Widget Bilder zur Verfügung. Dann können andere das nachvollziehen. Danke.

                        1 Reply Last reply Reply Quote 0
                        • Karel Puhli
                          Karel Puhli last edited by

                          Naja, somit kann ich eigentlich die Eingangsfrage mit nein beantworten. Das scheint dann tatsächlich nur über ein Javascript / Ereignis / Datenpunkt zu laufen.

                          Für den Reiter Skripte in Vis kommen beispielsweise folgende Möglichkeiten in Betracht.

                          <!DOCTYPE html>
                          <html>
                          <div id="div1">
                          <p onclick="on()" id="p1">Hallo</p>
                          <p>ihr lieben</p>
                          </div>
                          </html>
                          

                          Ein HTML Widget

                          function on() {
                              document.getElementById("p1").style.backgroundColor = ("yellow");
                              document.getElementById("w00048").style.backgroundColor = ("blue");
                          }
                          

                          Das Skript reagiert auf das Klickevent onclick und setzt dann den <p>Hallo auf gelb und das ganze Widget auf blau.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          982
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          vis
                          2
                          11
                          547
                          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