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. Nodered Dashboard Template

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Nodered Dashboard Template

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Saranger @mickym last edited by

      @mickym

      Ok an sich versteh ich das. Aber wie sieht das dann im Flow aus, ich versteh da nicht wie entschieden wird ob es jetzt gelb oder rot oder das andere Icon ist Sorry für die vielen Fragen, bin noch in der Einarbeitung ^^.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Saranger last edited by mickym

        @saranger Woran erkennst Du denn den Status Deiner Fenster?

        Poste halt mal die Payload aus Deiner KNX Node und sag welche Eigenschaft sich wie ändert bei welchem Zustand.

        Du klemmst einfach eine Change NOde zwischen rein - mit den Attributen:

        2b76834d-29ea-44e0-a97f-9ee735304819-image.png

        5d039884-4fd5-4959-a168-a4b7a0aa5430-image.png

        S 1 Reply Last reply Reply Quote 0
        • S
          Saranger @mickym last edited by

          @mickym

          so das hat soweit jetzt funktioniert :-), vielen Dank. Ich habe es anbei einmal beigefügt. Bei Icon Fehler geht es darum wenn beide KNX Zustände wahr sind, was eigentlich nicht passieren kann. Dazu habe ich ein X als Icon genommen, besteht die MNodered.JPG öglichkeit dieses Icon auch blinken zu lassen um es etwas besser noch hervorheben zu könne?

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Saranger last edited by

            @saranger Nein leider nicht- zumindest nicht einfach - da bräuchte man dann ggf. wieder Template - aber ich beim kein HTML Programmierer.

            S 1 Reply Last reply Reply Quote 0
            • S
              Saranger @mickym last edited by

              @mickym

              Ok kein Thema dann wird es einfach nur eine andere Farbe, aber ansonsten vielen Dank für die Hilfe, dass wird mir denk ich noch öfter helfen diese Lösung :).

              F 1 Reply Last reply Reply Quote 0
              • F
                frankyboy73 @Saranger last edited by

                @saranger Hi, es gibt zwar kein Blinken, aber man könnte ja die Farbe im Sekundentakt wechseln, z.B. rot-schwarz-rot-schwarz, usw. Anstatt schwarz eventuell die Hintergrundfarbe, dann siehts aus wie blinken.

                S 1 Reply Last reply Reply Quote 0
                • S
                  Saranger @frankyboy73 last edited by Saranger

                  @frankyboy73

                  Klingt interessant könnte ich mal testen danke 🤩.

                  Hab das mir mal angeschaut aber wie würdest du das umsetzen dass es immer zwischen den zwei Nachrichten gewechselt wird?

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Saranger @Saranger last edited by

                    Hab es jetzt hin bekommen, aber da verliert man irgendwie ziemlich schnell den überblick bei so vielen Linien^^.

                    F 2 Replies Last reply Reply Quote 0
                    • F
                      frankyboy73 @Saranger last edited by frankyboy73

                      @saranger Schön wenn du es hinbekommen hast.
                      Ja, wenn da viele Linien hin und her laufen kann das auf den ersten Blick schon etwas verwirrend aussehen. Aber man gewöhnt sich dran und der Vorteil bei Node Red ist ja das man nur die Linien verfolgen muss, damit man den Ablauf erkennt.
                      Ich hätte das wahrscheinlich mit ner Trigger und ner Delay Node gelöst, wobei ich per Schleife immer wieder den Trigger anschubsen würde, aber nur bei der 2. Nachricht des Triggers, deshalb der Switch mit Abfrage auf "schwarz", und beim Wechsel auf nen anderen Zustand die Schleife per Reset stoppen würde. Dann noch die msg.payload die aus dem Trigger kommt per change auf msg.color setzen. Nur mit Standart Nodes etwas kompliziert. Gibt bestimmt bessere Lösungen. Wie hast du das denn umgesetzt?
                      Blink1.jpg

                      Blink2.jpg

                      Blink3.jpg

                      Blink4.jpg

                      1 Reply Last reply Reply Quote 0
                      • F
                        frankyboy73 @Saranger last edited by

                        @saranger Oder mit 2 delay Nodes die sich gegenseitig triggern, wäre wahrscheinlich übersichtlicher. Dahinter dann mit Change die Farben setzen.
                        Blink5.jpg

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @frankyboy73 last edited by mickym

                          @frankyboy73 Na das ist ja mal eine Superidee. 🙂
                          Ist zwar wahrscheinlich nicht besonders resourcenschonen - insbesondere wenn man das häufig einzsetzt.

                          Ich dachte mir nun, vielleicht kann man es noch bissi übersichtlicher machen - und statt 2 Delay Nodes - könnte man auch 2 Trigger Nodes verwenden.
                          Da die Trigger Node beide Nachrichten erzeugen kann und wenn man in das Daschbord die Eigenschaften nicht in das msg sondern in die msg.payload packt - dann funktioniert auch das:

                          5aa292d3-d630-47c0-ab57-0e694829b3be-image.png

                          Man muss nur aufpassen - dass die 2 Node also 2 mal 450ms fertig ist bevor die erste Node erneut triggert. Aber ich stelle mir das nicht ressourcenschonend vor. Man merkt manchmal leichte Unregelmässigkeiten. 😉

                          [
                             {
                                 "id": "ecc89ba094dd5136",
                                 "type": "trigger",
                                 "z": "c4cf8040.7c4",
                                 "name": "",
                                 "op1": "{\"color\":\"#333333\",\"icon\":\"lock\"}",
                                 "op2": "{\"color\":\"red\",\"icon\":\"lock\"}",
                                 "op1type": "json",
                                 "op2type": "json",
                                 "duration": "450",
                                 "extend": false,
                                 "overrideDelay": false,
                                 "units": "ms",
                                 "reset": "",
                                 "bytopic": "all",
                                 "topic": "topic",
                                 "outputs": 1,
                                 "x": 2400,
                                 "y": 720,
                                 "wires": [
                                     [
                                         "6a005f1e.67dd6"
                                     ]
                                 ]
                             },
                             {
                                 "id": "b94a3d7c.1c6",
                                 "type": "inject",
                                 "z": "c4cf8040.7c4",
                                 "name": "reset.true",
                                 "props": [
                                     {
                                         "p": "reset",
                                         "v": "true",
                                         "vt": "bool"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "x": 2000,
                                 "y": 680,
                                 "wires": [
                                     [
                                         "f0be542b.6f4388"
                                     ]
                                 ]
                             },
                             {
                                 "id": "292eb7fc.04dcc8",
                                 "type": "inject",
                                 "z": "c4cf8040.7c4",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "true",
                                 "payloadType": "bool",
                                 "x": 1990,
                                 "y": 720,
                                 "wires": [
                                     [
                                         "f0be542b.6f4388"
                                     ]
                                 ]
                             },
                             {
                                 "id": "f0be542b.6f4388",
                                 "type": "trigger",
                                 "z": "c4cf8040.7c4",
                                 "name": "",
                                 "op1": "true",
                                 "op2": "0",
                                 "op1type": "bool",
                                 "op2type": "str",
                                 "duration": "-1",
                                 "extend": false,
                                 "overrideDelay": false,
                                 "units": "s",
                                 "reset": "",
                                 "bytopic": "all",
                                 "topic": "topic",
                                 "outputs": 1,
                                 "x": 2180,
                                 "y": 720,
                                 "wires": [
                                     [
                                         "ecc89ba094dd5136"
                                     ]
                                 ]
                             }
                          ]
                          

                          b20b870a-3084-41d2-8423-df4df5861913-image.png

                          OK an der CPU Last hat sich nicht wirklich was geändert.

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            frankyboy73 @mickym last edited by frankyboy73

                            @mickym Hi, das nutzen des msg.payload zum Farben und Icons erstellen in den Text bzw. Dash Nodes hatte ich so noch nicht auf dem Schirm, das ist ja auch super, da spart man sich noch die Change Nodes.
                            Ich denke mal man muss schon ne Menge dieser Blink Simulationen einsetzten (Trigger oder Delay) bevor das System davon beeinträchtigt wird. Wir sind hier ja noch im Sekundenbereich bzw. halb Sekunden. Wenn du das natürlich ausversehen auf 1 Millisekunde stellst, kann das nach hinten losgehen. Hatte mir mal so einen Loop gebaut, danach ging nichts mehr, ich kam auch nicht mehr aufs System drauf. Nur Adapter im sicheren Modus ging noch um das zu beheben.

                            Hab es gerade mal mit 50 Millisekunden getestet, da läuft noch alles super, allerding kriegen die Nodes den Reset manchmal nicht mit. 😁

                            Was du auch noch beachten solltest, das du das Reset auf beide Trigger Nodes gibst, sonst kann es dir passieren das bei Zustandswechsel bzw. wechsel auf ne andere Farbe zum ungünstigen Zeitpunkt, der zweite Trigger die Farbe danach noch einmal überschreibt. Das wäre natürlich blöde, wenn beim anderen Zustand kein Blinken kommen soll und die Farbe nur einmalig gesetzt wird. Oder man müsste das setzen der anderen Farbe verzögern damit der Trigger garantiert abgelaufen ist.

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @frankyboy73 last edited by mickym

                              @frankyboy73 sagte in Nodered Dashboard Template:

                              Hab es gerade mal mit 50 Millisekunden getestet, da läuft noch alles super, allerding kriegen die Nodes den Reset manchmal nicht mit.

                              Na das hätte ich mich nicht getraut. 😉

                              Was du auch noch beachten solltest, das du das Reset auf beide Trigger Nodes gibst, sonst kann es dir passieren das bei Zustandswechsel bzw. wechsel auf ne andere Farbe zum ungünstigen Zeitpunkt, der zweite Trigger die Farbe danach noch einmal überschreibt. Das wäre natürlich blöde, wenn beim anderen Zustand kein Blinken kommen soll und die Farbe nur einmalig gesetzt wird. Oder man müsste das setzen der anderen Farbe verzögern damit der Trigger garantiert abgelaufen ist.

                              Nee eigentlich nicht. Die 2 Trigger Node - soll nie resetted werden, damit der Zyklus fertig wird. Am Ende hatte ich ja immer die sichtbare Farbe - damit die immer zuletzt stehen bleibt. Das heißt ich will eigentlich nur den Taktgeber resetten. 😁
                              Deswegen fange ich ja mit der HIntergrundfarbe in der 2. Node bei Start an. Die Frage ist, ob das Reset- so wie ich das gemacht habe nicht durchgereicht wird und eben beide Nodes resetted werden oder ob man msg.reset - in einer ChangeNode dazwischen löscht?
                              Ach es macht richtig Spaß mit Dir solche Dinge zu diskutieren. 😉

                              Was ich viel komischer finde - wollte mal als Background mit den Variablennamen des Dashboards rumexperimentieren und da kommen ganz komische Farben raus. Probiere jetzt doch nochmal eine Template Node.

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                frankyboy73 @mickym last edited by frankyboy73

                                @mickym Z.B.:
                                Fenster ist offen, dann soll rot blinken
                                Fenster ist zu dann soll nur grün sein, kein blinken.
                                Das Fenster ist offen, rot blinkt, jetzt mache ich das Fenster zu, grün wird gesendet, sollte der 2. Trigger noch nicht abgelaufen sein, wird das wieder mit rot überschrieben, wenn der sendet.

                                Und es wird nicht durchgereicht, habe ich schon getestet.

                                Ja, macht Spaß 👍

                                1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active last edited by

                                  @frankyboy73 Ja das ist aber wieder eine andere Nummer - da musst Du dann eh mit switch Node dazwischen arbeiten und dann setzt man grün egal was vorher war.
                                  Die beiden Nodes mit dem Blinken repräsentieren ja nur EINEN Zustand - Du willst ja offen und zu.

                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    frankyboy73 @mickym last edited by frankyboy73

                                    @mickym Genau, das meine ich ja, @Saranger will ja 3 verschiedene Zustände. Jetzt weiß ich natürlich nicht wann er blinken und wann nicht haben möchte.
                                    @Saranger Aber du hast ja schon für dich eine Lösung gefunden, vielleicht ist die ja noch viel besser.

                                    Edit: Oder waren es sogar 4 Zustände, Auf, Zu, Gekippt und Fehler gibt es ja auch noch.

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @frankyboy73 last edited by mickym

                                      @frankyboy73 sagte in Nodered Dashboard Template:

                                      @mickym Genau, das meine ich ja, @Saranger will ja 3 verschiedene Zustände. Jetzt weiß ich natürlich nicht wann er blinken und wann nicht haben möchte.
                                      @Saranger Aber du hast ja schon für dich eine Lösung gefunden, vielleicht ist die ja noch viel besser.

                                      Nein eigentlich nicht - bzw. er hat das ja vorher schon auseinandergefieselt:

                                      6fb2ac21-b1a4-492f-a4f0-6fc677590958-image.png

                                      Es soll nur der Fehler - also der untere Zustand blinken - der ja auch nie auftreten darf insofern kein Resourcenproblem.
                                      Die Icon Fehler Change Node wird durch die beiden trigger Nodes ersetzt.

                                      Er müsste jetzt nur alles in die payload Objekte packen und ein msg.reset Change Node von den Zuständen runter zu dem Blinken trigger leiten.

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        frankyboy73 @mickym last edited by

                                        @mickym Vielleicht bin ich hier ja auch auf dem sogenannten Holzweg.
                                        Aber nehmen wir mal an es kommt der Fehler. Die Trigger zum blinken laufen.
                                        Dann geht der Fehler irgendwann weg und es kommt z.B. Closed dann wird ja über den oberen switch und die change Node grün gesendet. Wenn in dem moment der zweite Trigger vom Blinken des Fehlers noch nicht abgelaufen ist, überschreibt der doch bei Ablauf wieder mit Rot. Deshalb meine ich man muss den auch zurücksetzen.

                                        mickym 1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @frankyboy73 last edited by mickym

                                          @frankyboy73 OK Du hast Recht. 😁 👍

                                          Ich habe die Lösung eine 3. Trigger Node. 😉 und eine Change Node - Habs getestet:

                                          5eaa8bff-835b-4dd6-b32e-cf10f004b65e-image.png

                                          [
                                             {
                                                 "id": "90a44e1a.ea1a4",
                                                 "type": "trigger",
                                                 "z": "1557a383.3bbd1c",
                                                 "name": "",
                                                 "op1": "{\"color\":\"#333333\",\"icon\":\"lock\"}",
                                                 "op2": "{\"color\":\"red\",\"icon\":\"lock\"}",
                                                 "op1type": "json",
                                                 "op2type": "json",
                                                 "duration": "450",
                                                 "extend": false,
                                                 "overrideDelay": false,
                                                 "units": "ms",
                                                 "reset": "",
                                                 "bytopic": "all",
                                                 "topic": "topic",
                                                 "outputs": 1,
                                                 "x": 680,
                                                 "y": 1460,
                                                 "wires": [
                                                     [
                                                         "13171610.b0467a"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "e2a0cd0f.674ae",
                                                 "type": "inject",
                                                 "z": "1557a383.3bbd1c",
                                                 "name": "Fehler",
                                                 "props": [
                                                     {
                                                         "p": "payload"
                                                     }
                                                 ],
                                                 "repeat": "",
                                                 "crontab": "",
                                                 "once": false,
                                                 "onceDelay": 0.1,
                                                 "topic": "",
                                                 "payload": "true",
                                                 "payloadType": "bool",
                                                 "x": 210,
                                                 "y": 1500,
                                                 "wires": [
                                                     [
                                                         "1394480a.160148"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "1394480a.160148",
                                                 "type": "trigger",
                                                 "z": "1557a383.3bbd1c",
                                                 "name": "",
                                                 "op1": "true",
                                                 "op2": "0",
                                                 "op1type": "bool",
                                                 "op2type": "str",
                                                 "duration": "-1",
                                                 "extend": false,
                                                 "overrideDelay": false,
                                                 "units": "s",
                                                 "reset": "",
                                                 "bytopic": "all",
                                                 "topic": "topic",
                                                 "outputs": 1,
                                                 "x": 460,
                                                 "y": 1460,
                                                 "wires": [
                                                     [
                                                         "90a44e1a.ea1a4"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "6e945.0b1fa6bc",
                                                 "type": "trigger",
                                                 "z": "1557a383.3bbd1c",
                                                 "name": "",
                                                 "op1": "true",
                                                 "op2": "",
                                                 "op1type": "bool",
                                                 "op2type": "pay",
                                                 "duration": "2",
                                                 "extend": false,
                                                 "overrideDelay": false,
                                                 "units": "s",
                                                 "reset": "",
                                                 "bytopic": "all",
                                                 "topic": "topic",
                                                 "outputs": 2,
                                                 "x": 460,
                                                 "y": 1300,
                                                 "wires": [
                                                     [
                                                         "eabb6de1.5b5e9"
                                                     ],
                                                     [
                                                         "13171610.b0467a"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "eabb6de1.5b5e9",
                                                 "type": "change",
                                                 "z": "1557a383.3bbd1c",
                                                 "name": "",
                                                 "rules": [
                                                     {
                                                         "t": "move",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "reset",
                                                         "tot": "msg"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 220,
                                                 "y": 1440,
                                                 "wires": [
                                                     [
                                                         "1394480a.160148"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "328a43b0.17253c",
                                                 "type": "inject",
                                                 "z": "1557a383.3bbd1c",
                                                 "name": "Gelbes Icon - Fenster gekippt",
                                                 "props": [
                                                     {
                                                         "p": "payload"
                                                     }
                                                 ],
                                                 "repeat": "",
                                                 "crontab": "",
                                                 "once": false,
                                                 "onceDelay": 0.1,
                                                 "topic": "",
                                                 "payload": "{\"color\":\"yellow\",\"icon\":\"lock\"}",
                                                 "payloadType": "json",
                                                 "x": 220,
                                                 "y": 1300,
                                                 "wires": [
                                                     [
                                                         "6e945.0b1fa6bc"
                                                     ]
                                                 ]
                                             }
                                          ]
                                          

                                          Diese Trigger Node ist so genial

                                          F 2 Replies Last reply Reply Quote 0
                                          • F
                                            frankyboy73 @mickym last edited by frankyboy73

                                            @mickym Hi, habs mal aufgebaut. Das passiert wenn ich zum ungünstigen Zeit punkt von Fehler auf Closed wechsel. Siehe Debug Output, es wird noch mal Rot geschrieben.
                                            Blink6.jpg

                                            Edit: Hat sich überschnitten. Ok, das ist auch ne Lösung 👍

                                            mickym 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            template
                                            3
                                            32
                                            3403
                                            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