Weiter zum Inhalt

Node-Red

961 Themen 13.2k Beiträge

Hilfe für Skripterstellung mit Node-RED

NEWS

  • Kann Geräte nicht schalten.

    3
    1
    0 Stimmen
    3 Beiträge
    310 Aufrufe
    J
    @technodj23 Wie heißt denn die Node, mit der DU das an Alexa anbindest, da die auf dem Bild schon mal nicht die ist, mir der ich das mache und es genau da letztes Jahr einiges an Änderungen gab.
  • NodeRed Zeitstempel, join-node (für Thingsboard)

    1
    0 Stimmen
    1 Beiträge
    159 Aufrufe
    Niemand hat geantwortet
  • IOBroker Node Red settings.js [Gelöst][Frage]

    3
    0 Stimmen
    3 Beiträge
    338 Aufrufe
    S
    @mickym sorry für die späte Antwort. Danke für die Rückmeldung. Hat funktioniert.
  • node-red-contrib-alexa-home und Rolladensteuerung

    7
    3
    0 Stimmen
    7 Beiträge
    5k Aufrufe
    J
    @commander Atifan hat doch die Funktion für den Dimmer oben gekostet.
  • NodeRed Dashboard - mehrere Seiten

    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    mickymM
    @dirknico Wie gesagt lies Dir nochmal die Anleitung zu der UI-Node durch. Hier mal Auszüge: Tabs bzw. Gruppen zu schließen {"tabs": {"hide": "tab_name_to_hide", "disable": ["secret_tab", "unused_stuff"]} oder individuelle Gruppen {"group": {"hide": ["tab_name_group_name_with_underscores"], "show": ["reveal_another_group"], "focus": true}} Normalerweise brauchst Du das aber nicht. Für Seiten die ich nur über Buttons aufrufe - kann ich über das Menü wieder eine der Hauptseiten aufrufen. Damit die Detailseiten im Navigationsmenü nicht sichtbar sind - verstecke die einfach.
  • Bluelinky mit Node-Red -> Hyundai Bluelink

    3
    1
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    mickymM
    @christophb sagte in Bluelinky mit Node-Red -> Hyundai Bluelink: Jetzt bin ich soweit, daß ich meine Daten bekomme, aber wie bekomme ich jetzt beispielsweise den Wert von "batteryStatus" extrahiert? [image: 1610911803876-screenshot-2021-01-17-20.24.02.jpg] Ganz einfach in dem Du über eine Change Node - die Eigenschaft aus dem für Dich interessanten Objekt herausfilterst und als payload weiterreichst. [image: 1611165732493-screen.png] Bei den anderen Funktionen/Nodes ist egal, was Du einspeist - wahrscheinlich bekommst Du dann nur raus, ob es geklappt hat, ob Du das Auto gestartet hast usw.
  • Wackliger Wert, Wert flattert...Traffic minimieren

    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    mickymM
    @hamudulu Man hätte es auch mal mit der Standard RBE Node versuchen können. Da kann man auch einstellen, umwieviel % sich der Wert ändern muss, damit eine Nachricht erzeugt wird. Klar gibt es komplexere Lösungen, aber man kann ja auch erst mal schauen, was der Standard so alles bietet. Selbst die Standard iobroker In Nodes bieten an, dass Nachrichten nur generiert werden, wenn sie sich um einen bestimmten % unterscheiden. Ich habs nicht getestet aber könnten man (so als Tipp ;) ) auch mal ausprobieren. Oder um nur eine Tendenz zu haben, habe ich mir diesmal eine function Node gebastelt, die immer den Vorgängerwert gespeichert hält. Da kann man dann selbst entscheiden wie die Tendenz dargestellt wird. Jeder Input wird wird mit dem Vorgänger verglichen. Ist er kleiner wird 1 abgezogen, größer 1 dazu gezählt. -3 ist dann Tendenz fallend, +3 Tendenz steigend - alles dazwischen gleichbleibend - und natürlich freikonfigurierbar. Ich nutze sowas für mein eigenes Barometer: [image: 1611164672712-screen.png] Geht aber auch ohne function Node mit einer Flow-Variablen.
  • Lichtsteuerung m. XIAOMI Bewegungsmeldern & Zigbee Adapter

    node-red template
    7
    1
    1 Stimmen
    7 Beiträge
    543 Aufrufe
    mickymM
    @mickym Freut mich. :) Das war ja auch Sinn der Sache, dass man mal sieht, was man mit ein paar Flow Variablen und dem Subflow (quasi als Unterprogramm) alles zaubern kann. ;)
  • Timestamp Umwandeln in Node Red (gelöst)

    17
    1
    0 Stimmen
    17 Beiträge
    22k Aufrufe
    R
    @mickym said in Timestamp Umwandeln in Node Red (gelöst): Allerdings hat es mich nun ca. 2 Stunden gekostet - bis ich die Syntax rausbekommen habe, dass ich das gleiche wie mit der Node bekommen habe - aber letztlich habe ich es rausbekommen. Ja, ist leider nicht gerade einfach dokumentiert. Hätte vlt. noch diesen Link angeben sollen https://momentjs.com/docs/ Da braucht's aber auch viel Zeit da durchzusteigen;-) Na wenigstens hast du jetzt die wichtigsten Infos zusammengetragen. Danke dafür!
  • Ausgabe von einer Datenbank für E-Mail formatieren

    4
    0 Stimmen
    4 Beiträge
    216 Aufrufe
    mickymM
    @helios03 Ich habe Deine Anforderung ja nochmal gelesen und Du wolltest das ja als E-Mail haben. Ich hab mal bisschen rumgespielt - und bin leider guter bzw. gar kein HTML Programmieren, aber ich hab was hinbekommen. ;) Leider hat es - analog zum UI Dashboard die Template Node zu nehmen NICHT funktioniert: [image: 1610555338428-screen.png] Deshalb hab ich eine function Node gemacht - die den HTML Code erzeugt - aber das können HTML Programmierer sicher viel besser. Die übergibt dann den kompletten HTML Code an eine Mail-Node. Der Code in der function Node schaut wie folgt aus: var start= ' <!DOCTYPE html> \ <html xmlns="http://www.w3.org/1999/xhtml"> \ <head> \ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> \ <meta name="viewport" content="width=device-width, initial-scale=1.0"/> \ </head> \ <body style="margin: 0; padding: 0;"> \ <table border="1" cellpadding="0" cellspacing="0" width="100%"> \ <tr><th width=150>Scann-Zeit</th><th width=150>Drucker</th></tr>'; var end= ' </table> \ </body> \ </html>'; var output=""; for (var w of msg.payload) { var zeile = "<tr>" + "\n"; zeile = zeile + "<td>" + w.Zeit + "</td><td>" + w.Ort +"</td>" + "\n"; zeile = zeile + "</tr>"+ "\n"; output=output+zeile; } msg.payload= start + output + end; return msg; [image: 1610555751327-screen.png] oder im Windows 10 Mail [image: 1610555828553-screen.png] Den Betreff kannst Du natürlich ändern in dem Du vorher noch eine entsprechende msg.topic setzt.
  • TV schalten mit Homekit über Node Red

    3
    2
    0 Stimmen
    3 Beiträge
    538 Aufrufe
    mickymM
    @strobel Der 2. Flow kommt mir undurchsichtig vor. Beim 1. Flow müsstest Du wahrscheinlich nur eine Change Node mit payload = boolean = true an die Tasten senden. Zumindest funktionieren bei mir diese Tasten in iobroker bei mir so.
  • Update aller IOBroker Objects bei Neustart Node Red

    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    F
    @killroy2 Hi, bist du hier schon weiter gekommen? Ich habe auch das Problem das mir die Werte nach einem Neustart fehlen. Das "Fire by Start" feuert nur wenn die Nodes geändert werden oder wenn ich bei Deploy Restart Flows auswähle. Beim Neustart passiert leider nichts. Ich habe mir bis jetzt mit ner Injekt Node mit Startet! und dazu Get Nodes beholfen, aber es sollte ja wohl nicht die Lösung sein alles mit Get Nodes vollzuballern. Ich hatte gehofft das die Funktion Fire by Start das löst.
  • (gelöst)NodeRed keine Palleten mehr

    node-red
    9
    1
    0 Stimmen
    9 Beiträge
    606 Aufrufe
    ostseereiterO
    @mickym ok verstanden na dann.
  • String & Wert Parsen

    12
    0 Stimmen
    12 Beiträge
    847 Aufrufe
    mickymM
    @Niklas-Schoen Mit Node-Red ist es doch sehr einfach. Du liest über einen iobroker in Node Dein Objekt aus - baust über einen Change Node die URL und übergibst diesem einem HTTP-Request Node - der auch eine Basic Authentication übergibt. Das sind 3-4 Nodes je nachdem wie Du das triggern möchtest. Ich mach Dir mal ein Beispiel - ich lese als Datenpunkt den String z. Bsp "microsoft" und hänge dann ".com" und den Rest für die URL an und übergebe das dem HTTP-Request Node. Basic Authentication habe ich nichts angegeben aber das ist selbsterklärend in dem HTTP-Request Node. Hier der Flow zum Testen: [ { "id": "7c137d0b.bd8124", "type": "http request", "z": "dce8fa20.2e93c8", "name": "", "method": "GET", "ret": "txt", "paytoqs": "ignore", "url": "", "tls": "", "persist": false, "proxy": "", "authType": "", "x": 1350, "y": 320, "wires": [ [ "f9dc7268.16b3b" ] ] }, { "id": "6c167017.42f4e", "type": "ioBroker get", "z": "dce8fa20.2e93c8", "name": "test", "topic": "0_userdata.0.test", "attrname": "payload", "payloadType": "value", "x": 960, "y": 320, "wires": [ [ "88c1b523.772e08" ] ] }, { "id": "bcdaa5e0.3c0fb8", "type": "inject", "z": "dce8fa20.2e93c8", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "trigger", "payloadType": "str", "x": 810, "y": 320, "wires": [ [ "6c167017.42f4e" ] ] }, { "id": "88c1b523.772e08", "type": "change", "z": "dce8fa20.2e93c8", "name": "", "rules": [ { "t": "set", "p": "url", "pt": "msg", "to": "\"http://\" & payload & \".com\"", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1130, "y": 320, "wires": [ [ "67c5e032.4345e", "7c137d0b.bd8124" ] ] }, { "id": "67c5e032.4345e", "type": "debug", "z": "dce8fa20.2e93c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "url", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1350, "y": 260, "wires": [] }, { "id": "f9dc7268.16b3b", "type": "debug", "z": "dce8fa20.2e93c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1550, "y": 320, "wires": [] } ] Hier ein Screenshot - wie gesagt die Basic Authentisierung musst Du nur in der Request Node anhacken und Credentials eingeben. [image: 1609894908931-screen.png] Die Ausgabe des letzten Debug Nodes zeigt Dir dann den Output der HTML Page. Wenn Du keinen externen/manuellen Trigger brauchst - setzt Du anstelle des iobroker get und inject nodes einfache eine iobroker in node - und der ruft Dir die Seite bei jeder Aktualisierung/änderung des Objektes im iobroker auf. Das Analysieren der HTML Daten/Codes, die von der Webpage zurückgeliefert werden - das ist dann das Parsen - da bin ich raus. Um das evtl. bisschen praxisnäher zu machen - habe ich mal die Webseite dieses Threads zusammengestellt. Ausserdem gibt es html parser node - da musst dann die Dich interessierenden Sections angeben und werden Dir als Array zurückgegeben. Hier siehst DU also als URL diesen Thread hier - wobei genau dieser als Object im iobroker abgelegt ist. "40556/"String & Wert Parsen" [image: 1609896637783-screen.png] [image: 1609896846722-screen.png] Im HTML Parser habe ich angegeben, dass ich alle title Sections haben möchte und dann siehst im Debug wie das extrahiert wird - oben drüber siehst den HTML Output. Aber wie gesagt da müssen Dir dann Leute ggf. helfen die Web programmierung mehr beherrschen. Hier noch der Flow: [ { "id": "7c137d0b.bd8124", "type": "http request", "z": "dce8fa20.2e93c8", "name": "", "method": "GET", "ret": "txt", "paytoqs": "ignore", "url": "", "tls": "", "persist": false, "proxy": "", "authType": "", "x": 1410, "y": 280, "wires": [ [ "f9dc7268.16b3b", "f3944e9.d49e5b" ] ] }, { "id": "6c167017.42f4e", "type": "ioBroker get", "z": "dce8fa20.2e93c8", "name": "test", "topic": "0_userdata.0.test", "attrname": "payload", "payloadType": "value", "x": 1030, "y": 280, "wires": [ [ "88c1b523.772e08" ] ] }, { "id": "bcdaa5e0.3c0fb8", "type": "inject", "z": "dce8fa20.2e93c8", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "trigger", "payloadType": "str", "x": 910, "y": 280, "wires": [ [ "6c167017.42f4e" ] ] }, { "id": "88c1b523.772e08", "type": "change", "z": "dce8fa20.2e93c8", "name": "", "rules": [ { "t": "set", "p": "url", "pt": "msg", "to": "\"https://forum.iobroker.net/topic/\" & payload", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1190, "y": 280, "wires": [ [ "67c5e032.4345e", "7c137d0b.bd8124" ] ] }, { "id": "67c5e032.4345e", "type": "debug", "z": "dce8fa20.2e93c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "url", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1400, "y": 220, "wires": [] }, { "id": "f9dc7268.16b3b", "type": "debug", "z": "dce8fa20.2e93c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1610, "y": 220, "wires": [] }, { "id": "f3944e9.d49e5b", "type": "html", "z": "dce8fa20.2e93c8", "name": "", "property": "payload", "outproperty": "payload", "tag": "title", "ret": "html", "as": "single", "x": 1590, "y": 280, "wires": [ [ "8e34c445.0d1158" ] ] }, { "id": "8e34c445.0d1158", "type": "debug", "z": "dce8fa20.2e93c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1830, "y": 220, "wires": [] } ]
  • Problem mit Within-Time-Switch Node

    2
    1
    0 Stimmen
    2 Beiträge
    392 Aufrufe
    S
    @SuperElmi Hat sich erledigt, es müssen natürlich alle Inputs mit Join zusammengefasst werden, dann natürlich die Anzahl der Messages auf 3 setzen. Gruß SuperElmi
  • Node-Red Alexa oder Schaltung

    node-red
    1
    1
    0 Stimmen
    1 Beiträge
    210 Aufrufe
    Niemand hat geantwortet
  • node-red-contrib-amazon-echo Dimmen

    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    V
    @Hc-Yami Habe ich mir fast schon gedacht. Danke für deine Hilfe.
  • Modbus Serial: PortNotOpenError

    4
    0 Stimmen
    4 Beiträge
    208 Aufrufe
    UncleSamU
    @woami sagte in Modbus Serial: PortNotOpenError: Welcher RPI is nicht verbastelt Meine. Selbst der, den ich für's Entwicklen brauche.
  • KNX Dimmen über Homekit mit Node Red

    node-red
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    mickymM
    @Strobel Brightness ist ja der Dimmfaktor und der erwartet einen Zahlenwert zwischen 0 und 100 und nicht "true". Das KNX kann ich nicht beurteilen, aber wenn Du mit einer Inject-Node einen Zahlenwert an dem 2. Ausgang in Deine KNX Node schickst, müsstest Du es ja simulieren können. Eventuell musst Du auch ein komplettes JSON schicken: { "On": true, "Brightness": 50 } Hab das nicht mehr ganz in Erinnerung - aber ich glaub so war das. Hänge mal diese Inject Node vor Deine Homekit Node: [ { "id": "254f72d0.378a1e", "type": "inject", "z": "80abc55e.a68438", "name": "Test", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "{\"On\":true,\"Brightness\":50}", "payloadType": "json", "x": 510, "y": 240, "wires": [ [ "825717c0.7f4878" ] ] } ] Und anstelle der Function Node würde ich den JSON String dann lieber über 2 Change-Nodes aufsplitten - das ist übersichtlicher. Damit Du weißt was ich meine - hier ein Beispiel wie Du einen JSON in die 2 gewünschten Parameter aufdröselst. [ { "id": "973eab00.325778", "type": "change", "z": "e797789f.53e7c8", "name": "On", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "payload.On", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 800, "y": 180, "wires": [ [ "9abb962.c7b5068" ] ] }, { "id": "cf690159.88604", "type": "inject", "z": "e797789f.53e7c8", "name": "Test", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "{\"On\":true,\"Brightness\":50}", "payloadType": "json", "x": 590, "y": 200, "wires": [ [ "973eab00.325778", "dc78d0be.2b9c4" ] ] }, { "id": "9abb962.c7b5068", "type": "debug", "z": "e797789f.53e7c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1150, "y": 180, "wires": [] }, { "id": "dc78d0be.2b9c4", "type": "change", "z": "e797789f.53e7c8", "name": "Brightness", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "payload.Brightness", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 810, "y": 220, "wires": [ [ "ab423b7d.b17498" ] ] }, { "id": "ab423b7d.b17498", "type": "debug", "z": "e797789f.53e7c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1150, "y": 220, "wires": [] } ]
  • Fehler bei Adapter Installation

    10
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    HomoranH
    @Thomas-Braun sagte in Fehler bei Adapter Installation: Beides geht. Again what learned! Danke

408

Online

33.0k

Benutzer

83.4k

Themen

1.3m

Beiträge