Weiter zum Inhalt

Node-Red

961 Themen 13.2k Beiträge

Hilfe für Skripterstellung mit Node-RED

NEWS

  • Einspeisung / Bezug über Zählerstand Differenz erfassen?

    node-red
    18
    0 Stimmen
    18 Beiträge
    2k Aufrufe
    S
    @mickym Habe den ersten Schuss so gelöst: [image: 1701295828798-a15dc5a7-f04d-4ce9-9b19-c1da9c1639c5-image.png] Spoiler [ { "id": "00519bd9e9975550", "type": "inject", "z": "79c2861ec6e321b9", "name": "alle 5min", "props": [ { "p": "payload" } ], "repeat": "300", "crontab": "", "once": true, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 150, "y": 820, "wires": [ [ "5bd17fe8b83ef863", "dea708d0212a15d6" ] ] }, { "id": "5bd17fe8b83ef863", "type": "ioBroker get", "z": "79c2861ec6e321b9", "name": "1-0:1_8_0__255.value", "topic": "smartmeter.0.1-0:1_8_0__255.value", "attrname": "payload", "payloadType": "value", "x": 380, "y": 820, "wires": [ [ "613ebe1d09cf6cbd", "8a05b813586187ab" ] ] }, { "id": "613ebe1d09cf6cbd", "type": "ioBroker out", "z": "79c2861ec6e321b9", "name": "aktVerbrauch", "topic": "0_userdata.0.Energiemanagement.aktVerbrauch", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 590, "y": 880, "wires": [] }, { "id": "8a05b813586187ab", "type": "delay", "z": "79c2861ec6e321b9", "name": "", "pauseType": "delay", "timeout": "10", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 650, "y": 820, "wires": [ [ "c690c5bcb4bb6f3e" ] ] }, { "id": "c690c5bcb4bb6f3e", "type": "ioBroker out", "z": "79c2861ec6e321b9", "name": "gespVerbrauch", "topic": "0_userdata.0.Energiemanagement.gespVerbrauch", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 860, "y": 820, "wires": [] }, { "id": "d52ee9ff24d86ea7", "type": "ioBroker get", "z": "79c2861ec6e321b9", "name": "gespVerbrauch", "topic": "0_userdata.0.Energiemanagement.gespVerbrauch", "attrname": "payload", "payloadType": "value", "errOnInvalidState": "nothing", "x": 360, "y": 940, "wires": [ [ "d61a122c6bb43c72" ] ] }, { "id": "d61a122c6bb43c72", "type": "change", "z": "79c2861ec6e321b9", "name": "", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "gespeichert", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 940, "wires": [ [ "28596c3ca84ac5d2" ] ] }, { "id": "28596c3ca84ac5d2", "type": "ioBroker get", "z": "79c2861ec6e321b9", "name": "aktVerbrauch", "topic": "0_userdata.0.Energiemanagement.aktVerbrauch", "attrname": "aktuell", "payloadType": "value", "errOnInvalidState": "nothing", "x": 770, "y": 940, "wires": [ [ "997e11b298c357b9" ] ] }, { "id": "997e11b298c357b9", "type": "change", "z": "79c2861ec6e321b9", "name": "berechne", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "(aktuell - gespeichert) * 12000", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 960, "y": 940, "wires": [ [ "c9e89e065e8115de" ] ] }, { "id": "c9e89e065e8115de", "type": "ioBroker out", "z": "79c2861ec6e321b9", "name": "errechnBezug", "topic": "0_userdata.0.Energiemanagement.errechnVerbrauch", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1120, "y": 940, "wires": [] }, { "id": "dea708d0212a15d6", "type": "delay", "z": "79c2861ec6e321b9", "name": "", "pauseType": "delay", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 180, "y": 940, "wires": [ [ "d52ee9ff24d86ea7" ] ] } ] es sieht erstmal ganz gut aus
  • Update-Flows gestoppt Credentials werden nicht entschlüsselt

    2
    1
    0 Stimmen
    2 Beiträge
    343 Aufrufe
    Marc BergM
    @blrd sagte in Update-Flows gestoppt Credentials werden nicht entschlüsselt: über eine schnelle Hilfe freuen. Wenn du so dringend auf Node Red angewiesen bist, warum bist du dann im Beta Zweig unterwegs und liest keine Release Notes? [image: 1701259076665-f73d238a-d7c1-4689-9190-b9dc48a73752-grafik.png] Mach' ein Downgrade auf 4.0.3, dann sollte es wieder laufen, wenn du sonst keine Änderungen vorgenommen hast.
  • Node Red Modbus

    26
    2
    0 Stimmen
    26 Beiträge
    5k Aufrufe
    mickymM
    @garf Nein - bei Floats musst Du zur mathematisch korrekten Rundung die Werte im Nachgang bearbeiten. Also kenn auch keine andere Möglichkeit.
  • Datenstrom aus Nodered filtern und in Datenpunkt ausgeben.

    23
    5
    0 Stimmen
    23 Beiträge
    3k Aufrufe
    mickymM
    @fimoknete sagte in Datenstrom aus Nodered filtern und in Datenpunkt ausgeben.: Ich werde jetzt noch versuchen, die Ladeleistung und Entladeleistung raus zu frickeln. Kannst Du dann wenn es in dem data Objekt vorhanden ist, parallel einfach extrahieren.
  • Tibber Status abfrage von node ps-strategy-lowest-price

    6
    1
    0 Stimmen
    6 Beiträge
    613 Aufrufe
    I
    @mickym SUPER DANKE es klappt!
  • Datum und Zeitverarbeitung mit NodeRed

    node-red
    33
    6 Stimmen
    33 Beiträge
    35k Aufrufe
    B
    @mickym Perfekt... Ich habe das erste gerade mit einer zusätzlichen Funktion probiert... funktioniert einwandfrei... Wieder einmal ein groooooßes DANKESCHÖN... Ich muss mich wohl doch mal intensiver damit beschäftigen...
  • JSON String in Template Node richtig darstellen

    7
    0 Stimmen
    7 Beiträge
    837 Aufrufe
    _
    @mickym Stimmt, bei Steve steht im Grunde genau so die Lösung: [image: 1699729078429-5b70db34-57a4-4004-8f1a-1ac02edfa21d-image.png] Werde ich berücksichtigen beim nächsten mal. Vielen Dank
  • Vergleich 2 Werte wenn ungleich 1 Wert ausgeben

    2
    0 Stimmen
    2 Beiträge
    249 Aufrufe
    mickymM
    @geforce28 du hast 3 Möglichkeiten: 1- du holst dir beide Werte in ein Nachrichtenobjekt: 1.a. Via iobroker get nodes 1.b via join node 2. du speicherst mind. 1 Wert in einem Kontext Vergleiche führst du mit einer Switch Node durch. Spoiler [ { "id": "bf18acfbac86d91c", "type": "tab", "label": "Werte vergleichen", "disabled": false, "info": "", "env": [] }, { "id": "84f4c2bcc8f52c2b", "type": "comment", "z": "bf18acfbac86d91c", "name": "Du speicherst einen oder ggf. beide Werte in einer oder mehreren Flowvariablen.", "info": "", "x": 380, "y": 140, "wires": [] }, { "id": "cdb69797b74f2807", "type": "ioBroker in", "z": "bf18acfbac86d91c", "name": "PV Tag Prognose", "topic": "0_userdata.0.Test.prognose", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 140, "y": 240, "wires": [ [ "b50f80bf8bcbc213" ] ] }, { "id": "b88f4dd26163692b", "type": "ioBroker in", "z": "bf18acfbac86d91c", "name": "PV Today bis jetzt", "topic": "0_userdata.0.Test.aktuell", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 150, "y": 300, "wires": [ [ "ae13ce4883489a74" ] ] }, { "id": "b50f80bf8bcbc213", "type": "change", "z": "bf18acfbac86d91c", "name": "", "rules": [ { "t": "set", "p": "PV_Tag_Prognose", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 400, "y": 240, "wires": [ [] ] }, { "id": "ae13ce4883489a74", "type": "change", "z": "bf18acfbac86d91c", "name": "", "rules": [ { "t": "set", "p": "prognose", "pt": "msg", "to": "PV_Tag_Prognose", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 380, "y": 300, "wires": [ [ "88273195c80c84f2" ] ] }, { "id": "88273195c80c84f2", "type": "switch", "z": "bf18acfbac86d91c", "name": "payload > prognose", "property": "payload > prognose", "propertyType": "jsonata", "rules": [ { "t": "true" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 610, "y": 300, "wires": [ [ "70bd4a0a0a2d4787" ] ] }, { "id": "2c68eba46d5dbeef", "type": "debug", "z": "bf18acfbac86d91c", "name": "sende Nachricht (Beispiel Flowvariable)", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1060, "y": 300, "wires": [] }, { "id": "70bd4a0a0a2d4787", "type": "change", "z": "bf18acfbac86d91c", "name": "Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Prognose wurde überschritten", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 800, "y": 300, "wires": [ [ "2c68eba46d5dbeef" ] ] }, { "id": "85702a2c7a400d9c", "type": "comment", "z": "bf18acfbac86d91c", "name": "Du sammelst die beiden Werte in einem Nachrichtenobjekt mit einer JOIN Node.", "info": "", "x": 380, "y": 440, "wires": [] }, { "id": "da0c33ab90da3dad", "type": "ioBroker in", "z": "bf18acfbac86d91c", "name": "PV Tag Prognose", "topic": "0_userdata.0.Test.prognose", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 140, "y": 520, "wires": [ [ "0fa1b7591f0b4d26" ] ] }, { "id": "89ef3782b3d5fbd7", "type": "ioBroker in", "z": "bf18acfbac86d91c", "name": "PV Today bis jetzt", "topic": "0_userdata.0.Test.aktuell", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 150, "y": 600, "wires": [ [ "b2b601430ac7e80d" ] ] }, { "id": "0fa1b7591f0b4d26", "type": "change", "z": "bf18acfbac86d91c", "name": "topic = prognose", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "prognose", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 390, "y": 520, "wires": [ [ "1c38bf5becbffb8a" ] ] }, { "id": "b2b601430ac7e80d", "type": "change", "z": "bf18acfbac86d91c", "name": "topic = aktuell", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "aktuell", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 400, "y": 600, "wires": [ [ "1c38bf5becbffb8a" ] ] }, { "id": "1c38bf5becbffb8a", "type": "join", "z": "bf18acfbac86d91c", "name": "", "mode": "custom", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "accumulate": true, "timeout": "", "count": "2", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 590, "y": 560, "wires": [ [ "50445639c6bb29cc" ] ] }, { "id": "50445639c6bb29cc", "type": "switch", "z": "bf18acfbac86d91c", "name": "payload > prognose", "property": "payload.aktuell > payload.prognose", "propertyType": "jsonata", "rules": [ { "t": "true" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 770, "y": 560, "wires": [ [ "8d562efab2cfff9a" ] ] }, { "id": "42643fa00df8601f", "type": "debug", "z": "bf18acfbac86d91c", "name": "sende Nachricht (Beispiel JOIN)", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1190, "y": 560, "wires": [] }, { "id": "8d562efab2cfff9a", "type": "change", "z": "bf18acfbac86d91c", "name": "Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Prognose wurde überschritten", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 960, "y": 560, "wires": [ [ "42643fa00df8601f" ] ] }, { "id": "179914fd1a8968f2", "type": "comment", "z": "bf18acfbac86d91c", "name": "Wenn ein Wert getriggert ist und zum Beispiel im iobroker ein anderer ausgelesen werden soll, dann kann man das quasi Huckepack auslesen.", "info": "", "x": 570, "y": 700, "wires": [] }, { "id": "b94fd1601ba3f40c", "type": "ioBroker in", "z": "bf18acfbac86d91c", "name": "PV Today bis jetzt", "topic": "0_userdata.0.Test.aktuell", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 170, "y": 800, "wires": [ [ "cc98ccdd4d05a363" ] ] }, { "id": "cc98ccdd4d05a363", "type": "ioBroker get", "z": "bf18acfbac86d91c", "name": "PV Tag Prognose", "topic": "0_userdata.0.Test.prognose", "attrname": "prognose", "payloadType": "value", "errOnInvalidState": "nothing", "x": 390, "y": 800, "wires": [ [ "242ef6373f0959c3" ] ] }, { "id": "242ef6373f0959c3", "type": "switch", "z": "bf18acfbac86d91c", "name": "payload > prognose", "property": "payload > prognose", "propertyType": "jsonata", "rules": [ { "t": "true" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 610, "y": 800, "wires": [ [ "7124503b946b2a85" ] ] }, { "id": "78445ce181de5648", "type": "debug", "z": "bf18acfbac86d91c", "name": "sende Nachricht (Huckepack)", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1030, "y": 800, "wires": [] }, { "id": "7124503b946b2a85", "type": "change", "z": "bf18acfbac86d91c", "name": "Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Prognose wurde überschritten", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 800, "y": 800, "wires": [ [ "78445ce181de5648" ] ] } ] [image: 1699616319624-4d2e533f-08ef-464e-86dd-4128081b8fb6-image-resized.png]
  • [Lösung] Adapter HeatingControl - NodeRed Dashboard

    5
    1
    1 Stimmen
    5 Beiträge
    834 Aufrufe
    mickymM
    So weiter im Kontext - wie man sieht werden die Wochenprofile durch FHEM gesteuert und via mqtt in den iobroker übertragen. [image: 1699572022212-15131057-d725-4d6e-93e1-c228319e5ed5-image-resized.png] Diese Daten werden im NodeRed Flow eingelesen - damit man den Flow nachvollziehen kann - habe ich diese Datenpunkte in eine Injekt-Node verfrachtet. Und alle Nodes deaktiviert, die nicht funktionieren - weil die Datenpunkte nicht vorhanden sind. Die Demo Node wird automatisch ausgeführt. [image: 1699573986774-021680d5-a1e9-4319-9f6e-fe7926bd1bdc-image-resized.png] im Demo-Mode ist die erste Gruppe nicht mit allen Elementen zu sehen. So sieht es vollständig aus: [image: 1699574146764-4d8d836a-f8af-4b4d-a9c8-ddbfb9efe792-image-resized.png] Von links nach rechts. [image: 1699575905920-f1242a45-effb-442c-b443-127cd3813250-image.png] Im 1. Gruppe wählt man ggf. ein Datei zum Upload aus. (Neben der Inject- Node als Test). Hier habe ich mal 3 Dateien als Beispiel hier - das ist wie gesagt FHEM Syntax für den MAX Cube. MAX_Wohnzimmer_weekProfile.txt MAX_Buero_weekProfile.txt MAX_Bad_weekProfile.txt Sind keine Daten für den entsprechenden Wochentag vorhanden, dann werden die anderen Gruppen ausgeblendet. In der 2. Gruppe kann das selektierte Tagesprofil editiert werden. [image: 1699575944325-58c2f17d-d85b-45a4-a893-054954f78144-image.png] Es sind soweit mir möglich war alle Möglichkeiten durchgetest. In der Regel sind die Perioden automatisch nach der Tageszeit sortiert. Eine Periode ist zwingend bei 0:00 Uhr erforderlich. Wenn sich eine Periode mit gleicher Temperatur anschließt wird diese gelöscht bzw. die Eingabe wird nicht akzeptiert. Unten kann man dann Perioden löschen oder neue hinzufügen. Sobald ein Tagesplan zufriedenstellend editiert wurde kann man den in der 3. Gruppe für verschiedene Tage erstellen lassen. [image: 1699576209969-8656ff30-1961-4758-b08d-90b3a1c9b050-image.png] Das ganze muss man sich halt im Debug Fenster ausgeben lassen. Der Download/Export geht nur, wenn man ggf. den Ort wohin der Export geschrieben wird - also relativ zum http-Static Pfad. Hier das Ganze zum Testen, wer Lust hat. Demo Automatik Heizpläne.json
  • Dashboard - Momentane Position von Element

    3
    0 Stimmen
    3 Beiträge
    390 Aufrufe
    T
    @mickym OK, schade. Eben da es responsiv ist (was ich ja haben möchte), dacht ich, dass es eine Mögloichkeit gibt, das Popup an der Stelle des Buttons oder der Maus anzuzeigen anstatt an einer fixen Position (Button ist responsiv, Popup aber immer an einer bestimmten X/Y Position (und damit vielleicht sogar außerhalb des Bildschirms). Vielleicht gibt es einen Knoten, der mir die Möglichkeit gibt (habe zumindest so etwas mit Klick auf Vektor Grafiken bereits gesehen).
  • [gelöst] Lampe nur einschalten wenn...

    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    mickymM
    @matt77che Na ich hoffe Du bist positiv überzeugt. ;) - Ich verstehe ja auch nicht, warum gerade Anfänger immer alle zum Puzzeln überredet werden.
  • Node Advanced Ping

    22
    0 Stimmen
    22 Beiträge
    2k Aufrufe
    hotspot_2H
    @thomas-braun Ok. Passt für mich. Vielen Dank für die Hilfe!
  • (gelöst) node red mysql werte addieren

    2
    1
    0 Stimmen
    2 Beiträge
    243 Aufrufe
    druckstick.atD
    mir wurde wo anders die Lösung gezeigt... hier die nodes: [ { "id": "e6a27dd296678be6", "type": "tab", "label": "Flow 1", "disabled": false, "info": "", "env": [] }, { "id": "d6c1203fb44c3759", "type": "inject", "z": "e6a27dd296678be6", "name": "Abfrage Spalte User", "props": [ { "p": "payload.user", "v": "user1", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 130, "y": 40, "wires": [ [ "81a8cf372d40c91e" ] ] }, { "id": "81a8cf372d40c91e", "type": "function", "z": "e6a27dd296678be6", "name": "abfragen bestimter User", "func": "msg.topic = \"SELECT * FROM Testtabelle WHERE Spalte1 = '\" + msg.payload.user + \"'; \"\nreturn msg;\n\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 370, "y": 40, "wires": [ [ "a04426f825a7bb9a" ] ] }, { "id": "84d8dc35e5843902", "type": "split", "z": "e6a27dd296678be6", "name": "Array in einzelne Nachrichten", "splt": ",", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 880, "y": 40, "wires": [ [ "21f5008ae1bd8072" ] ] }, { "id": "21f5008ae1bd8072", "type": "change", "z": "e6a27dd296678be6", "name": "Daten auf payload", "rules": [ { "t": "move", "p": "payload.Spalte2", "pt": "msg", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 150, "y": 140, "wires": [ [ "3f428eaec9a2c230" ] ] }, { "id": "3f428eaec9a2c230", "type": "join", "z": "e6a27dd296678be6", "name": "Daten zurück in Array", "mode": "custom", "build": "array", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": ",", "joinerType": "str", "accumulate": false, "timeout": "2", "count": "", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 420, "y": 140, "wires": [ [ "b2fb82ad2edb5201" ] ] }, { "id": "a04426f825a7bb9a", "type": "mysql", "z": "e6a27dd296678be6", "mydb": "410735f8711c0cb6", "name": "Datenbanknerküpfung", "x": 620, "y": 40, "wires": [ [ "84d8dc35e5843902" ] ] }, { "id": "b2fb82ad2edb5201", "type": "calculator", "z": "e6a27dd296678be6", "name": "Summe berechnen", "inputMsgField": "payload", "outputMsgField": "payload", "operation": "sum", "constant": "", "round": false, "truncate": false, "decimals": 0, "decimals2": 0, "x": 630, "y": 140, "wires": [ [ "fe5ea3b2656a760a" ] ] }, { "id": "fe5ea3b2656a760a", "type": "debug", "z": "e6a27dd296678be6", "name": "debug", "active": true, "tosidebar": true, "console": false, "tostatus": true, "complete": "true", "targetType": "full", "statusVal": "payload", "statusType": "auto", "x": 790, "y": 140, "wires": [] }, { "id": "4108711c0cb6", "type": "MySQLdatabase", "name": "", "host": "xxxxxx", "port": "3306", "db": "xxxxx", "tz": "", "charset": "UTF8" } ]
  • tcp-request-node für UPnP-Client-Implementierung?

    9
    0 Stimmen
    9 Beiträge
    967 Aufrufe
    mickymM
    @goesebrecht sagte in tcp-request-node für UPnP-Client-Implementierung?: @mickym Danke, das funktioniert. Trotzdem schade, dass es nicht über die tcp-nodes funktioniert. ... Du bist doch der Anti-function-nodes-Verfechter ... ;-) Das bin ich auch - und ich kenn mich zuwenig in diesen Netzwerkdingen aus, aber um externe Module nutzen zu können oder auch asynchrone Verarbeitung oder wenn es keine passenden Nodes gibt, dann sind doch function Nodes gut. Ich finde function nodes nur überflüssig, wenn man payloads verändern will etc. - Auch haben function Nodes den Vorteil von eigenem Kontext. Also ich bin nicht grundsätzlich dagegen - aber function nodes sind trotzdem ein mächtiges Mittel, wenn man mit den verfügbaren Nodes nicht auskommt. Wahrscheinlich müsste man sich nur mal den Quellcode der Bibliothek anschauen, um zu sehen, wie der Handshake aussehen muss.
  • [gelöst] msg.payload die ersten zwei Zeichen löschen

    3
    0 Stimmen
    3 Beiträge
    399 Aufrufe
    druckstick.atD
    @mickym Danke! ich hatte die verd.... Klammer vergessen Die ersten zwei Varianten kannte ich noch nicht, warum einfach wenn es umständlich geht
  • Min / Max Wert der letzten 24h

    blockly monitoring
    11
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    Ralf LangeR
    @mickym Okay, ich bin offiziell ein Idiot...
  • variabler Variablenzugriff For-Schleife

    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    _
    @oliverio Japp, soweit habe ich es verstanden. Auch dir vielen lieben Dank für die ausführliche Erklärung :)
  • Werte aus einem Schedule ausgeben

    5
    0 Stimmen
    5 Beiträge
    720 Aufrufe
    mickymM
    Ändere die Abfrage wie folgt: payload.schedule[time ~> $contains(($moment().add(1, 'd').format("YYYY-MM-DD")))][value] Dann kommen zu dem Tag alle Objekte deren Wert true ist.
  • Dashboard add some UI Nodes

    5
    0 Stimmen
    5 Beiträge
    478 Aufrufe
    mickymM
    @bf0911 na ein Indiz war die fehlenden Statusmeldungen unter Deinen Nodes und natürlich das sich sonst nichts tut. Dashboard etc. wie gesagt auch in den Adaptereinstellungen muss der Sicherheitsmodus deaktiviert / abgehakt sein.
  • Ausgabe Node-Red an Datenpunkt

    8
    1
    0 Stimmen
    8 Beiträge
    743 Aufrufe
    mickymM
    @homoran

486

Online

33.0k

Benutzer

83.3k

Themen

1.3m

Beiträge