Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. node-red Visualisierung nach Startup

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    node-red Visualisierung nach Startup

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

      Ich habe ein Problem nach der Initialisierung beim Start eines Flows oder des Servers. In Node-Red werden die Nachrichten nur bei Änderung aus dem IO-Broker In-Node gelesen. Wenn der Flow aber startet, dann wird das Dashboard nicht richtig darsgestellt. Wenn ich dort einen Switch habe, der den Status einer Variablen (in meinem Fall von einem Shelly-Plug-S) darstellt, dann verbleibt der Switch nach dem Start auf OFF auch wenn die Variable auf True steht. Lässt sich irgendwo einstellen, das beim Start ein Node seine Statuswert weitergibt?

      1 Reply Last reply Reply Quote 0
      • smarthome-tricks.de
        smarthome-tricks.de last edited by

        Hallo, ich habe das selbe Problem. Egal ob Switch oder anderes Widget, direkt nach dem Start sind die Nodes nicht initialisiert. Gibt es dazu schon eine Lösung?

        Viele Grüße,
        Matthias

        R 1 Reply Last reply Reply Quote 0
        • R
          rewenode @smarthome-tricks.de last edited by

          In Node-Red können Objektdaten automatisch mit dem ioBroker-In-Node empfangen werden, oder aber mit dem ioBroker-get-Node geholt werden.
          Bei der Verwendung des Dashboards müssen bei erstmaligem Aufruf oder auch beim Reload die Daten mit dem ioBroker-get-Node geholt werden, da sie ja frühestens bei der nächsten Änderung mit dem ioBroker-In-Node automatisch empfangen werden können.
          Das kann natürlich von Hand z.B. über einen Button auf der Seite gemacht werden.
          Es kann allerdings auch automatisch über ein template-node das send-event des Browsers benutzt werden um automatisch beim Seitenaufruf eine neue Statusabfrage zu initiieren.

          Inhalt Template-Node:

          <script>
          (function() {
              (function(scope) {
                  scope.send({payload: Date.now()}); // this gets sent when the view is opened in the browser
              })(scope);
          })();
          </script>
          

          2019-11-24_17-13-41.png

          Flow Export

          [
              {
                  "id": "489b5edb.a55a7",
                  "type": "tab",
                  "label": "dashboardStartup",
                  "disabled": false,
                  "info": ""
              },
              {
                  "id": "b458b774.fe89c",
                  "type": "ioBroker get",
                  "z": "489b5edb.a55a7",
                  "name": "Buero WGn:1.STATE",
                  "topic": "hm-rpc.0.NEQ1681523.1.STATE",
                  "attrname": "payload",
                  "payloadType": "object",
                  "x": 380,
                  "y": 220,
                  "wires": [
                      [
                          "3037b4f8.9d90fc"
                      ]
                  ]
              },
              {
                  "id": "aa99b9a9.d8b01",
                  "type": "ui_text",
                  "z": "489b5edb.a55a7",
                  "group": "8a0878be.743388",
                  "order": 21,
                  "width": "6",
                  "height": "1",
                  "name": "Sch. rechts",
                  "label": "{{msg.lc}}",
                  "format": "{{msg.payload}}",
                  "layout": "row-spread",
                  "x": 770,
                  "y": 220,
                  "wires": []
              },
              {
                  "id": "3037b4f8.9d90fc",
                  "type": "function",
                  "z": "489b5edb.a55a7",
                  "name": "prepare Data",
                  "func": "\n//convert timestamt to str dd:mm:jj hh:mm:ss\nvar options = { hour: 'numeric', minute: 'numeric', second: 'numeric'};\nvar myTime = new Date();     //new date object\nmyTime.setTime(msg.payload.lc)  //set linux time\n\nvar lc = myTime.toLocaleDateString('de-DE', options); //convert to string\n\n//msg.payload = ((msg.payload.val === true) ? 'Offen ' : 'Geschlossen ') + lc; \nmsg.lc = \"Testfenster <br>\" + lc;\nmsg.payload = ((msg.payload.val === true) ? '<img src=\"https://img.icons8.com/ultraviolet/40/000000/open-window.png\">' : '<img src=\"https://img.icons8.com/office/40/000000/closed-window.png\">'); \n\nreturn msg;",
                  "outputs": 1,
                  "noerr": 0,
                  "x": 590,
                  "y": 220,
                  "wires": [
                      [
                          "aa99b9a9.d8b01"
                      ]
                  ]
              },
              {
                  "id": "81153305.5f231",
                  "type": "ui_template",
                  "z": "489b5edb.a55a7",
                  "group": "8a0878be.743388",
                  "name": "event onLoad/Reload",
                  "order": 1,
                  "width": 0,
                  "height": 0,
                  "format": "<script>\n(function() {\n    (function(scope) {\n        scope.send({payload: Date.now()}); // this gets sent when the view is opened in the browser\n    })(scope);\n})();\n</script>\n",
                  "storeOutMessages": false,
                  "fwdInMessages": false,
                  "templateScope": "local",
                  "x": 140,
                  "y": 220,
                  "wires": [
                      [
                          "b458b774.fe89c"
                      ]
                  ]
              },
              {
                  "id": "cff95d23.ad1f8",
                  "type": "comment",
                  "z": "489b5edb.a55a7",
                  "name": "getState if dashboard load/reload",
                  "info": "https://groups.google.com/forum/#!topic/node-red/WUp__e4rmBQ",
                  "x": 170,
                  "y": 160,
                  "wires": []
              },
              {
                  "id": "f8eab375.b2a72",
                  "type": "ioBroker in",
                  "z": "489b5edb.a55a7",
                  "name": "",
                  "topic": "hm-rpc.0.NEQ1681523.1.STATE",
                  "payloadType": "object",
                  "onlyack": "",
                  "func": "all",
                  "gap": "",
                  "x": 350,
                  "y": 100,
                  "wires": [
                      [
                          "3037b4f8.9d90fc"
                      ]
                  ]
              },
              {
                  "id": "8a0878be.743388",
                  "type": "ui_group",
                  "z": "",
                  "name": "StartupTest",
                  "tab": "478a6258.2e7604",
                  "order": 1,
                  "disp": true,
                  "width": "6",
                  "collapse": false
              },
              {
                  "id": "478a6258.2e7604",
                  "type": "ui_tab",
                  "z": "",
                  "name": "StartupTest",
                  "icon": "dashboard",
                  "order": 10,
                  "disabled": false,
                  "hidden": false
              }
          ]
          

          Gruß und schönen Restsonntag

          smarthome-tricks.de 1 Reply Last reply Reply Quote 1
          • smarthome-tricks.de
            smarthome-tricks.de @rewenode last edited by

            @rewenode
            Super Erklärung, vielen Dank. Ich steuere das bei mir jetzt über den Inject-Node, bei dem ich folgende Einstellung aktiviert habe:

            "Inject once after 0.1 seconds..."

            Damit wird die Visualisierung wunderbar initialisiert. Danke! 🙂

            R 1 Reply Last reply Reply Quote 0
            • R
              rewenode @smarthome-tricks.de last edited by

              @smarthome-tricks-de Dann wirst du aber immer noch das Problem haben, dass deine View nicht aktualisiert, wenn der Browser/Fenster neu aufgerufen wird.

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

              Support us

              ioBroker
              Community Adapters
              Donate

              819
              Online

              31.7k
              Users

              79.6k
              Topics

              1.3m
              Posts

              communication node-red
              3
              5
              1510
              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