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. Русский
  3. ioBroker
  4. Визуализация
  5. ioBroker.vis Драйвер
  6. Написание своего виджета

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

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

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


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              690

                              Online

                              32.6k

                              Benutzer

                              82.2k

                              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