Skip to content

Node-Red

Hilfe für Skripterstellung mit Node-RED

952 Themen 13.1k Beiträge

NEWS

  • Ausgabe von einer Datenbank für E-Mail formatieren

    4
    0 Stimmen
    4 Beiträge
    176 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
    416 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
    882 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
    518 Aufrufe
    ostseereiterO
    @mickym ok verstanden na dann.
  • String & Wert Parsen

    12
    0 Stimmen
    12 Beiträge
    703 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
    311 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
    189 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. :+1:
  • Modbus Serial: PortNotOpenError

    4
    0 Stimmen
    4 Beiträge
    171 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
    953 Aufrufe
    HomoranH
    @Thomas-Braun sagte in Fehler bei Adapter Installation: Beides geht. Again what learned! Danke
  • Licht mit Schalter und Bewegungsmelder steuern

    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    mickymM
    @tobirobi Wenn Du das über Node-Red implementiert hast, dann liest Du mit jedem Signal des Bewegungsmelders den Status des Lichtschalters aus, den kannst Du in einer Flow-Variablen speichern (den Du natürlich auch smart haben solltest) und lässt dann das Signal des Bewegungsmelders über einen Switch Node entsprechend durch. Falls Dein Lichtschalter nicht smart ist, dann kannst Du ggf. noch wenn Dein Bewegungsmelder (wie die Xiaomi) über die Helligkeit steuern, ob das Signal des Bewegungsmelders durchkommen soll oder nicht. (Mach ich teilweise auch so)
  • Problem mit node red adapter [erledigt]

    1
    0 Stimmen
    1 Beiträge
    166 Aufrufe
    Niemand hat geantwortet
  • ioBroker Ojekt in Node abfragen

    10
    0 Stimmen
    10 Beiträge
    4k Aufrufe
    MessiahsM
    @JojoS: Geht m.M. auch mit dem"ioBroker List" und einem Topic wie z.B. "hm-rpc.0.*" und regex-Value (z.B. " ^hm-rpc[.]0[.]([A-Za-z0-9]{14})[.]1[.](LEVEL|STATE|ACTUAL_TEMPERATURE|PRESENCE_DETECTION_STATE)$ So hole ich mir alle Einträge aus dem Baum "hm-rpc.0" die mit LEVEL, STATE usw. enden.
  • Auslesen mehrere Status

    3
    0 Stimmen
    3 Beiträge
    459 Aufrufe
    MessiahsM
    @mickym : Danke das hat mir sehr geholfen. Als Topic habe ich jetzt : 'zigbee.0.*' und lasse mir alle Objekte in einer Nachricht senden (brauche deshalb keine join-node) Zusätzlich habe ich jetzt in der ListNode entsprechende RegEx Ausdrücke aufgenommen... z.B. '^zigbee[.]0[.]([A-Za-z0-9]{16})[.](opened|state)$' um die Objekt-Anzahl in der Nachricht zu verringern. Klappt jetzt ganz gut. Danke dafür !
  • Homematic Heizungsthermostat und Aqara Fenstersensor auf/zu

    7
    1
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    H
    @ujoerk das ist sehr sexy, danke für das mitteilen! :) Werde bei mir entsprechend einiges umstellen.
  • Pin Eingabe und Progressbar mit Nextion Display

    2
    1
    0 Stimmen
    2 Beiträge
    363 Aufrufe
    M
    Hat sich erledigt, hab´s hin bekommen
  • (gelöst)NodeRed kann nach update nicht aufgerufen werden.

    5
    1
    0 Stimmen
    5 Beiträge
    168 Aufrufe
    ostseereiterO
    @UncleSam Habe in den Einstellungen die IP geändert alles läuft wieder danke?
  • Aqara Feuchtesensor soll Licht dimmen (deconz)

    6
    0 Stimmen
    6 Beiträge
    603 Aufrufe
    paul53P
    @wanze2001 sagte: blockly kann ich den normalen Wert auslesen in dem Fall dann 65,13%. Dementsprechend könnte man die Umwandlung weg lassen. Dann muss man sie weglassen.
  • Hilfe bei node-red-contrib-alexa-home-skill

    4
    1
    0 Stimmen
    4 Beiträge
    739 Aufrufe
    Basti97B
    @Maik-Krause Update: Es hat funktioniert. Wie hast du die Alexa integriert. Bei mir zeigt die alexa auch grün und auch die virtuellen Geräte wurden in der Alexa App integriert. Aber leider kann ich trotzdem nicht die Geräte steuern.

807

Online

32.4k

Benutzer

81.5k

Themen

1.3m

Beiträge