Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Bindings in vis

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Bindings in vis

Scheduled Pinned Locked Moved Visualisierung
vis
81 Posts 17 Posters 15.9k Views 27 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mickymM mickym

    @Homoran Eine Zahl mit Umwandeln mittels Number() ?

    Letztlich steht in dem Text zu den Bindings:

    You can use any javascript functions.

    mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by
    #32

    Ich weiß nicht ob das doppelt ist - aber um es in eine Zahl umzuwandeln dann müsste das ja gehen:

    {Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;Number(Strom*0.2)}
    

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    HomoranH 1 Reply Last reply
    0
    • mickymM mickym

      @Homoran said in Bindings in vis:

      in einem HTML-Widget eine unheimlich lange Dezimale

      Funktioniert das denn nicht:

      {Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;round(Strom*0.2*100)/100}
      

      oder das

      {Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;Math.round(Strom*0.2*100)/100}
      
      foxriver76F Offline
      foxriver76F Offline
      foxriver76
      Developer
      wrote on last edited by foxriver76
      #33

      @mickym sagte in Bindings in vis:

      @Homoran said in Bindings in vis:

      in einem HTML-Widget eine unheimlich lange Dezimale

      oder das

      {Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;Math.round(Strom*0.2*100)/100}
      

      Das sollte maximal mit 1.2.10 und 1.2.11 funktionieren, da sich ein Fehler eingeschlichen hat. In 1.2.12 sind number Werte initial wieder Strings.

      Videotutorials & mehr

      Hier könnt ihr mich unterstützen.

      1 Reply Last reply
      0
      • mickymM mickym

        Ich weiß nicht ob das doppelt ist - aber um es in eine Zahl umzuwandeln dann müsste das ja gehen:

        {Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;Number(Strom*0.2)}
        
        HomoranH Do not disturb
        HomoranH Do not disturb
        Homoran
        Global Moderator Administrators
        wrote on last edited by
        #34

        @mickym sagte in Bindings in vis:

        aber um es in eine Zahl umzuwandeln dann müsste das ja gehen:

        leider nein -> NaN!

        aber nochmal Danke!
        es läuft jetzt ausreichend mit dem HTML widget. ich hatte da nur Angst die Formatierungen (Einheit und die Nachkommastellen) nicht hinzubekommen.
        Das ist ja jetzt alles geschafft.

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Reply Last reply
        0
        • JB_SullivanJ Offline
          JB_SullivanJ Offline
          JB_Sullivan
          wrote on last edited by
          #35

          Bin auch gerade auf das Thema Bindung gestoßen, um die Daten meines Solar Wechselrichter tabellarisch darzustellen.

          f3618576-0669-4e7a-8339-72c2db0b8da1-image.png

          Dabei treten bei mir zwei Probleme auf.

          1.) wie kann ich Zahlen die eine führende Null haben, runden (siehe Leistung DC)? Also z,B. 0,1313585 setze ich auf round (4), was dazu führt, das dass Ergebnis "0" ist. Offensichtlich kann der Befehl round keine Zahlen runden die einen "Einer" haben der =<0 ist.

          2.) Meine Tabelle ist für mein dafür Halten nicht besonders umfangreich. Nun bricht aber meine Seiten Performance ganz übel zusammen, wenn ich die Seite mit den bindings aufrufe - teilweise dauert es bis zu 45Sekunden bis die Seite geladen hat.

          @haus-automatisierung hat in seinem Internet Blog das Bindings auch mal angeschnitten und dabei den folgenden Satz hinzugefügt.

          Gibt es dazu schon neue Erkenntnisse, wie sich die Performance verbessern läßt?

          Hinweis:
          Beim Einsatz von zu vielen Objekt-Bindings kann es zu Performance-Problemen kommen. Ich bin hier noch auf der Suche nach einer alternativen Lösung.
          

          ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

          mickymM haus-automatisierungH 2 Replies Last reply
          0
          • JB_SullivanJ JB_Sullivan

            Bin auch gerade auf das Thema Bindung gestoßen, um die Daten meines Solar Wechselrichter tabellarisch darzustellen.

            f3618576-0669-4e7a-8339-72c2db0b8da1-image.png

            Dabei treten bei mir zwei Probleme auf.

            1.) wie kann ich Zahlen die eine führende Null haben, runden (siehe Leistung DC)? Also z,B. 0,1313585 setze ich auf round (4), was dazu führt, das dass Ergebnis "0" ist. Offensichtlich kann der Befehl round keine Zahlen runden die einen "Einer" haben der =<0 ist.

            2.) Meine Tabelle ist für mein dafür Halten nicht besonders umfangreich. Nun bricht aber meine Seiten Performance ganz übel zusammen, wenn ich die Seite mit den bindings aufrufe - teilweise dauert es bis zu 45Sekunden bis die Seite geladen hat.

            @haus-automatisierung hat in seinem Internet Blog das Bindings auch mal angeschnitten und dabei den folgenden Satz hinzugefügt.

            Gibt es dazu schon neue Erkenntnisse, wie sich die Performance verbessern läßt?

            Hinweis:
            Beim Einsatz von zu vielen Objekt-Bindings kann es zu Performance-Problemen kommen. Ich bin hier noch auf der Suche nach einer alternativen Lösung.
            
            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by mickym
            #36

            @JB_Sullivan sagte in Bindings in vis:

            Bin auch gerade auf das Thema Bindung gestoßen, um die Daten meines Solar Wechselrichter tabellarisch darzustellen.

            f3618576-0669-4e7a-8339-72c2db0b8da1-image.png

            Dabei treten bei mir zwei Probleme auf.

            1.) wie kann ich Zahlen die eine führende Null haben, runden (siehe Leistung DC)? Also z,B. 0,1313585 setze ich auf round (4), was dazu führt, das dass Ergebnis "0" ist. Offensichtlich kann der Befehl round keine Zahlen runden die einen "Einer" haben der =<0 ist.

            ....

            Ich kann nicht auf alle Deine Fragen eine Antwort geben. Nur zum round Befehl:
            Der rundet grundsätzlich immer auf den nächsten integer auf und die Nachkommastellen bestimmst über das wann Du es einsetzt.
            Also gibt es keinen Parameter bei round. Möchtest Du 4 Nachkommastellen, dann Wert mit 10.000 multiplizieren- dann runden und dann wieder durch 10.000 dividieren.

            Also:

            round(0.1313585 *10000)/10000
            

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            JB_SullivanJ 1 Reply Last reply
            0
            • mickymM mickym

              @JB_Sullivan sagte in Bindings in vis:

              Bin auch gerade auf das Thema Bindung gestoßen, um die Daten meines Solar Wechselrichter tabellarisch darzustellen.

              f3618576-0669-4e7a-8339-72c2db0b8da1-image.png

              Dabei treten bei mir zwei Probleme auf.

              1.) wie kann ich Zahlen die eine führende Null haben, runden (siehe Leistung DC)? Also z,B. 0,1313585 setze ich auf round (4), was dazu führt, das dass Ergebnis "0" ist. Offensichtlich kann der Befehl round keine Zahlen runden die einen "Einer" haben der =<0 ist.

              ....

              Ich kann nicht auf alle Deine Fragen eine Antwort geben. Nur zum round Befehl:
              Der rundet grundsätzlich immer auf den nächsten integer auf und die Nachkommastellen bestimmst über das wann Du es einsetzt.
              Also gibt es keinen Parameter bei round. Möchtest Du 4 Nachkommastellen, dann Wert mit 10.000 multiplizieren- dann runden und dann wieder durch 10.000 dividieren.

              Also:

              round(0.1313585 *10000)/10000
              
              JB_SullivanJ Offline
              JB_SullivanJ Offline
              JB_Sullivan
              wrote on last edited by JB_Sullivan
              #37

              @mickym sagte in Bindings in vis:

              Also gibt es keinen Parameter bei round.

              Laut der Doku aber schon -
              68fe22a6-d7b8-421a-ab53-b48616c48e71-image.png

              oder ob es ggf. daran liegt, das ich aus einer Rechenoption heraus eine Rundung des Endergebnisses haben möchte?

              {a:fronius.0.inverter.0.IDC_2;b:fronius.0.inverter.0.UDC_2;parseFloat(a)*parseFloat(b); round(2)} W

              ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

              SBorgS 1 Reply Last reply
              0
              • JB_SullivanJ JB_Sullivan

                Bin auch gerade auf das Thema Bindung gestoßen, um die Daten meines Solar Wechselrichter tabellarisch darzustellen.

                f3618576-0669-4e7a-8339-72c2db0b8da1-image.png

                Dabei treten bei mir zwei Probleme auf.

                1.) wie kann ich Zahlen die eine führende Null haben, runden (siehe Leistung DC)? Also z,B. 0,1313585 setze ich auf round (4), was dazu führt, das dass Ergebnis "0" ist. Offensichtlich kann der Befehl round keine Zahlen runden die einen "Einer" haben der =<0 ist.

                2.) Meine Tabelle ist für mein dafür Halten nicht besonders umfangreich. Nun bricht aber meine Seiten Performance ganz übel zusammen, wenn ich die Seite mit den bindings aufrufe - teilweise dauert es bis zu 45Sekunden bis die Seite geladen hat.

                @haus-automatisierung hat in seinem Internet Blog das Bindings auch mal angeschnitten und dabei den folgenden Satz hinzugefügt.

                Gibt es dazu schon neue Erkenntnisse, wie sich die Performance verbessern läßt?

                Hinweis:
                Beim Einsatz von zu vielen Objekt-Bindings kann es zu Performance-Problemen kommen. Ich bin hier noch auf der Suche nach einer alternativen Lösung.
                
                haus-automatisierungH Online
                haus-automatisierungH Online
                haus-automatisierung
                Developer Most Active
                wrote on last edited by
                #38

                @JB_Sullivan sagte in Bindings in vis:

                @haus-automatisierung hat in seinem Internet Blog das Bindings auch mal angeschnitten und dabei den folgenden Satz hinzugefügt.

                Ich glaube Du verwechselst mich :)

                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                📚 Meine inoffizielle ioBroker Dokumentation

                1 Reply Last reply
                0
                • JB_SullivanJ JB_Sullivan

                  @mickym sagte in Bindings in vis:

                  Also gibt es keinen Parameter bei round.

                  Laut der Doku aber schon -
                  68fe22a6-d7b8-421a-ab53-b48616c48e71-image.png

                  oder ob es ggf. daran liegt, das ich aus einer Rechenoption heraus eine Rundung des Endergebnisses haben möchte?

                  {a:fronius.0.inverter.0.IDC_2;b:fronius.0.inverter.0.UDC_2;parseFloat(a)*parseFloat(b); round(2)} W

                  SBorgS Offline
                  SBorgS Offline
                  SBorg
                  Forum Testing Most Active
                  wrote on last edited by
                  #39

                  @JB_Sullivan sagte in Bindings in vis:

                  aus einer Rechenoption heraus eine Rundung des Endergebnisses haben möchte?

                  Jupp, das geht nicht. Du könntest hier nur "a" runden, aber nicht dein Ergebnis aus "a*b". Du brauchst schon ein Konstrukt wie bspw:

                  {a:fronius.0.inverter.0.IDC_2;b:fronius.0.inverter.0.UDC_2;round(((parseFloat(a)*parseFloat(b)) * 100) /100)}
                  

                  Das wird auch mit der Zeit schon "zäh", denn Bindings werden nicht Server seitig ausgeführt, sondern an den Client Rechner übertragen und dann dort vom Browser umgesetzt/berechnet. Das ist nicht unbedingt schnell ;)
                  Gerade Tabellen mit etlichen Bindings/Berechnungen sollte man dann lieber auf dem Server generieren und bspw. als komplettes HTML in einen DP schreiben und diesen dann in der VIS aufrufen.

                  LG SBorg ( SBorg auf GitHub)
                  Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                  JB_SullivanJ 1 Reply Last reply
                  0
                  • SBorgS SBorg

                    @JB_Sullivan sagte in Bindings in vis:

                    aus einer Rechenoption heraus eine Rundung des Endergebnisses haben möchte?

                    Jupp, das geht nicht. Du könntest hier nur "a" runden, aber nicht dein Ergebnis aus "a*b". Du brauchst schon ein Konstrukt wie bspw:

                    {a:fronius.0.inverter.0.IDC_2;b:fronius.0.inverter.0.UDC_2;round(((parseFloat(a)*parseFloat(b)) * 100) /100)}
                    

                    Das wird auch mit der Zeit schon "zäh", denn Bindings werden nicht Server seitig ausgeführt, sondern an den Client Rechner übertragen und dann dort vom Browser umgesetzt/berechnet. Das ist nicht unbedingt schnell ;)
                    Gerade Tabellen mit etlichen Bindings/Berechnungen sollte man dann lieber auf dem Server generieren und bspw. als komplettes HTML in einen DP schreiben und diesen dann in der VIS aufrufen.

                    JB_SullivanJ Offline
                    JB_SullivanJ Offline
                    JB_Sullivan
                    wrote on last edited by
                    #40

                    @SBorg sagte in Bindings in vis:

                    Das wird auch mit der Zeit schon "zäh",

                    Ja, das habe ich schon gemerkt. Darum habe ich jetzt angefangen, die Rechenoperationen in Blocklys auszulagern.

                    Trotzdem hole ich die ganzen Datenpunkte innerhalb der Tabelle als Binding {} ab, weil ich einfach keine Vorstellung davon haben wie ich das komplette HTML in einen DP schreiben und diesen dann in der VIS aufrufen, soll.

                    Ich habe einmal eine "virtuelle" Tabelle im VIS gebaut. Dutzende von einzelnen Datenfeldern, hundertfach ausgerichtet, formatiert und dann gruppiert. Ganz ehrlich den Scheiß mache ich nicht noch einmal.

                    Wenn man Tabellen erstellen könnte wie in Excel, wo man pro Zelle einfach den Datenpunkt angibt - das wäre cool. Im Grunde ist es ja so mit den Bindings, aber wie du schon sagts, macht es das System langsam.

                    Mir fehlt es einfach an den Kenntnissen wie ich im VIS eine performante Tabelle bauen kann.

                    ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                    liv-in-skyL SBorgS 2 Replies Last reply
                    0
                    • JB_SullivanJ JB_Sullivan

                      @SBorg sagte in Bindings in vis:

                      Das wird auch mit der Zeit schon "zäh",

                      Ja, das habe ich schon gemerkt. Darum habe ich jetzt angefangen, die Rechenoperationen in Blocklys auszulagern.

                      Trotzdem hole ich die ganzen Datenpunkte innerhalb der Tabelle als Binding {} ab, weil ich einfach keine Vorstellung davon haben wie ich das komplette HTML in einen DP schreiben und diesen dann in der VIS aufrufen, soll.

                      Ich habe einmal eine "virtuelle" Tabelle im VIS gebaut. Dutzende von einzelnen Datenfeldern, hundertfach ausgerichtet, formatiert und dann gruppiert. Ganz ehrlich den Scheiß mache ich nicht noch einmal.

                      Wenn man Tabellen erstellen könnte wie in Excel, wo man pro Zelle einfach den Datenpunkt angibt - das wäre cool. Im Grunde ist es ja so mit den Bindings, aber wie du schon sagts, macht es das System langsam.

                      Mir fehlt es einfach an den Kenntnissen wie ich im VIS eine performante Tabelle bauen kann.

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      wrote on last edited by
                      #41

                      @JB_Sullivan

                      wenn die datenpunkte ein schema haben und man dies durch eine schleife abfragen kann: https://forum.iobroker.net/topic/28021/html-table-für-vis-oder-iqontrol-js-und-blockly

                      wenn es nur verschieden-zusammengesuchte datenpunkt sind, wird es damit nicht gehen

                      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 Reply Last reply
                      0
                      • JB_SullivanJ JB_Sullivan

                        @SBorg sagte in Bindings in vis:

                        Das wird auch mit der Zeit schon "zäh",

                        Ja, das habe ich schon gemerkt. Darum habe ich jetzt angefangen, die Rechenoperationen in Blocklys auszulagern.

                        Trotzdem hole ich die ganzen Datenpunkte innerhalb der Tabelle als Binding {} ab, weil ich einfach keine Vorstellung davon haben wie ich das komplette HTML in einen DP schreiben und diesen dann in der VIS aufrufen, soll.

                        Ich habe einmal eine "virtuelle" Tabelle im VIS gebaut. Dutzende von einzelnen Datenfeldern, hundertfach ausgerichtet, formatiert und dann gruppiert. Ganz ehrlich den Scheiß mache ich nicht noch einmal.

                        Wenn man Tabellen erstellen könnte wie in Excel, wo man pro Zelle einfach den Datenpunkt angibt - das wäre cool. Im Grunde ist es ja so mit den Bindings, aber wie du schon sagts, macht es das System langsam.

                        Mir fehlt es einfach an den Kenntnissen wie ich im VIS eine performante Tabelle bauen kann.

                        SBorgS Offline
                        SBorgS Offline
                        SBorg
                        Forum Testing Most Active
                        wrote on last edited by SBorg
                        #42

                        @JB_Sullivan Dann mal ein Mini-Beispiel. Simple Tabelle mit genau einer Zeile und zwei Spalten, keinerlei Formatierung, Tabellenkopf, Linien, etc.
                        Erzeugt im Minutentakt eine Tabelle mit der aktuellen Uptime des ioB:
                        Bild 1.png

                        Der HTML-Text liegt dann unter "0_userdata.0.Test"
                        Die Anzeige in VIS ist dann ziemlich trivial. Einfach das (basic)HTML-Widget nehmen und unter "Allgemein" bei HTML ein Binding auf den Datenpunkt eintragen: {0_userdata.0.Test}


                        <xml xmlns="https://developers.google.com/blockly/xml">
                        <block type="create" id="JPPZEn|2rtL8i_=7$kC" x="38" y="-138">
                        <field name="NAME">0_userdata.0.Test</field>
                        <next>
                        <block type="schedule" id="Hvb-u%]p|OM)CXo3k#1-">
                        <field name="SCHEDULE">
                        * * * </field>
                        <statement name="STATEMENT">
                        <block type="update" id="{o
                        ijHqmJ@orI8`?QQ">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Test</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                        <block type="procedures_callcustomreturn" id="M=AG%Zse(^#x)@Yz]h5/">
                        <mutation name="HTML"></mutation>
                        </block>
                        </value>
                        </block>
                        </statement>
                        </block>
                        </next>
                        </block>
                        <block type="procedures_defcustomreturn" id=";?8J/@Qj2Q*:zoU@RaRj" x="338" y="-62">
                        <mutation statements="false"></mutation>
                        <field name="NAME">HTML</field>
                        <field name="SCRIPT">bGV0IEhUTUw9Ijx0YWJsZT4iOw0KSFRNTCs9Ijx0cj4iOw0KSFRNTCs9Ijx0ZD5VcHRpbWU6PC90ZD4iOw0KSFRNTCs9Ijx0ZD4iICsgZ2V0U3RhdGUoInN5c3RlbS5hZGFwdGVyLmFkbWluLjAudXB0aW1lIikudmFsICsgIiBTZWsuPC90ZD4iOw0KSFRNTCs9IjwvdHI+IjsNCkhUTUwrPSI8L3RhYmxlPiI7DQoNCg0KcmV0dXJuIEhUTUw7</field>
                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                        </block>
                        </xml>


                        [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{0_userdata.0.Test}"},"style":{"left":"850px","top":"512px"},"widgetSet":"basic"}]

                        btw: mach dann ev. ein neues Topic auf, da hier wg. "Bindings" sonst zu OT ;)

                        LG SBorg ( SBorg auf GitHub)
                        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                        JB_SullivanJ 1 Reply Last reply
                        0
                        • SBorgS SBorg

                          @JB_Sullivan Dann mal ein Mini-Beispiel. Simple Tabelle mit genau einer Zeile und zwei Spalten, keinerlei Formatierung, Tabellenkopf, Linien, etc.
                          Erzeugt im Minutentakt eine Tabelle mit der aktuellen Uptime des ioB:
                          Bild 1.png

                          Der HTML-Text liegt dann unter "0_userdata.0.Test"
                          Die Anzeige in VIS ist dann ziemlich trivial. Einfach das (basic)HTML-Widget nehmen und unter "Allgemein" bei HTML ein Binding auf den Datenpunkt eintragen: {0_userdata.0.Test}


                          <xml xmlns="https://developers.google.com/blockly/xml">
                          <block type="create" id="JPPZEn|2rtL8i_=7$kC" x="38" y="-138">
                          <field name="NAME">0_userdata.0.Test</field>
                          <next>
                          <block type="schedule" id="Hvb-u%]p|OM)CXo3k#1-">
                          <field name="SCHEDULE">
                          * * * </field>
                          <statement name="STATEMENT">
                          <block type="update" id="{o
                          ijHqmJ@orI8`?QQ">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.Test</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                          <block type="procedures_callcustomreturn" id="M=AG%Zse(^#x)@Yz]h5/">
                          <mutation name="HTML"></mutation>
                          </block>
                          </value>
                          </block>
                          </statement>
                          </block>
                          </next>
                          </block>
                          <block type="procedures_defcustomreturn" id=";?8J/@Qj2Q*:zoU@RaRj" x="338" y="-62">
                          <mutation statements="false"></mutation>
                          <field name="NAME">HTML</field>
                          <field name="SCRIPT">bGV0IEhUTUw9Ijx0YWJsZT4iOw0KSFRNTCs9Ijx0cj4iOw0KSFRNTCs9Ijx0ZD5VcHRpbWU6PC90ZD4iOw0KSFRNTCs9Ijx0ZD4iICsgZ2V0U3RhdGUoInN5c3RlbS5hZGFwdGVyLmFkbWluLjAudXB0aW1lIikudmFsICsgIiBTZWsuPC90ZD4iOw0KSFRNTCs9IjwvdHI+IjsNCkhUTUwrPSI8L3RhYmxlPiI7DQoNCg0KcmV0dXJuIEhUTUw7</field>
                          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                          </block>
                          </xml>


                          [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{0_userdata.0.Test}"},"style":{"left":"850px","top":"512px"},"widgetSet":"basic"}]

                          btw: mach dann ev. ein neues Topic auf, da hier wg. "Bindings" sonst zu OT ;)

                          JB_SullivanJ Offline
                          JB_SullivanJ Offline
                          JB_Sullivan
                          wrote on last edited by
                          #43

                          @SBorg

                          Vielen Dank für den Denkanstoß - lernen durch abgucken ;) Das würde ich mir öfter wünschen, das man so ein Mini Beispiel bekommt und kann sich dann mit dem WIE, WO und WARUM auseinander setzen.

                          ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                          1 Reply Last reply
                          0
                          • JB_SullivanJ Offline
                            JB_SullivanJ Offline
                            JB_Sullivan
                            wrote on last edited by
                            #44

                            @SBorg

                            Kannst du mir noch einen kurze Hinweis geben, wo ich eine Dokumentation finde, die sich auf das Thema "Funktions Editor" bezieht. Ich habe da dein 1-Zeilen Beispiel verwendet und versucht meine bestehende Tabelle damit aufzubauen.

                            Leider hat das nicht wie gehofft funktioniert. Ist irgendwie alles "rot" und funktioniert auch nicht. Scheinbar bedarf es da eines bestimmten Befehlsatzes, den ich aber leider nicht kenne :(

                            6bfb8713-7e44-4471-8584-523c3f030e3c-image.png

                            ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                            SBorgS 1 Reply Last reply
                            0
                            • JB_SullivanJ JB_Sullivan

                              @SBorg

                              Kannst du mir noch einen kurze Hinweis geben, wo ich eine Dokumentation finde, die sich auf das Thema "Funktions Editor" bezieht. Ich habe da dein 1-Zeilen Beispiel verwendet und versucht meine bestehende Tabelle damit aufzubauen.

                              Leider hat das nicht wie gehofft funktioniert. Ist irgendwie alles "rot" und funktioniert auch nicht. Scheinbar bedarf es da eines bestimmten Befehlsatzes, den ich aber leider nicht kenne :(

                              6bfb8713-7e44-4471-8584-523c3f030e3c-image.png

                              SBorgS Offline
                              SBorgS Offline
                              SBorg
                              Forum Testing Most Active
                              wrote on last edited by
                              #45

                              @JB_Sullivan Das ist "normales" Javascript.
                              Dein Fehler beginnt in der ersten Zeile. Du kannst in (oder innerhalb) der Syntax keine "" verwenden:

                              korrekt: let html="blabla...";
                              falsch: let html="blabla...border="1"blabla...";
                              richtig (innerhalb der äußeren "" zB. escapen): let html="border=\"1\"blabla...";
                              

                              Konkret bei dir #1: border... cellspacing... + cellpadding
                              und #8 collspan
                              (oder einfach überall wo eine "rote Wellenlinie" drunter ist hast du einen Fehler ;)

                              LG SBorg ( SBorg auf GitHub)
                              Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                              JB_SullivanJ 1 Reply Last reply
                              0
                              • SBorgS SBorg

                                @JB_Sullivan Das ist "normales" Javascript.
                                Dein Fehler beginnt in der ersten Zeile. Du kannst in (oder innerhalb) der Syntax keine "" verwenden:

                                korrekt: let html="blabla...";
                                falsch: let html="blabla...border="1"blabla...";
                                richtig (innerhalb der äußeren "" zB. escapen): let html="border=\"1\"blabla...";
                                

                                Konkret bei dir #1: border... cellspacing... + cellpadding
                                und #8 collspan
                                (oder einfach überall wo eine "rote Wellenlinie" drunter ist hast du einen Fehler ;)

                                JB_SullivanJ Offline
                                JB_SullivanJ Offline
                                JB_Sullivan
                                wrote on last edited by
                                #46

                                @SBorg Super, vielen Dank !!! Funktioniert weitestgehend. Eine letzte Frage habe ich aber doch noch - dann soll es aber auch gut sein ;)

                                Wie rundet man in javascript Zahlenwerte? So funktioniert es leider nicht

                                42d38b22-fa93-4061-aa4e-2fb36ab6a1bb-image.png

                                ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                                SBorgS 1 Reply Last reply
                                0
                                • JB_SullivanJ JB_Sullivan

                                  @SBorg Super, vielen Dank !!! Funktioniert weitestgehend. Eine letzte Frage habe ich aber doch noch - dann soll es aber auch gut sein ;)

                                  Wie rundet man in javascript Zahlenwerte? So funktioniert es leider nicht

                                  42d38b22-fa93-4061-aa4e-2fb36ab6a1bb-image.png

                                  SBorgS Offline
                                  SBorgS Offline
                                  SBorg
                                  Forum Testing Most Active
                                  wrote on last edited by
                                  #47

                                  @JB_Sullivan Das funktioniert so nur im Binding ;)
                                  Unser Beispiel mal etwas aufgebohrt:

                                  let uptime_min=Math.round(getState("system.adapter.admin.0.uptime").val /60);
                                  // wir teilen durch 60 (da die Uptime in Sekunden ist), um die Minuten zu erhalten 
                                  // und runden das Ganze zu vollen Minuten auf
                                  
                                  let HTML="<table border=\"1\">";
                                  HTML+="<tr><th></th><th>in Sekunden</th><th>in Minuten</th></tr>";
                                  HTML+="<tr>";
                                  HTML+="<td>Uptime:</td>";
                                  HTML+="<td>" + getState("system.adapter.admin.0.uptime").val+ "</td>";
                                  HTML+="<td>" + uptime_min + "</td>";
                                  HTML+="</tr>";
                                  HTML+="</table>";
                                  
                                  
                                  return HTML;
                                  

                                  Man könnte auch #1 streichen und es direkt in #10 packen:

                                  HTML+="<td>" + Math.round(getState("system.adapter.admin.0.uptime").val /60) + "</td>";
                                  

                                  Bei längerem Sourcecode verliert man so aber rasch den Überblick, auch sind Änderungen (wenn sich bspw. mal ein Datenpunkt ändert) nicht mehr so schnell möglich. Wenn der Wert in einer Variablen steckt kann man auch bequem mehrmals auf diesen zugreifen, oder ändern, oder...

                                  ...und bei Nachkommastellen hilft nur multiplizieren, runden und abschließend wieder teilen, da JS nur Ganzzahlig rundet, oder man mit .toFixed(x) direkt abschneidet.

                                  LG SBorg ( SBorg auf GitHub)
                                  Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                  JB_SullivanJ 1 Reply Last reply
                                  0
                                  • SBorgS SBorg

                                    @JB_Sullivan Das funktioniert so nur im Binding ;)
                                    Unser Beispiel mal etwas aufgebohrt:

                                    let uptime_min=Math.round(getState("system.adapter.admin.0.uptime").val /60);
                                    // wir teilen durch 60 (da die Uptime in Sekunden ist), um die Minuten zu erhalten 
                                    // und runden das Ganze zu vollen Minuten auf
                                    
                                    let HTML="<table border=\"1\">";
                                    HTML+="<tr><th></th><th>in Sekunden</th><th>in Minuten</th></tr>";
                                    HTML+="<tr>";
                                    HTML+="<td>Uptime:</td>";
                                    HTML+="<td>" + getState("system.adapter.admin.0.uptime").val+ "</td>";
                                    HTML+="<td>" + uptime_min + "</td>";
                                    HTML+="</tr>";
                                    HTML+="</table>";
                                    
                                    
                                    return HTML;
                                    

                                    Man könnte auch #1 streichen und es direkt in #10 packen:

                                    HTML+="<td>" + Math.round(getState("system.adapter.admin.0.uptime").val /60) + "</td>";
                                    

                                    Bei längerem Sourcecode verliert man so aber rasch den Überblick, auch sind Änderungen (wenn sich bspw. mal ein Datenpunkt ändert) nicht mehr so schnell möglich. Wenn der Wert in einer Variablen steckt kann man auch bequem mehrmals auf diesen zugreifen, oder ändern, oder...

                                    ...und bei Nachkommastellen hilft nur multiplizieren, runden und abschließend wieder teilen, da JS nur Ganzzahlig rundet, oder man mit .toFixed(x) direkt abschneidet.

                                    JB_SullivanJ Offline
                                    JB_SullivanJ Offline
                                    JB_Sullivan
                                    wrote on last edited by
                                    #48

                                    @SBorg
                                    Vielen herzlichen Dank für deinen Gedankenanstoß mit den Blockly und dem javaScript.
                                    Die Tabelle funktioniert jetzt und es VIEL VIEL schneller als alles was ich mir mit den Bindings zurecht gebastelt hatte.

                                    ce60f753-04ac-4bcf-884c-f187c42dc02d-image.png

                                    ioBroker (since 2018) auf Intel Core i3-5005U NUC und Windwos10 Pro

                                    SBorgS 1 Reply Last reply
                                    0
                                    • JB_SullivanJ JB_Sullivan

                                      @SBorg
                                      Vielen herzlichen Dank für deinen Gedankenanstoß mit den Blockly und dem javaScript.
                                      Die Tabelle funktioniert jetzt und es VIEL VIEL schneller als alles was ich mir mit den Bindings zurecht gebastelt hatte.

                                      ce60f753-04ac-4bcf-884c-f187c42dc02d-image.png

                                      SBorgS Offline
                                      SBorgS Offline
                                      SBorg
                                      Forum Testing Most Active
                                      wrote on last edited by
                                      #49

                                      @JB_Sullivan :) ...und im Grunde kann man als letzten Schritt auch noch auf das Blockly verzichten und packt den Trigger oder Cron einfach mit in ein JS.

                                      btw: hat schon mal wer ein Binding auf ein JSON funktionsfähig bekommen?

                                      LG SBorg ( SBorg auf GitHub)
                                      Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                      1 Reply Last reply
                                      0
                                      • W Offline
                                        W Offline
                                        wye
                                        wrote on last edited by wye
                                        #50

                                        Hallo zusammen,

                                        versuche mich aktuell am Binding für die Farbänderung.

                                        {0_userdata.0.example_state} <- damit wird in einem Widget alles korrekt dargestellt. 1.PNG

                                        Soweit so gut!

                                        Problem stellt die View an sich dar...
                                        So ändert sich der Background der View leider nicht...
                                        Edit: Häkchen setzen oder nicht ändert leider auch nichts
                                        Was mache ich falsch?2.PNG

                                        OliverIOO 1 Reply Last reply
                                        0
                                        • W wye

                                          Hallo zusammen,

                                          versuche mich aktuell am Binding für die Farbänderung.

                                          {0_userdata.0.example_state} <- damit wird in einem Widget alles korrekt dargestellt. 1.PNG

                                          Soweit so gut!

                                          Problem stellt die View an sich dar...
                                          So ändert sich der Background der View leider nicht...
                                          Edit: Häkchen setzen oder nicht ändert leider auch nichts
                                          Was mache ich falsch?2.PNG

                                          OliverIOO Offline
                                          OliverIOO Offline
                                          OliverIO
                                          wrote on last edited by
                                          #51

                                          @wye sagte in Bindings in vis:

                                          Hallo zusammen,

                                          versuche mich aktuell am Binding für die Farbänderung.

                                          {0_userdata.0.example_state} <- damit wird in einem Widget alles korrekt dargestellt. 1.PNG

                                          Soweit so gut!

                                          Problem stellt die View an sich dar...
                                          So ändert sich der Background der View leider nicht...
                                          Edit: Häkchen setzen oder nicht ändert leider auch nichts
                                          Was mache ich falsch?2.PNG

                                          lustig,
                                          habe es gerade ausprobiert, tut bei mir auch nicht.
                                          im code von vis sieht es so aus, das bindings nur in widgets gehen.
                                          aber evtl. weiß jemand anderes mehr

                                          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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          529

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe