Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Визуализация
    5. ioBroker.vis Драйвер
    6. Rgraph

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Rgraph

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      iLexey last edited by

      А подскажите, как в виджет LiveChart из RGraph загружать данные при загрузке страницы ioBroker.vis? У меня получается, что если я прописываю ObjectID - все работает, график отображается, но после обновления страницы или заходе с другого устройства все графики пропадают.

      Да и вообще - если у любого виджета прописать ObjectID, насколько я понимаю статус обновится только в случае попадания каких-то данных, а если отправка данных осуществляется с большими периодами - виджеты будут показывать 0? Как это можно обойти?

      Спасибо!

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        LiveChart не умеет такое. Для этого нужно использовать iobroker.flot.

        1 Reply Last reply Reply Quote 0
        • I
          iLexey last edited by

          @Bluefox:

          LiveChart не умеет такое. Для этого нужно использовать iobroker.flot. `

          А я правильно понимаю, что эта штука работает отдельно от ioBroker.vis? Можно ли как html эти графики затащить в vis? Хотя с другой стороны как обновлять данные…

          Есть ли вообще у ioBroker.vis возможность отображать исторические данные? Или как-то запоминать состояние виджета, без повторной отправки на него данных. То есть, к примеру, если взять просто on/off выключатель изменить его состояние и обновить страничку и чтобы выключатель остался как был.

          1 Reply Last reply Reply Quote 0
          • I
            instalator last edited by

            @iLexey:

            @Bluefox:

            LiveChart не умеет такое. Для этого нужно использовать iobroker.flot. `

            А я правильно понимаю, что эта штука работает отдельно от ioBroker.vis? Можно ли как html эти графики затащить в vis? Хотя с другой стороны как обновлять данные…

            Есть ли вообще у ioBroker.vis возможность отображать исторические данные? Или как-то запоминать состояние виджета, без повторной отправки на него данных. То есть, к примеру, если взять просто on/off выключатель изменить его состояние и обновить страничку и чтобы выключатель остался как был. `
            А сейчас разве не так?)

            1 Reply Last reply Reply Quote 0
            • I
              iLexey last edited by

              @instalator:

              А сейчас разве не так?) `

              Ну из предыдущей темы с вопросом по апгрейду вы, наверное, уже поняли, что я использую node-red-vis (ioBroker.vis в связке с node-red). Пока у меня получается, что изменение состояния кнопки на ON из ioBroker.vis приводит к отправке команды устройству, здесь все хорошо. Но если обновить страничку в ioBroker.vis то в интерфейсе кнопка станет OFF тогда как реально на устройстве она в состоянии ON. Так что нет - не совсем сейчас так. Может я что и неправильно делаю конечно, но поэтому и спросил.

              Я уже увидел, что в момент обновления страницы от ioBroker.vis в node-red прилетают три события, одно из которых vis.control.data с именем обновленной страницы. Поэтому пока идея иметь простенькую табличку в БД (хоть в sqlite с которой все работает из коробки и ставить дополнительные сервисы не надо) которая бы содержала список устройств на странице и по событию от vis node-red выплевывал бы эти данные в vis или вообще node-red отправлял бы команду устройствам опубликовать свой статус (тем более, что в устройствах данный функционал уже есть).

              Может конечно я горожу слишком сложные схемы и здесь надо ставить полноценный ioBroker, но пока не хотелось бы отказываться от node-red, потому что в нем уже много чего реализовано.

              1 Reply Last reply Reply Quote 0
              • I
                instalator last edited by

                @iLexey:

                @instalator:

                А сейчас разве не так?) `

                Ну из предыдущей темы с вопросом по апгрейду вы, наверное, уже поняли, что я использую node-red-vis (ioBroker.vis в связке с node-red). Пока у меня получается, что изменение состояния кнопки на ON из ioBroker.vis приводит к отправке команды устройству, здесь все хорошо. Но если обновить страничку в ioBroker.vis то в интерфейсе кнопка станет OFF тогда как реально на устройстве она в состоянии ON. Так что нет - не совсем сейчас так. Может я что и неправильно делаю конечно, но поэтому и спросил.

                Я уже увидел, что в момент обновления страницы от ioBroker.vis в node-red прилетают три события, одно из которых vis.control.data с именем обновленной страницы. Поэтому пока идея иметь простенькую табличку в БД (хоть в sqlite с которой все работает из коробки и ставить дополнительные сервисы не надо) которая бы содержала список устройств на странице и по событию от vis node-red выплевывал бы эти данные в vis или вообще node-red отправлял бы команду устройствам опубликовать свой статус (тем более, что в устройствах данный функционал уже есть).

                Может конечно я горожу слишком сложные схемы и здесь надо ставить полноценный ioBroker, но пока не хотелось бы отказываться от node-red, потому что в нем уже много чего реализовано. `

                я в iobroker от node-red отказался вообще, Поставь iobroker, добавь свои mqtt устройства и потом будешь плеваться в сторону node-red)

                1 Reply Last reply Reply Quote 0
                • Bluefox
                  Bluefox last edited by

                  @iLexey:

                  @instalator:

                  А сейчас разве не так?) `

                  Ну из предыдущей темы с вопросом по апгрейду вы, наверное, уже поняли, что я использую node-red-vis (ioBroker.vis в связке с node-red). Пока у меня получается, что изменение состояния кнопки на ON из ioBroker.vis приводит к отправке команды устройству, здесь все хорошо. Но если обновить страничку в ioBroker.vis то в интерфейсе кнопка станет OFF тогда как реально на устройстве она в состоянии ON. Так что нет - не совсем сейчас так. Может я что и неправильно делаю конечно, но поэтому и спросил.

                  Я уже увидел, что в момент обновления страницы от ioBroker.vis в node-red прилетают три события, одно из которых vis.control.data с именем обновленной страницы. Поэтому пока идея иметь простенькую табличку в БД (хоть в sqlite с которой все работает из коробки и ставить дополнительные сервисы не надо) которая бы содержала список устройств на странице и по событию от vis node-red выплевывал бы эти данные в vis или вообще node-red отправлял бы команду устройствам опубликовать свой статус (тем более, что в устройствах данный функционал уже есть).

                  Может конечно я горожу слишком сложные схемы и здесь надо ставить полноценный ioBroker, но пока не хотелось бы отказываться от node-red, потому что в нем уже много чего реализовано. `
                  Люди уже решили эту проблему.

                  https://github.com/GermanBluefox/node-red-vis/issues/6

                  Дело в том, что от node-red отказваться не надо. node-red интегрирован в ioBroker. Отличие только то, что добавляются node для обмена данными с ioBroker.
                  48_img_007.png

                  48_img_009.png

                  maiorfi created this issue in GermanBluefox/node-red-vis

                  closed Initial View/Widgets state? #6

                  1 Reply Last reply Reply Quote 0
                  • I
                    iLexey last edited by

                    @Bluefox:

                    Люди уже решили эту проблему.

                    https://github.com/GermanBluefox/node-red-vis/issues/6 `

                    Интересная идея хранить данные в общем контексте node-red, хотя по сути мелкая базёнка сделает тоже самое только данные будут храниться на диске, а не в памяти. Примерно в тако ключе я и думал - мысли сходятся :). Спасибо за наводку!

                    @Bluefox:

                    Дело в том, что от node-red отказваться не надо. node-red интегрирован в ioBroker. Отличие только то, что добавляются node для обмена данными с ioBroker. `

                    Да, это я понимаю. А где можно почитать про потребление ресурсов ioBroker? Сейчас у меня на сервере где стоит node-red со всеми моими модулями/скриптами/нодами + ioBroker.vis занято меньше 256МБ памяти (и это включая саму ОС). Здесь возникает пара вариантов - иметь "облачные" виртуалки с серверной частью, либо docker, либо микрокомпьютер.

                    В любом случае спасибо за вашу работу! ioBroker со всеми его модулями/драйверами, это как глоток воздуха среди засилия проприетарщины и тяжелых java-приложений или непонятных монолитных поделок на коленке 🙂

                    1 Reply Last reply Reply Quote 0
                    • I
                      iLexey last edited by

                      @Bluefox:

                      Люди уже решили эту проблему.

                      https://github.com/GermanBluefox/node-red-vis/issues/6 `

                      Еще раз хочу выразить огромное спасибо! Идея из ссылки выше воплотилась у меня в универсальный КЭШиратор данных (по ссылке надо описывать каждый топик, я сделал так, что кэшируются все топики, начинающиеся на "myhome/tele/", куда все мои устройства отправляют данные). Если интересно, то код и картинка ниже.

                      Чтобы не ломать форум - код Node-Red прогнал через beautify'er.

                      [
                          {
                              "id": "346b51f3.cb94ae",
                              "type": "mqtt-broker",
                              "broker": "localhost",
                              "port": "1883",
                              "clientid": ""
                          },
                          {
                              "id": "ed457908.12ba88",
                              "type": "vis in",
                              "language": "en",
                              "x": 412,
                              "y": 203,
                              "z": "9aff093a.6500f8",
                              "wires": [
                                  [
                                      "4a594456.b5a6bc"
                                  ]
                              ]
                          },
                          {
                              "id": "4a594456.b5a6bc",
                              "type": "function",
                              "name": "Check for page refresh",
                              "func": "if (msg.topic === \"vis.control.data\") {\n    msg.payload = [];\n    for (var state in context.global.states)\n        msg.payload.push({ topic: state, data: context.global.states[state] });\n\n    return msg;\n}\nelse {\n    return null;\n}",
                              "outputs": 1,
                              "noerr": 0,
                              "x": 588,
                              "y": 202,
                              "z": "9aff093a.6500f8",
                              "wires": [
                                  [
                                      "5fffe5c0.a0001c"
                                  ]
                              ]
                          },
                          {
                              "id": "5fffe5c0.a0001c",
                              "type": "splitter",
                              "name": "Iterate on states",
                              "property": "payload",
                              "x": 806,
                              "y": 202,
                              "z": "9aff093a.6500f8",
                              "wires": [
                                  [
                                      "be39c3b6.41c64"
                                  ]
                              ]
                          },
                          {
                              "id": "6169e126.9e962",
                              "type": "function",
                              "name": "Save State",
                              "func": "context.global.states = context.global.states || [];\ncontext.global.states[msg.topic] = msg.payload;\n\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "x": 220,
                              "y": 204,
                              "z": "9aff093a.6500f8",
                              "wires": [
                                  [
                                      "ed457908.12ba88"
                                  ]
                              ]
                          },
                          {
                              "id": "be39c3b6.41c64",
                              "type": "function",
                              "name": "Post cached states",
                              "func": "msg.topic = msg.payload.topic;\nmsg.payload = msg.payload.data;\ndelete msg.payload_unsplit;\n\nreturn msg;",
                              "outputs": 1,
                              "noerr": 0,
                              "x": 600,
                              "y": 312,
                              "z": "9aff093a.6500f8",
                              "wires": [
                                  [
                                      "ed457908.12ba88"
                                  ]
                              ]
                          },
                          {
                              "id": "5f03e43c.a0fc1c",
                              "type": "mqtt in",
                              "name": "Telemetry Data",
                              "topic": "myhome/tele/#",
                              "broker": "346b51f3.cb94ae",
                              "x": 135,
                              "y": 65,
                              "z": "9aff093a.6500f8",
                              "wires": [
                                  [
                                      "6169e126.9e962"
                                  ]
                              ]
                          },
                          {
                              "id": "de8d6942.217298",
                              "type": "inject",
                              "name": "Go",
                              "topic": "",
                              "payload": "",
                              "payloadType": "none",
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "x": 218,
                              "y": 416,
                              "z": "9aff093a.6500f8",
                              "wires": [
                                  [
                                      "4221520e.bddeac"
                                  ]
                              ]
                          },
                          {
                              "id": "4221520e.bddeac",
                              "type": "function",
                              "name": "Dump states cache to console",
                              "func": "for (var state in context.global.states)\n    console.log(\"state '\" + state + \"' = '\" + context.global.states[state] + \"'\");\n\nreturn null;",
                              "outputs": 1,
                              "noerr": 0,
                              "x": 470,
                              "y": 417,
                              "z": "9aff093a.6500f8",
                              "wires": [
                                  []
                              ]
                          }
                      ]
                      

                      852_screen_shot_2015-11-02_at_00.22.06.png

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      939
                      Online

                      31.9k
                      Users

                      80.1k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      2619
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo