Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Визуализация
  5. ioBroker.vis Драйвер
  6. Написание своего виджета

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    13
    1
    623

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.0k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    885

Написание своего виджета

Geplant Angeheftet Gesperrt Verschoben ioBroker.vis Драйвер
15 Beiträge 2 Kommentatoren 3.2k Aufrufe
  • Ä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.
  • I Offline
    I Offline
    instalator
    schrieb am zuletzt editiert von
    #1

    Пытаюсь написать виджет.

    В виджете есть код.

    Почему вподставляется значение <%= this.data.attr('oid') %>

    А в

    <canvas id="<%= this.data.attr('oid') %>" ставится/!/!/?/Код/вроде/идентичный./(В/width="<%==this.data.attr('dialog_width')%>" аналогично)<br="">````

                <%== this.data.attr("html_prepend") %>
    

    <canvas id="<%= this.data.attr('oid') %>" width="<%==this.data.attr('dialog_width')%>" height="100%"></canvas>

    <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>

    В элемент
    
    <canvas id="<%= this.data.attr('oid') %>" потом/скриптом/вставляются/данные<br="">
    Как в скрипте присвоить занчения из переменных виджета?
    </canvas>
    
    </canvas>

    Высокий уровень Децибел вреден для здоровья!

    http://blog.instalator.ru/

    1 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #2

      @instalator:

      Пытаюсь написать виджет.

      В виджете есть код.

      Почему вподставляется значение <%= this.data.attr('oid') %>

      А в

      <canvas id="<%= this.data.attr('oid') %>" ставится/!/!/?/Код/вроде/идентичный./(В/width="<%==this.data.attr('dialog_width')%>" аналогично)<br="">````

                  <%== this.data.attr("html_prepend") %>
      

      <canvas id="<%= this.data.attr('oid') %>" width="<%==this.data.attr('dialog_width')%>" height="100%"></canvas>

      <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>

      В элемент
      
      <canvas id="<%= this.data.attr('oid') %>" потом/скриптом/вставляются/данные<br="">
      Как в скрипте присвоить занчения из переменных виджета?
      </canvas>
      
      </canvas> `  
      

      По моему браузер пытается на каждом этапе отрисовать canvas.

      Я обошёл эту проблему так:

      <%== this.data.attr("html_prepend") %><%
      var canvas = '
      
      <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas>
      
      ';
      <%== canvas %>
      <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
      
      

      То есть сначала полностью собрать canvas тег, а потом его за раз отрисовать.

      1 Antwort Letzte Antwort
      0
      • I Offline
        I Offline
        instalator
        schrieb am zuletzt editiert von
        #3

        @Bluefox:

        По моему браузер пытается на каждом этапе отрисовать canvas.

        Я обошёл эту проблему так:

        <%== this.data.attr("html_prepend") %><%
        var canvas = '
        
        <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas>
        
        ';
        <%== canvas %>
        <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
        
        

        То есть сначала полностью собрать canvas тег, а потом его за раз отрисовать. `
        <%== canvas %> Должен вывести переменную? у меня ничего не выводится

        Высокий уровень Децибел вреден для здоровья!

        http://blog.instalator.ru/

        1 Antwort Letzte Antwort
        0
        • I Offline
          I Offline
          instalator
          schrieb am zuletzt editiert von
          #4

          Вообщем все печально, я вообще въехать не могу как добавить виджет, запутался в коде.

          Еще и index.html и edit.html не пересоздаются каждый раз.

          Приходится редактировать виджет в файлах index.html и edit.html.

          Хотел добавить вот такой виджет http://www.3quarks.com/en/SegmentDisplay/

          Может кто возьмется или объяснит на пальцах, что и как устроено в коде vis

          Все что удалось это тупо вывести значение переменной…
          6305_flot_arbeit.png
          6305_flot_bad_gross.png
          6305_flot_bad_klein.png
          6305_flot_zimmer3.png
          6305_flot_zimmer2.png
          6305_flot_zimmer1.png
          6305_flot_eg.png
          6305_flot_lueftung.png
          6305_flot_aussen.png

          Высокий уровень Децибел вреден для здоровья!

          http://blog.instalator.ru/

          1 Antwort Letzte Antwort
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            schrieb am zuletzt editiert von
            #5

            @instalator:

            @Bluefox:

            По моему браузер пытается на каждом этапе отрисовать canvas.

            Я обошёл эту проблему так:

            <%== this.data.attr("html_prepend") %><%
            var canvas = '
            
            <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas>
            
            ';
            <%== canvas %>
            <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
            
            

            То есть сначала полностью собрать canvas тег, а потом его за раз отрисовать. <%== canvas %> Должен вывести переменную? у меня ничего не выводится
            Я забыл указать закрывающую скобку

            <%== this.data.attr("html_prepend") %><%
            var canvas = '
            
            <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas>
            
            ';
            %>
            <%== canvas %>
            <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
            
            

            или так

            <%== this.data.attr("html_prepend") %><%
            <%== '
            
            <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas>
            
            ' %>
            <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
            
            
            1 Antwort Letzte Antwort
            0
            • I Offline
              I Offline
              instalator
              schrieb am zuletzt editiert von
              #6

              @Bluefox:

              Я забыл указать закрывающую скобку

              <%== this.data.attr("html_prepend") %><%
              var canvas = '
              
              <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas>
              
              ';
              %>
              <%== canvas %>
              <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
              
              

              или так

              <%== this.data.attr("html_prepend") %><%
              <%== '
              
              <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas>
              
              ' %>
              <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
              
              ```` `  
              

              Хорошо, а как в script засунуть параметры виджета? и чтобы потом в '

              <canvas id="…" отобразить/с/определенными/параметрами?/Вообще/как/из/виджета/можно/выполнить/код/js?</r=""></canvas>

              Высокий уровень Децибел вреден для здоровья!

              http://blog.instalator.ru/

              1 Antwort Letzte Antwort
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                schrieb am zuletzt editiert von
                #7

                Например````
                vis.binds.basic.formatFloat

                и есть код JS.
                [6305_flot_lueftung.png](/assets/uploads/files/6305_flot_lueftung.png)
                1 Antwort Letzte Antwort
                0
                • I Offline
                  I Offline
                  instalator
                  schrieb am zuletzt editiert von
                  #8

                  @Bluefox:

                  Например````
                  vis.binds.basic.formatFloat

                  и есть код JS. `  
                  

                  т.е. это мы вызываем функуию formatFloat а это типо ветки с функциями vis.binds.basic.?

                  Что означают эти скобки <%== ? <% или <%= и <%== в чем разница?

                  Высокий уровень Децибел вреден для здоровья!

                  http://blog.instalator.ru/

                  1 Antwort Letzte Antwort
                  0
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    schrieb am zuletzt editiert von
                    #9

                    @instalator:

                    @Bluefox:

                    Например````
                    vis.binds.basic.formatFloat

                    и есть код JS. `  
                    

                    т.е. это мы вызываем функуию formatFloat а это типо ветки с функциями vis.binds.basic.? `
                    Всё верно.
                    @instalator:

                    Что означают эти скобки <%== ? <% или <%= и <%== в чем разница? `
                    Это синтаксис CanJS-EJS (Описание http://canjs.com/guides/EJS.html)

                    <%== - вывод HTML текста без изменнений в это место

                    <%= - вывод текста (все теги будут преобразованы - escaped)

                    <% выполняет написанный JS код

                    1 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #10

                      Можешь вот здесь посмотреть, как можно было встраивать:

                      https://github.com/ioBroker/ioBroker.vi … ather.html

                      Ищи tplSegmentClock: function (el, data)
                      48_clock.gif

                      1 Antwort Letzte Antwort
                      0
                      • I Offline
                        I Offline
                        instalator
                        schrieb am zuletzt editiert von
                        #11

                        @Bluefox:

                        Это синтаксис CanJS-EJS (Описание http://canjs.com/guides/EJS.html)

                        <%== - вывод HTML текста без изменнений в это место

                        <%= - вывод текста (все теги будут преобразованы - escaped)

                        <% выполняет написанный JS код `
                        Да это просто магия) Буду дальше вникать… Спасибо.

                        @Bluefox:

                        Можешь вот здесь посмотреть, как можно было встраивать:

                        https://github.com/ioBroker/ioBroker.vi … ather.html

                        Ищи tplSegmentClock: function (el, data) `
                        :o час и готово?) я два вечера разобраться не мог.

                        Высокий уровень Децибел вреден для здоровья!

                        http://blog.instalator.ru/

                        1 Antwort Letzte Antwort
                        0
                        • I Offline
                          I Offline
                          instalator
                          schrieb am zuletzt editiert von
                          #12

                          Добавил себе, часы почему то не работают, да они и не нужны были, переменную отображает, теперь окно управления нагревателем выглядит как оригинальная панель управления)

                          Высокий уровень Децибел вреден для здоровья!

                          http://blog.instalator.ru/

                          1 Antwort Letzte Antwort
                          0
                          • BluefoxB Offline
                            BluefoxB Offline
                            Bluefox
                            schrieb am zuletzt editiert von
                            #13

                            Часы поправил.

                            Вот только недавно хотел написать в форум вопрос о хороших цифровых часах. А тут ты со ссылкой.

                            Поэтому я так быстро встроил.

                            Если ещё какие-нибудь виджеты найдёшь, говори. ;)

                            1 Antwort Letzte Antwort
                            0
                            • BluefoxB Offline
                              BluefoxB Offline
                              Bluefox
                              schrieb am zuletzt editiert von
                              #14

                              Тоже неплохо выглядит http://www.3quarks.com/en/SVGClock/index.html

                              1 Antwort Letzte Antwort
                              0
                              • I Offline
                                I Offline
                                instalator
                                schrieb am zuletzt editiert von
                                #15

                                @Bluefox:

                                Если ещё какие-нибудь виджеты найдёшь, говори. ;) `
                                Не совсем готовые виджеты, интересная библиотечка, выбор дат и т.п. можно организовать

                                http://demo.mobiscroll.com/select/basic/

                                Высокий уровень Децибел вреден для здоровья!

                                http://blog.instalator.ru/

                                1 Antwort Letzte Antwort
                                0

                                Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                Registrieren Anmelden
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                391

                                Online

                                32.9k

                                Benutzer

                                83.0k

                                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