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. Rgraph

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Rgraph

Geplant Angeheftet Gesperrt Verschoben ioBroker.vis Драйвер
9 Beiträge 3 Kommentatoren 2.7k 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
    iLexey
    schrieb am zuletzt editiert von
    #1

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

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

    Спасибо!

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

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

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

        @Bluefox:

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

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

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

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

          @iLexey:

          @Bluefox:

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

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

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

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

          http://blog.instalator.ru/

          1 Antwort Letzte Antwort
          0
          • I Offline
            I Offline
            iLexey
            schrieb am zuletzt editiert von
            #5

            @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 Antwort Letzte Antwort
            0
            • I Offline
              I Offline
              instalator
              schrieb am zuletzt editiert von
              #6

              @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)

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

              http://blog.instalator.ru/

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

                @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

                1 Antwort Letzte Antwort
                0
                • I Offline
                  I Offline
                  iLexey
                  schrieb am zuletzt editiert von
                  #8

                  @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 Antwort Letzte Antwort
                  0
                  • I Offline
                    I Offline
                    iLexey
                    schrieb am zuletzt editiert von
                    #9

                    @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 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

                    795

                    Online

                    32.5k

                    Benutzer

                    81.7k

                    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