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
    941

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


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                707

                                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