Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Dynamische Höhe durch Binding wechselt nach unten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Dynamische Höhe durch Binding wechselt nach unten

Geplant Angeheftet Gesperrt Verschoben Gelöst Visualisierung
vis
18 Beiträge 3 Kommentatoren 1.5k Aufrufe 9 Watching
  • Ä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
    #8

    @Peoples - erstnmal danke für deine mühe!

    also das mit der farben änderung kann ich schon mal nachmachen ! {pv:sma-em.0.3002852993.psurplus;netz:sma-em.0.3002852993.pregard;pv > netz ? 'green' : 'red'}

    bei mir: {wert:controll-own.0.TemperaturWidget;wert=4 ? "#6585f6":"transparent"} -> ich nutze das anders - kann man in diese zeile auch mehrere vergleiche schreiben ? das TemperaturWidget bringt die werte 1,2,3,4 oder 5. ich würde gerne für jeden wert eine andere farbe nutzen - hast du da noch einen tipp?

    was ich garnicht verstehe:

    Image 1.png

    warum steht in der cssklasse :

     {vb:javascript.0.Photovoltaik.Momentan_Verbrauch;pr:sma-em.0.3002852993.pregard;(200/Math.round(vb))*Math.round(pr) <195? 'PV_Pegel_kleiner90' : 'PV_Pegel_90'}
    

    reicht die "PV_Pegel_90" angabe allein 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
    • PeoplesP Peoples

      Wenn die 5 Bilder auch noch gewünscht sind stell ich sie gerne mit ein

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

      @Peoples

      jetzt verstehe ich - du berechnest, welche css klasse du benutzen willst - cool !

      kanns tdu meine andere frage beantworten ?

      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 Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von OliverIO
        #10

        das nennt sich binding.
        erklärt wird es (einigermaßen) hier
        https://github.com/ioBroker/ioBroker.vis

        in der basis ist es eine notation, wie verschiedene (rechen-) operationen der reihe nach ausgführt wird.

        das folgende wäre dann wie folgt zu interpretieren:
        {vb:javascript.0.Photovoltaik.Momentan_Verbrauch;pr:sma-em.0.3002852993.pregard;(200/Math.round(vb))*Math.round(pr) <195? 'PV_Pegel_kleiner90' : 'PV_Pegel_90'}

        Wert aus
        datenpunkt javascript.0.Photovoltaik.Momentan_Verbrauch
        in Variable vb

        Wert aus
        datenpunkt sma-em.0.3002852993.pregard
        in Variable pr

        das folgende ist dann ein tertiärer operator wie es in viele programmiersprachen gibt,
        über den man verkürzt if/then/else darstellen kann

        (200/Math.round(vb))*Math.round(pr) <195? 'PV_Pegel_kleiner90' : 'PV_Pegel_90'

        das wäre dann
        if (200/Math.round(vb))*Math.round(pr) <195 {
        'PV_Pegel_kleiner90'
        } else {
        'PV_Pegel_90'
        }

        wenn das dann im feld für die css-klasse steht, wird abhängig von der berechnung (wahr/falsch) der eine oder der andere css klassennamen verwendet und die entsprechende formatierung auf das html element angewendet.

        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

          das nennt sich binding.
          erklärt wird es (einigermaßen) hier
          https://github.com/ioBroker/ioBroker.vis

          in der basis ist es eine notation, wie verschiedene (rechen-) operationen der reihe nach ausgführt wird.

          das folgende wäre dann wie folgt zu interpretieren:
          {vb:javascript.0.Photovoltaik.Momentan_Verbrauch;pr:sma-em.0.3002852993.pregard;(200/Math.round(vb))*Math.round(pr) <195? 'PV_Pegel_kleiner90' : 'PV_Pegel_90'}

          Wert aus
          datenpunkt javascript.0.Photovoltaik.Momentan_Verbrauch
          in Variable vb

          Wert aus
          datenpunkt sma-em.0.3002852993.pregard
          in Variable pr

          das folgende ist dann ein tertiärer operator wie es in viele programmiersprachen gibt,
          über den man verkürzt if/then/else darstellen kann

          (200/Math.round(vb))*Math.round(pr) <195? 'PV_Pegel_kleiner90' : 'PV_Pegel_90'

          das wäre dann
          if (200/Math.round(vb))*Math.round(pr) <195 {
          'PV_Pegel_kleiner90'
          } else {
          'PV_Pegel_90'
          }

          wenn das dann im feld für die css-klasse steht, wird abhängig von der berechnung (wahr/falsch) der eine oder der andere css klassennamen verwendet und die entsprechende formatierung auf das html element angewendet.

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

          @OliverW danke dir - so ungefähr habe ich es verstanden. das mit dem tertiären operator habe ich schon mal irgendwo gesehen.

          weißt du, ob mehrere abfragen möglich sind - ähnlich wie bei case:

          wenn 1 dann gelb
          wenn 2 dann rot
          wenn 3 dann blau ... bis 5

          ich arbeite momentan mit 5 widgets, die über die sichbarkeit arbeiten. könnte ich das in ein widget packen ? vielleicht so:

          lt. der anleitung, müßte man befehle hintereinander eingeben können und mit strich-punkt getrennt. ein anderer threat hat es so geschrieben:

          {wert:controll-own.0.TemperaturWidget;wert > 0 ? "#6585f6" :: wert > 1 ? "#820816" :: wert > 2 ? "#f7ea3b" :: wert > 3 ? "#eea72b" ::  wert > 4 ? "#135e0d" :"#000000"}
          

          oder:

          {wert:controll-own.0.TemperaturWidget;wert = 1 ? "#6585f6" :: wert = 2 ? "#820816" :: wert = 3 ? "#f7ea3b" :: wert = 4 ? "#eea72b" :: "#135e0d"}
          

          irgendwie bekomme ich es nicht hin - hast du noch einen tipp

          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 Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #12

            {a==1?"gelb";a==2?"rot";a==3?"blau";a==4?"xxx";a==5?"yyy";"kein treffer"}
            direkt nicht getestet, aber den false-part muss man nicht angeben oder nur einmal
            wenn es aber komplexer wird, würde ich mir im view eine funktion bauen und diese dann im binding
            einbauen. dass lässt sich dann in chrome oder firefox besser debuggen.

            javascript wäre generell besser, da diese notation ja dynamisch interpretiert werden muss und dass auch performance kostet
            dann würde das nur so aussehen:
            {meineTestfunktion(a)}

            und in skripte
            function meineTestfunktion(a) {
            if (a==1) {
            return "gelb";
            }
            if (a==2) {
            return "rot";
            }
            if (a==3) {
            return "blau";
            }
            if (a==4) {
            return "xxx";
            }
            if (a==5) {
            return "yyy";
            }
            return "irgendwas";
            }

            auch hier nur aus dem kopf zusammengeschrieben.
            javascript kann mancham mit dem funktions und variabel-scope tückisch sein.
            aber das grundprinzip müsste es klar machen.

            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

              {a==1?"gelb";a==2?"rot";a==3?"blau";a==4?"xxx";a==5?"yyy";"kein treffer"}
              direkt nicht getestet, aber den false-part muss man nicht angeben oder nur einmal
              wenn es aber komplexer wird, würde ich mir im view eine funktion bauen und diese dann im binding
              einbauen. dass lässt sich dann in chrome oder firefox besser debuggen.

              javascript wäre generell besser, da diese notation ja dynamisch interpretiert werden muss und dass auch performance kostet
              dann würde das nur so aussehen:
              {meineTestfunktion(a)}

              und in skripte
              function meineTestfunktion(a) {
              if (a==1) {
              return "gelb";
              }
              if (a==2) {
              return "rot";
              }
              if (a==3) {
              return "blau";
              }
              if (a==4) {
              return "xxx";
              }
              if (a==5) {
              return "yyy";
              }
              return "irgendwas";
              }

              auch hier nur aus dem kopf zusammengeschrieben.
              javascript kann mancham mit dem funktions und variabel-scope tückisch sein.
              aber das grundprinzip müsste es klar machen.

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

              @OliverW

              also funktioniert so nicht - ich kann mit max. 3 werten arbeiten

              {v:controll-own.0.TemperaturWidget;v < 2 ? "#FFEB3B" :: v < 4 ? "#4CAF50" ::  "#F44336"}
              

              {a==1?"gelb";a==2?"rot";a==3?"blau";a==4?"xxx";a==5?"yyy";"kein treffer"} -> geht leider nicht - habe tausende variationen probiert :-(

              {wert:controll-own.0.TemperaturWidget;wert==1 ? "#15830c";wert==2 ? "#820816";wert==3 ? "#f7ea3b";wert==4 ? "#eea72b";wert==5 ? "#000000"}
              

              danke für deine ausführlichen beschreibungen - werde wohl mit einem extra script arbeiten müssen.

              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

              PeoplesP 1 Antwort Letzte Antwort
              0
              • OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #14

                Werd das mal selbst probieren, eigentlich müsste das so funktionieren

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

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

                  @OliverW

                  also funktioniert so nicht - ich kann mit max. 3 werten arbeiten

                  {v:controll-own.0.TemperaturWidget;v < 2 ? "#FFEB3B" :: v < 4 ? "#4CAF50" ::  "#F44336"}
                  

                  {a==1?"gelb";a==2?"rot";a==3?"blau";a==4?"xxx";a==5?"yyy";"kein treffer"} -> geht leider nicht - habe tausende variationen probiert :-(

                  {wert:controll-own.0.TemperaturWidget;wert==1 ? "#15830c";wert==2 ? "#820816";wert==3 ? "#f7ea3b";wert==4 ? "#eea72b";wert==5 ? "#000000"}
                  

                  danke für deine ausführlichen beschreibungen - werde wohl mit einem extra script arbeiten müssen.

                  PeoplesP Offline
                  PeoplesP Offline
                  Peoples
                  schrieb am zuletzt editiert von Peoples
                  #15

                  @liv-in-sky

                  Hab das gerade mal so versucht dann gehts:

                  {wert:javascript.0.test.wert;wert==1 ? "#15830c" :: wert==2 ? "#820816" :: wert==3 ? "#f7ea3b" :: wert==4 ? "#eea72b":: "#000000"} 
                  

                  Die Formatierung war nur falsch

                  Ich beantworte keine Fragen zu Themen via PN

                  liv-in-skyL 1 Antwort Letzte Antwort
                  2
                  • PeoplesP Peoples

                    @liv-in-sky

                    Hab das gerade mal so versucht dann gehts:

                    {wert:javascript.0.test.wert;wert==1 ? "#15830c" :: wert==2 ? "#820816" :: wert==3 ? "#f7ea3b" :: wert==4 ? "#eea72b":: "#000000"} 
                    

                    Die Formatierung war nur falsch

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

                    @Peoples @OliverW

                    es gibt tage - 1,5 stunden habe ich an dieser einen zeile herumprobiert (ich war teilweise nah dran)

                    jetzt funktioniert es - vielen dank - an euch beide - für die unterstützung

                    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

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

                      @Peoples @OliverW

                      es gibt tage - 1,5 stunden habe ich an dieser einen zeile herumprobiert (ich war teilweise nah dran)

                      jetzt funktioniert es - vielen dank - an euch beide - für die unterstützung

                      PeoplesP Offline
                      PeoplesP Offline
                      Peoples
                      schrieb am zuletzt editiert von
                      #17

                      @liv-in-sky
                      Ich habe gelernt, wenn es nur 1,5 Stunden sind dann wärst du ja Recht zügig :sweat_smile:
                      Es kommt vor dass ich den ganzen Tag an einem Script sitze das nicht funktioniert um am nächsten fest zu stellen dass ich eine Klammer falsch gesetzt habe :joy:

                      Ich beantworte keine Fragen zu Themen via PN

                      1 Antwort Letzte Antwort
                      1
                      • liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von liv-in-sky
                        #18

                        für andere interessierte - habe das ganze auch noch mit gradient verschmolzen - sieh sieht schöner aus - wird zwar nicht im editor angezeigt aber unter chrome und der vis-app funktioniert es

                        {wert:controll-own.0.TemperaturWidget;wert==1 ? "linear-gradient(to top, #bfceed 2px, #a5aebe 60px )" :: wert==2 ? "linear-gradient(to top, #66b8ea 2px, #8cdced 60px )" :: wert==3 ? "linear-gradient(to top, #d0a82f 2px, #ebe22d 60px )" :: wert==4 ? "linear-gradient(to top, #e2bcd7e2 5px, #b34e97 60px )":: "linear-gradient(to top, #e8b4c3 2px, #de124d 60px )"}
                        

                        eingetragen unter:

                        Image 1.png

                        Image 4.png Image 2.png Image 3.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
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        574

                        Online

                        32.7k

                        Benutzer

                        82.4k

                        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