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.6k

  • 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.
  • 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

                      735

                      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