Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node red für Anfänger/ NOOBs (wie mich) / Sammlung der Funktionen für nodes

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Node red für Anfänger/ NOOBs (wie mich) / Sammlung der Funktionen für nodes

Scheduled Pinned Locked Moved Skripten / Logik
6 Posts 1 Posters 12.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Maxtox
    wrote on last edited by
    #1

    Hi an Alle,

    Hier will ich eine Sammlung der funktionen /Nodes starten (fertige Flows sollen bitte extra vorgestellt werden).

    @Admin: wenn nicht gewünscht bitte einfach löschen! Danke!

    wie man die flows importiert sieht Ihr auf dem bild im Anhang

    1.auf Import clicken

    2. es geht ein fenster auf

    3. code hinein kopieren

    4. auf ok clicken

    5. auf dem Sheet positionieren Fertig!
    933_2016-01-10_14_31_55-.jpg

    Arduino MEGA 2560 R3 / ioBroker / DOino Sketch

    1 Reply Last reply
    0
    • M Offline
      M Offline
      Maxtox
      wrote on last edited by
      #2

      in der node red instanz habe folgende "erweiterungen" mit installiert:

      node-red-contrib-under-query, node-red-contrib-splitter, node-red-contrib-collector, node-red-contrib-mqtt-env, node-red-node-smooth, node-red-contrib-primitives, node-red-contrib-batcher
      

      einfach hier (Siehe Bild) hineinkopieren, beim nächsten Start wird es mit gestartet!
      933_2016-01-10_14_38_09-.jpg

      Arduino MEGA 2560 R3 / ioBroker / DOino Sketch

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Maxtox
        wrote on last edited by
        #3

        Collector:

        sammelt Daten die reinkommen und sendet sie GESAMMELT in einem Datenpaket "Payload" an das nächste Node.

        d.h.

        1. es kommt eine Nachricht mit Wert "-127.00" mit dem Topic/Thema "````
        mqtt/0/DOino<>MQTT/0/20/1/0/0

        
        ****Collector sendet**** als Payload raus````
        { "mqtt/0/DOino<>MQTT/0/20/1/0/0": "-127.00" }
        

        das sendet er bei jeder aktualisierung des wertes aus dem topic````
        mqtt/0/DOino<>MQTT/0/20/1/0/0

        
        2\. jetzt kommt ein Weiterer Wert dazu/wert wird im ioBroker aktualisiert, mit Wert "````
        41.06
        ````" mit dem Topic/Thema "````
        mqtt/0/DOino<>MQTT/0/58/1/0/0
        ````"
        
        ****Collector sendet**** als Payload den alten Wert raus````
        { "mqtt/0/DOino<>MQTT/0/20/1/0/0": "-127.00" }
        ````von vorhin und hängt das neue an````
        "mqtt/0/DOino<>MQTT/0/58/1/0/0": "41.06"
        

        also kommt dann als Payload aus dem COLLECTOR ein OBJECT raus````
        { "mqtt/0/DOino<>MQTT/0/20/1/0/0": "-127.00", "mqtt/0/DOino<>MQTT/0/58/1/0/0": "41.06" }

        
        Vorteile sehe ich darin, dass die werte aus 2 inputs ZUSAMMEN im nächsten (nach collector) NODE ankommen werden und somit beide werte verarbeitet werden können!
        [933_2016-01-10_14_51_23-.jpg](/assets/uploads/files/933_2016-01-10_14_51_23-.jpg)
        [933_2016-01-10_15_02_09-.jpg](/assets/uploads/files/933_2016-01-10_15_02_09-.jpg)

        Arduino MEGA 2560 R3 / ioBroker / DOino Sketch

        1 Reply Last reply
        0
        • M Offline
          M Offline
          Maxtox
          wrote on last edited by
          #4

          Jetzt haben wir als AUsgang aus dem Colector ein OBJECT und können die Werte daraus nicht direkt vergleichen /Verarbeiten…

          also brauchn wir eine konvertierung vom OBJECT zu "normalen Werten die wie aus de Mathe kennen" also 2+2= 4 :-)

          dafür brauchen wir eine Funktion, also benötigen wir einen FUNKTIONS-node.

          Sie können den Code hier rauskopieren und wie im 1ten Beitrag einfügen, dann haben Sie sofort das node mit der Funktion drin im Node Red:

          [{"id":"87e6a031.7ae0d","type":"function","name":"object to Array","func":"var arr = [];\nfor (var k in msg.payload) {arr.push([k]); arr.push(msg.payload[k]);}\n//wen string to Zahl gleichzeitig konvertiert werden soll dann +k siehe unten\n//for (var k in msg.payload) arr.push([+k, msg.payload[k]]); \nvar msg={payload: arr}\nreturn msg;","outputs":1,"noerr":0,"x":718.77783203125,"y":728.6666870117188,"z":"562b45ba.b7c0fc","wires":[["ddfb6229.dffa08"]]}]
          

          und das ist die Funktion dazu,

          @PROFIS/Admins: BITTE BERICHTIGEN ODER BESSEREN VORSCHALG MACHEN!!!! DANKE!

          var arr = [];
          for (var k in msg.payload) {arr.push([k]); arr.push(msg.payload[k]);}
          //wen string to Zahl gleichzeitig konvertiert werden soll dann +k siehe unten
          //for (var k in msg.payload) arr.push([+k, msg.payload[k]]); 
          var msg={payload: arr}
          return msg;
          

          933_2016-01-10_15_41_29-.jpg
          9054_stream.jpg
          9054_stream-2.jpg

          Arduino MEGA 2560 R3 / ioBroker / DOino Sketch

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Maxtox
            wrote on last edited by
            #5

            so …

            jetzt müssen wir aus einem Array die werte rausziehen.

            Mann kann Sich Array wie ein Flur mit vielen Zellen vorstellen. Jede Zelle hat eine Nummer von 0 bis …Halt so gross wie man es definiert hat.

            also in unserem oberen Beispiel ein Array aus 4 Zellen (0,1,2,3)

            Zelle 0:Jetzt wissen wir ja, dass in der Zelle 0 Topic sitzt,

            Zelle 1:in der Zelle 1 der dazu gehöriger Wert,

            Zelle 2:n der Zelle 2 wieder ein Topic, aber der zweite

            Zelle 3: in der zelle 3, der dazu (zum Topic2) gehöriger Wert 2

            Jetzt können wir einfach die Zelle 1 und 3 in Float (Zahl mit nachkommastellen) umwandeln und dann mit den Zahlen machen was wir wollen…

            also hier ist beispiel (wieder im node red importieren)

            [{"id":"a7837144.e14ba8","type":"function","name":"parse float","func":"if (msg.payload[0]==\"mqtt/0/DOino<>MQTT/0/20/1/0/0\")\n{\nvar val20 = parseFloat(msg.payload[1]);\nvar msg20 = {payload: val20};\n}\nif(msg.payload[2]= \"mqtt/0/DOino<>MQTT/0/58/1/0/0\")\n{\nvar val58 = parseFloat(msg.payload[3]);\nvar msg58 = {payload: val58};\n}\nif (val58>val20)\n\n    {var msgOUT={payload: \"VAL58 bigger as VAL20\"};}\n\n\nreturn [msg20,msg58,msgOUT];","outputs":"3","noerr":0,"x":508,"y":1034,"z":"562b45ba.b7c0fc","wires":[["434d0174.5baec"],["104708c4.57b32f"],["a288195c.ad3c8"]]}]
            

            oder die Funktion:

            @ Admin: da muss noch was KLEVER angepasst werden, damit es egal ist, welche Wertepaar als erste kommt und welche als zweite:

            D:\2016-01-10 16_08_10-.jpg
            

            933_2016-01-10_16_08_10-.jpg

            Arduino MEGA 2560 R3 / ioBroker / DOino Sketch

            1 Reply Last reply
            0
            • M Offline
              M Offline
              Maxtox
              wrote on last edited by
              #6

              so… jetzt stellen wir uns mal vor wir bekommen den Flur mit Zellen =(Array) und benötigen eine oder die andere zelle nicht... Dann wird Flur (array) auch kleiner....

              aus unserem oberen Beispiel:

              [ [ "mqtt/0/DOino<>MQTT/0/58/1/0/0" ], "42.27", [ "mqtt/0/DOino<>MQTT/0/20/1/0/0" ], "-127.00" ]
              

              Zelle 0 :"mqtt/0/DOino<>MQTT/0/58/1/0/0"

              Zelle 1 :"42.27"

              Zelle 2 : "mqtt/0/DOino<>MQTT/0/20/1/0/0"

              Zelle 3 :"-127.00"

              und wollen z.B. alle Zellen mit dem Inhalt````
              "mqtt/0/DOino<>MQTT/0/58/1/0/0"

              
              dafür wird ein Funktionsnode Benötigt mit folgenden code:
              
              

              var outputMsgs = msg.payload;
              var i;
              while ((i = outputMsgs.indexOf("mqtt/0/DOino<>MQTT/0/58/1/0/0")) != -1)
              {
              outputMsgs.splice(i, 1);
              }

              var msgNEWarray={payload: outputMsgs}
              return [msgNEWarray];

              
              mit indexOf wird die Zelle gesucht, und wenn wir die Adresse der Zelle kennen, diese Zelle entfernt! hier noch ein beispiel mit entfernen von zellen mit "," oder "}"
              
              

              [{"id":"5bb24327.748f4c","type":"function","name":"clean array","func":"var outputMsgs = msg.payload;\n var i;\n while ((i = outputMsgs.indexOf(":")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf(",")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf("{")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf("}")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\nvar msgNEWarray={payload: outputMsgs}\nreturn [msgNEWarray];","outputs":"1","noerr":0,"x":252,"y":494,"z":"bc3e7d10.9bc388","wires":[[]]}]

              [933_2016-01-10_16_39_57-.jpg](/assets/uploads/files/933_2016-01-10_16_39_57-.jpg)

              Arduino MEGA 2560 R3 / ioBroker / DOino Sketch

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              902

              Online

              32.4k

              Users

              81.5k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe