Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Widget ausblenden, wenn anderes Widget aktiv ist

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Widget ausblenden, wenn anderes Widget aktiv ist

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

      Hi,

      gibt es eine Möglichkeit in der Iobroker VIS ein Widget auszublenden, wenn ein anderes aktiv ist ? Quasi innerhalb der VIS eine if Anweisung zu schreiben im Script Reiter ?
      Konkret geht es mir gerade um 2 Widgets (Mülltonnen), die die selbe Stelle belegen und sich gerade überlagern. Normallerweise ist das nicht der Fall, dass 2 gleichzeitig aktiv sind und somit kommen sie sich nicht in die Quere.
      Da es aber gerade eine zufällige Konstellation gibt, die wohl nur einmal im Jahr vorkommt, habe ich 2 Tonnen Widgets aktiv, da die Bedingung bei beiden kleiner 2 Tage ist und sie sich somit beide aktiv schalten.
      Cool wäre es, wenn ich zusätzlich abfragen könnte, dass wenn Widget x aktiv ist, Widget y aus bleiben soll.
      Ich hoffe, dass das verständlich war.
      Danke

      Cinimod OliverIO BananaJoe liv-in-sky 4 Replies Last reply Reply Quote 0
      • Cinimod
        Cinimod Most Active @manny4566 last edited by

        @manny4566

        Hallo Manny,

        erstmal stellt sich mir die frage, wenn beide Widgets zeitgleich auftauchen, hat es ja den Grund das beide Ereignisse auftreten, oder in kürze auftreten. Macht es dann sinn eines verschwinden zu lassen, über das du dann nicht benachrichtigt wirst ?

        Kennst du die Option der Sichtbarkeit, dort kannst du einen beliebigen Datenpunkt als sichtbar bedingung einstellen.
        Vielleicht hast du einen Datenpunkt der sagt wie viele Ereignisse gerade aktiv sind, und du gibt ihm die Bedingung das das Widget nur sichtbar sein soll wenn dieser Datenpunkt den Wert "1" hat.

        Bildschirmfoto 2021-11-16 um 22.10.15.png

        1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @manny4566 last edited by

          @manny4566
          und wenn du die Sichtbarkeitsbedingung des ersten Widgets umkehrst und im anderen widget einträgst?
          Wenn du uns die Bedingung nennst, kann man evtl helfen.
          vis bietet direkt da keine Möglichkeit.
          Evtl. könnte man mit javascript jquery etwas machen.
          Das ist aber unter vis etwas hakelig, da die widgets dynamisch generiert werden

          1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @manny4566 last edited by BananaJoe

            @manny4566 Nimm die vis-inventwo-Widgets, das Multi-Widget kann beim Typ "State" mehrere Zustände annehmen - und jeder lässt sich mit einem eigenen Wert, aber auch verschiedenen Datenpunkten festlegen. Treffen mehrere Bedingungen zu wird es meine ich der erste Treffer.

            Ich nutze das zum Beispiel um 4 verschiedene Zustände meiner Waschmaschine anzuzeigen (Aus, Standby, Wäscht, ist fertig)

            M 1 Reply Last reply Reply Quote 0
            • M
              manny4566 @BananaJoe last edited by manny4566

              @bananajoe said in Widget ausblenden, wenn anderes Widget aktiv ist:

              inventwo

              danke für den Tipp, aber das hilft mir an der Stelle nicht, da es nicht um einfache Werte geht, sondern um das Widget von TrashSchedule. Hätte ich vielleicht direkt besser beschreiben sollen

              @cinimod
              Ja das ist mir bekannt

              @oliverio
              ich mach mal paar Bilder rein und eine bessere Erklärung:

              Es geht um den TrashSchedule:

              4f0860cf-78b9-4175-bdcf-2291efe7fbd8-grafik.png

              Ich habe 4 Adapter, da ich gerne für jede Tonne ein Einzelnes Widget haben möchte.
              Die nächste Tonne wird mir 2 Tage vorher angezeigt in der VIS an einer dafür definierten Stelle.
              Mit der Bedingung wird nur die Tonne angezeigt, die in den nächsten 2 Tagen dran ist, sonst keines der Widgets.
              Jetzt hatte ich den speziellen Fall in dieser Woche, dass eine Tonne Dienstag dran war und eine Mittwoch. Am Montag wurden mir somit beide Widgets angezeigt und haben sich dadurch überlagert.
              Dieser Fall kommt vielleicht nur einmal im Jahr vor und ist sehr selten. Ich hatte ihn bis vor kurzem gar nicht auf dem Schirm.
              Meine Idee war jetzt, ob man nicht eventuell eine weitere Bidungung in form einer if Schleife einbauen könnte unter dem Script Reiter, nach dem Motto, dass das Objekt nur angezeigt werden soll, wenn kein anderes aktiv ist.
              In der Hoffnung, dass das geht.

              BananaJoe 1 Reply Last reply Reply Quote 0
              • BananaJoe
                BananaJoe Most Active @manny4566 last edited by

                @manny4566 Es gibt auch die Datenpunkte - ich habe statt dem TrashSchedule Widget einfach meine eigenen gebaut und die Infos aus den Datenpunkten bezogen:
                ef038dad-15c1-4d25-91e5-93a9314e4781-image.png

                Könnte man natürlich auch übereinander legen bzw. in einem Widget realisieren

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

                  @manny4566

                  was ich noch nicht verstehe: wenn beide aktiv sind, überlagern sie sich - dann ist doch die hintere tonne eh nicht sichtbar ? wenn sie die selben größen haben - oder was ist da das problem ? hast du da mal ein bild

                  theoretisch könnte die datenpunkte in der vis abfragen und mit jquery eines davon ausblenden - dann ist aber die info weg, das beide "eigentlich" fällig sind und beide eigentlich auch angezeigt werden sollten

                  man könnte auch die position der bilder ändern, in abhängigkeit des trashschedule wertes - dann müßte aber auch die position eines bildes in abhängigkeit verschoben werden - falls du die tage auch noch anzeigst - z.b in der mitte des bildes, müßte auch das bedacht werden

                  hier mal beispiele, wie man das anzeigen könnte - ich gehe davon aus, du willst immer den selben bereich nutzen, also die größe eines bildes - -ich habe das nicht getestet, aber es müßte mit bindings möglich sein. das erste bild sind 2 hintereinander - das hintere sieht man nicht - das rechte bild finde ich am besten

                  Image 2.png

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

                    @liv-in-sky
                    Hi,
                    ich hab es mal nachgestellt. Vielleicht hab ich da irgendwo auch einen Denkfehler oder einen Wert falsch.
                    So wäre es normal, mit der Tonne, die heute dran ist:

                    88410cdf-8eef-48e9-a98a-35a7c7c09b70-grafik.png

                    Jetzt hab ich mal den Restmüll dazugeschaltet, die in 6 Tagen dran ist indem ich dort den Wert der Bedingung von 2 auf 6 geändert hab. Es sind somit beide aktiv und überlagern sich:

                    14d41c37-2bdb-4ec2-9a9d-2dc2906c4f23-grafik.png

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

                      @manny4566

                      ok - du nutzt die widget von trashschedule und keine eigenene bilder -es überlagern sich nur die texte - ich muss mir mal kurz die widgets ansehen - ich nutze die nicht

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

                        @liv-in-sky
                        Ja der Text auf jeden Fall.
                        Die Tonne auch etwas . Man sieht die Ränder der Tonne im Hintergrund etwas.

                        Vielleicht kann man das auch mit einem Trick umgehen.
                        Ich weiß leider nicht, was mit jquery so alles möglich ist. Da kenne ich mich nicht aus.
                        Vielleicht kann man die Größe des hinteren Widgets dynamisch anpassen und verkleinern, wenn was anderes aktiv ist und würde somit das hintere Widget gar nicht sehen.
                        Oder ggf. ganz ausschalten?

                        Danke dir

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

                          @manny4566

                          das müßte doch mit opacity funktionieren

                          {wert1:trashschedule.0.type.restmüll.daysLeft; wert1<=2 ? 0 : 100 }

                          das muss in im wertstoff -widget bei ocupacity eingetragen werden

                          Image 3.png

                          du musst aber deinen datenpunkt (hat andere id wie bei mir) angleichen

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

                            @liv-in-sky

                            Hi,

                            ja damit klappt es. Super danke.
                            Aber noch eine Frage dazu.

                            Kann man da auch weitere Werte abfragen und mit einem "oder" vergleichen, welcher von beiden eintrifft, damit am Ende das ganze true ist und ausgeblendet wird?

                            Also sowas z.B.:

                            {wert1:trashschedule.1.next.daysLeft; wert1 <=2 ? 0 : 100 }||{wert2:trashschedule.2.next.daysLeft; wert2 <=2 ? 0 : 100 }
                            

                            Leider klappt die Variante nicht.

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

                              @manny4566 ja geht aber anders

                              beispiel:
                              https://forum.iobroker.net/post/704635

                              {wert1:0_userdata.0.CONTROL-OWN.AAATEST.TestLogic2; wert2:0_userdata.0.CONTROL-OWN.AAATEST.TestLogic; wert3:0_userdata.0.CONTROL-OWN.AAATEST.TestHTMLRefresh; wert1=="true" ? wert2=="true" ? wert3=="true" ? "blinker" :"" : "": ""} 
                              

                              du musst alles in einer geschweiften klammer machen!

                              die if abfrage geht so:

                              wert==2 ? 0 : 100

                              wenn wert gleich 2 dann 0 sonst 100

                              darin musst du dann verschachteln

                              zu deinem beispiel:

                              {dp2:trashschedule.0.type.restmüll.daysLeft; dp1:trashschedule.0.type.papierTonne.daysLeft;  dp2 == 13 || dp1==8 ? 0 : 100 }
                              

                              ABER

                              es gibt wieder mal einen bug (deshalb hat es länger gedauert) in der vis: wenn der zweite dp einen umlaut beinhaltet geht es nicht, daher habe ich das mit papiertonne getestet - steht da biomüll, hat die formel einen fehler
                              wenn du das nutzen willst, geht das nur über ein alias, dass darf dann keinen umlaut haben

                              habe github issue eröffnet:

                              https://github.com/ioBroker/ioBroker.vis/issues/423

                              liv-in-sky created this issue in ioBroker/ioBroker.vis

                              open binding formel hat umlaut problem #423

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

                                @liv-in-sky

                                Danke für die ausführliche Erklärung. Das hilft mir weiter.

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                849
                                Online

                                32.0k
                                Users

                                80.4k
                                Topics

                                1.3m
                                Posts

                                vis
                                5
                                14
                                1170
                                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