Skip to content

Node-Red

Hilfe für Skripterstellung mit Node-RED

953 Themen 13.1k Beiträge

NEWS

  • Telegram als Adapter und Nodered

    33
    0 Stimmen
    33 Beiträge
    4k Aufrufe
    mickymM
    @basti17683 Das kann ich Dir leider nicht sagen, da ich den Adapter nicht kenne. Ich denke, da muss jemand helfen, der den Adapter richtig kennt. Die neue send Node - sendet (wenn Du in command nichts einträgst) einfach mit send Dein Objekt. Mit welchen Eigenschaften Dein Objekt bestückt sein muss, dass musst Du in dem Adapter lesen. https://github.com/iobroker-community-adapters/ioBroker.telegram/blob/master/docs/en/README.md [image: 1741079461225-5db39a9c-bd1c-4f7b-b9a3-1758a288177f-image-resized.png] Vielleicht musst in der payload als Objekt noch die caption eintragen oder irgendwie die methoden mitgeben. Generell musst Du die parameter als JSON Objekt in der payload mitgeben. Wie Du die Methoden nutzt, die in der API als JSON nutzt ist mir auch nicht klar. Aber wenn Du das weißt, dann sollte es ja kein Problem sein, dass Objekt als payload zu definieren.
  • Garagentor überwachen

    5
    0 Stimmen
    5 Beiträge
    378 Aufrufe
    hotspot_2H
    @mickym Vielen Dank! Läuft perfekt.
  • NodeRed (iob Adapter) kann keine Telegram nachrichten senden

    7
    2
    1 Stimmen
    7 Beiträge
    957 Aufrufe
    Basti17683B
    @markus-2 Ich hänge mich mal hier mit dran. Eure bisherigen Fragen und Antworten haben mir geholfen den Telegram Adapter im Node Red in Betrieb nehmen zu können. Hat einer von euch schon versucht ein Bild per Telegram zu versenden? Mit der von euch hier erwähnten Change Node schickt ihr ja nur Text. Was ist wenn ich hier ein File aus einem Verzeichnis senden möchte? In der Doku habe ich nachgeshen, da steht es ja ziemlich weit oben - aber das sieht nicht so Node Red komform aus?! Ich weiß hier nicht wo, und vor allem was von dem ganzen ich hier eintragen soll [image: 1740679246746-0653fbca-aae0-4a97-a4e0-bd6c7b7765ec-grafik.png]
  • PAJ GPS mit Node-Red abfragen

    153
    0 Stimmen
    153 Beiträge
    22k Aufrufe
    A
    @mickym Vielen Dank für den Einstieg in Node Red das hat mir viel gebracht. Denke das ich jetzt weiter komme.
  • Gerät alle x sek auf true prüfen

    3
    0 Stimmen
    3 Beiträge
    299 Aufrufe
    AphofisA
    @meister-mopper Hab das jetzt so versucht und es scheint zu klappen. Spoiler [ { "id": "c90b897289b24941", "type": "tab", "label": "Aqua Lüfter intern", "disabled": false, "info": "", "env": [] }, { "id": "ae78a11f0d035ca9", "type": "change", "z": "c90b897289b24941", "name": "true -> false", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 180, "wires": [ [ "5d9622c7cf76eb5c" ] ] }, { "id": "daf0170004c7403a", "type": "trigger", "z": "c90b897289b24941", "name": "Trigger nach 60s stabli false", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "60", "extend": false, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 2, "x": 620, "y": 180, "wires": [ [], [ "ae78a11f0d035ca9", "fd2c3d2227822c50" ] ] }, { "id": "1dfe78af856ed0c8", "type": "trigger", "z": "c90b897289b24941", "name": "Triggger nach 60s stabil true", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "60", "extend": false, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 2, "x": 620, "y": 120, "wires": [ [], [ "b845de14fa232863" ] ] }, { "id": "011752fcf235af6d", "type": "function", "z": "c90b897289b24941", "name": "true->Start-false->Reset Trigger", "func": "let news = msg.payload;\n\nif(news == true){\n msg.payload = true;\n return msg;\n}\nif(news == false){\n msg.reset = true;\n return msg;\n}\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 350, "y": 120, "wires": [ [ "1dfe78af856ed0c8" ] ] }, { "id": "2236fa43047ef683", "type": "function", "z": "c90b897289b24941", "name": "false->Start-true->Reset Trigger", "func": "let news = msg.payload;\n\nif(news == false){\n msg.payload = true;\n return msg;\n}\nif(news == true){\n msg.reset = true;\n return msg;\n}\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 350, "y": 180, "wires": [ [ "daf0170004c7403a" ] ] }, { "id": "5d9622c7cf76eb5c", "type": "debug", "z": "c90b897289b24941", "name": "Lüfter Aus", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1130, "y": 180, "wires": [] }, { "id": "60ce3f5db3490b3d", "type": "ioBroker in", "z": "c90b897289b24941", "name": "Lüfter intern", "attrname": "payload", "topic": "sonoff.0.Aqua_Control.POWER4", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 110, "y": 160, "wires": [ [ "011752fcf235af6d", "2236fa43047ef683" ] ] }, { "id": "b845de14fa232863", "type": "ioBroker out", "z": "c90b897289b24941", "name": "Lüfter intern", "topic": "sonoff.0.Aqua_Control.POWER4", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 850, "y": 120, "wires": [] }, { "id": "3f1ff1fd7514e84d", "type": "debug", "z": "c90b897289b24941", "name": "Lüfter An", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1120, "y": 300, "wires": [] }, { "id": "08af6af0c034de6a", "type": "change", "z": "c90b897289b24941", "name": "set true", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 960, "y": 240, "wires": [ [ "8a92ec1e5d1588a5", "3f1ff1fd7514e84d" ] ] }, { "id": "8a92ec1e5d1588a5", "type": "ioBroker out", "z": "c90b897289b24941", "name": "Lüfter intern", "topic": "sonoff.0.Aqua_Control.POWER4", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1130, "y": 240, "wires": [] }, { "id": "fd2c3d2227822c50", "type": "trigger", "z": "c90b897289b24941", "name": "wait", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "5", "extend": false, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 830, "y": 240, "wires": [ [ "08af6af0c034de6a" ] ] } ] [image: 1740578334944-screenshot-2025-02-26-145806.png] Ich habe eine Aquarium Steuerung mal selbst gebaut aus Acryl mit einem Lüfter im Gehäuse und durch die ganze ESPs, Stepdown, Netzteile etc wird es etwas warm in dem Acryl Kasten. Damals war noch ein Raspi Pi in dem Gehäuse mit eingebaut da hatte ich die Steuerung über die RPI Temp gesteuert also wenn CPU zu warm wird trotz der eigenen beiden kleinen Lüfter soll Gehäuse Lüfter mit anspringen bei Temp X und bei Temp Y wieder aus gehen. Nun soll der Lüfter einfach laufen. Hab noch einen DHT11 intern verbaut, müsste den mal im Tasmota wieder aktivieren, dann könnte ich das auch darüber laufen lassen. Hatte nur damals die Steuerung unter über 170 Steuerungen ausversehen gelöscht also neu basteln. Bis auf den Pi mit Zusatzplatine sind nur noch 1 ESP und ein Distanz Sensor dazu gekommen. [image: 1740578923339-photo_2025-02-26_15-06-10.jpg] Auch getestet, nach einem ESP Reboot und 60 sek + 5 sek wird der Lüfter wieder eingeschaltet. Das ganze muss dann auch noch für die Filterpumpe gebastelt werden. Doch da muss noch mehr rein. Die Fische werden 2 mal am Tag per Futterautomat über 2 Blocklys gefüttert und da geht die Pumpe aus und muss auch aus bleiben für 10 min in der Zeit darf natürlich die Pumpe nicht wieder anspringen. die blocklys hatte paul53 mal für mich erstellt aber die sind so koplex die schaffe ich nicht um zu hechseln in node-red um diese dann da weiter zu bauen. Für manch einen hier, mag es Super einfach sein aber ich bin da nicht so der crack! Eigentlich ist die Steuerung ja einfach die guckt einfach in die Datenpunkte Fütterungszeit davon gibt es 6 wovon 2 aktiv sind dann gibt es 3 faktoren datenpunkte mit 1 - 2 - 3 für 1 x füttern 2 mal füttern usw wo dann 1 mal füttern zB 300 ms sind und 2 mal dann dementsprechend 600 ms da ist dann immer eine bestimmte Menge Futter. dazu wird dann die Pumpe per mqtt Tasmota Relai abgeschaltet und nach x min wieder eingeschaltet.
  • Node-Red Node warte x bis rechnung

    22
    0 Stimmen
    22 Beiträge
    2k Aufrufe
    AphofisA
    Habe es jetzt so umgebaut und es scheint zu laufen. Ob es so aber korrekt ist weiß ich nicht. Spoiler [ { "id": "e96d40e5c03c8e73", "type": "tab", "label": "Wasser Aquarium", "disabled": false, "info": "", "env": [] }, { "id": "a33e443616fc222a", "type": "junction", "z": "e96d40e5c03c8e73", "x": 490, "y": 640, "wires": [ [ "60d53c22716069e9", "d068ec15abcaade1" ] ] }, { "id": "386107c00f1d7619", "type": "junction", "z": "e96d40e5c03c8e73", "x": 490, "y": 760, "wires": [ [ "8ef2203079f36296", "29b1c7a13367c06a" ] ] }, { "id": "eaa54aa4d4524f13", "type": "ioBroker get", "z": "e96d40e5c03c8e73", "name": "jahr", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr", "attrname": "jahr", "payloadType": "value", "errOnInvalidState": "nothing", "x": 570, "y": 520, "wires": [ [ "4d1b142f05cab694" ] ] }, { "id": "4d1b142f05cab694", "type": "ioBroker get", "z": "e96d40e5c03c8e73", "name": "gesamt", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasser_Gesamt", "attrname": "gesamt", "payloadType": "value", "errOnInvalidState": "nothing", "x": 700, "y": 520, "wires": [ [ "5fd63c6641e9671f" ] ] }, { "id": "ab094d747fb4d4a2", "type": "debug", "z": "e96d40e5c03c8e73", "name": "Ausgabe Rechnung", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1230, "y": 700, "wires": [] }, { "id": "54048569a59a81bb", "type": "change", "z": "e96d40e5c03c8e73", "name": "rechnung", "rules": [ { "t": "set", "p": "durchfluss", "pt": "msg", "to": "$round(durchfluss / 2.207,2)", "tot": "jsonata" }, { "t": "set", "p": "jahr", "pt": "msg", "to": "$round(durchfluss / 1000 + jahr,2)", "tot": "jsonata" }, { "t": "set", "p": "gesamt", "pt": "msg", "to": "$round(durchfluss / 1000 + gesamt,2)", "tot": "jsonata" }, { "t": "set", "p": "tag", "pt": "msg", "to": "$round(durchfluss + tag,2)", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 960, "y": 520, "wires": [ [ "c0b45921777999b9", "39aa9bd9d6bd2aba", "1ff4be2b8a9ab574", "0299ee6b90129254", "5aeb77b14518a6cc" ] ] }, { "id": "9ee03dcc9a9f622a", "type": "ioBroker get", "z": "e96d40e5c03c8e73", "name": "count", "topic": "sonoff.0.Aqua_Float.SENSOR.COUNTER.C1", "attrname": "durchfluss", "payloadType": "value", "errOnInvalidState": "nothing", "x": 330, "y": 520, "wires": [ [ "229c64f2f419668b" ] ] }, { "id": "b24e06dbb8e9ac50", "type": "ioBroker out", "z": "e96d40e5c03c8e73", "name": "durchfl.", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasser_Counter", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1350, "y": 580, "wires": [], "icon": "node-red-contrib-calc/calculator.png" }, { "id": "c6281d6865cd92d2", "type": "ioBroker out", "z": "e96d40e5c03c8e73", "name": "tag", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1340, "y": 460, "wires": [], "icon": "node-red-contrib-calc/calculator.png" }, { "id": "afcca7e9867b3ebb", "type": "ioBroker out", "z": "e96d40e5c03c8e73", "name": "jahr", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1340, "y": 520, "wires": [], "icon": "node-red-contrib-calc/calculator.png" }, { "id": "be2423fc891d456a", "type": "ioBroker out", "z": "e96d40e5c03c8e73", "name": "gesamt", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasser_Gesamt", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1350, "y": 640, "wires": [], "icon": "node-red-contrib-calc/calculator.png" }, { "id": "229c64f2f419668b", "type": "ioBroker get", "z": "e96d40e5c03c8e73", "name": "tag", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag", "attrname": "tag", "payloadType": "value", "errOnInvalidState": "nothing", "x": 450, "y": 520, "wires": [ [ "eaa54aa4d4524f13" ] ] }, { "id": "39aa9bd9d6bd2aba", "type": "change", "z": "e96d40e5c03c8e73", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "durchfluss", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1170, "y": 580, "wires": [ [ "b24e06dbb8e9ac50" ] ] }, { "id": "1ff4be2b8a9ab574", "type": "change", "z": "e96d40e5c03c8e73", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "tag", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1150, "y": 460, "wires": [ [ "c6281d6865cd92d2" ] ] }, { "id": "0299ee6b90129254", "type": "change", "z": "e96d40e5c03c8e73", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "jahr", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1150, "y": 520, "wires": [ [ "afcca7e9867b3ebb" ] ] }, { "id": "c0b45921777999b9", "type": "change", "z": "e96d40e5c03c8e73", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "gesamt", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1150, "y": 640, "wires": [ [ "be2423fc891d456a" ] ] }, { "id": "9e57e652668d85fa", "type": "ioBroker in", "z": "e96d40e5c03c8e73", "name": "Aquarium Schwimmer", "attrname": "payload", "topic": "sonoff.0.Aqua_Float.POWER1", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 160, "y": 220, "wires": [ [ "f1c7fb20f85acbee", "c0dfdd7212b9892f", "472ee6a39b3d21f3", "6eab2c58acf1cbd5" ] ] }, { "id": "e47c6d731c3e73c6", "type": "http request", "z": "e96d40e5c03c8e73", "name": "Senden", "method": "GET", "ret": "txt", "paytoqs": "ignore", "url": "http://192.168.0.71/cm?user=user&password=password&cmnd=counter1%200", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 980, "y": 40, "wires": [ [ "eb76397a7e0ab011" ] ] }, { "id": "a4e19115fa06a55b", "type": "change", "z": "e96d40e5c03c8e73", "name": "Aqua Counter Reset", "rules": [ { "t": "set", "p": "url", "pt": "msg", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 620, "y": 40, "wires": [ [ "6ed396444b677b10" ] ] }, { "id": "eb76397a7e0ab011", "type": "debug", "z": "e96d40e5c03c8e73", "name": "Ausgabe Reset", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1140, "y": 40, "wires": [] }, { "id": "d272c6eba743cc72", "type": "delay", "z": "e96d40e5c03c8e73", "name": "warte 80s", "pauseType": "delay", "timeout": "80", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 420, "y": 40, "wires": [ [ "a4e19115fa06a55b" ] ] }, { "id": "d068ec15abcaade1", "type": "debug", "z": "e96d40e5c03c8e73", "name": "Jahr Reset", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 590, "y": 620, "wires": [] }, { "id": "60d53c22716069e9", "type": "ioBroker out", "z": "e96d40e5c03c8e73", "name": "Jahr", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 570, "y": 660, "wires": [] }, { "id": "c414e941c9432637", "type": "change", "z": "e96d40e5c03c8e73", "name": "Jahr Reset", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 390, "y": 640, "wires": [ [ "a33e443616fc222a" ] ] }, { "id": "ddd069f4381994d0", "type": "inject", "z": "e96d40e5c03c8e73", "name": "Counter Reset Manuell", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 160, "y": 40, "wires": [ [ "d272c6eba743cc72" ] ] }, { "id": "5fd63c6641e9671f", "type": "delay", "z": "e96d40e5c03c8e73", "name": "5sek", "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": 830, "y": 520, "wires": [ [ "54048569a59a81bb" ] ] }, { "id": "6ed396444b677b10", "type": "delay", "z": "e96d40e5c03c8e73", "name": "warte 5s", "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": 800, "y": 40, "wires": [ [ "e47c6d731c3e73c6" ] ] }, { "id": "f4fba734f82a61ca", "type": "cronplus", "z": "e96d40e5c03c8e73", "name": "Aqua Jahr Reset", "outputField": "payload", "timeZone": "", "storeName": "", "commandResponseMsgOutput": "output1", "defaultLocation": "", "defaultLocationType": "default", "outputs": 1, "options": [ { "name": "Zeitplan", "topic": "Counter Aqua Reset", "payloadType": "default", "payload": "", "expressionType": "cron", "expression": "0 0 0 31 12 ? *", "location": "", "offset": "0", "solarType": "all", "solarEvents": "sunrise,sunset" } ], "x": 190, "y": 640, "wires": [ [ "c414e941c9432637" ] ] }, { "id": "53715765e5ba3798", "type": "debug", "z": "e96d40e5c03c8e73", "d": true, "name": "Counter lesen", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1140, "y": 260, "wires": [] }, { "id": "49a24c8dbf3069a7", "type": "delay", "z": "e96d40e5c03c8e73", "name": "warte 1s", "pauseType": "delay", "timeout": "1", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 940, "y": 260, "wires": [ [ "53715765e5ba3798", "bda78f206532ead4" ] ] }, { "id": "bda78f206532ead4", "type": "link out", "z": "e96d40e5c03c8e73", "name": "link out 2", "mode": "link", "links": [ "7303186ce79854c1" ], "x": 1075, "y": 300, "wires": [] }, { "id": "7303186ce79854c1", "type": "link in", "z": "e96d40e5c03c8e73", "name": "link in 2", "links": [ "bda78f206532ead4" ], "x": 55, "y": 520, "wires": [ [ "8d378ef8d839f969" ] ] }, { "id": "7c892b7636e3d9d8", "type": "ioBroker out", "z": "e96d40e5c03c8e73", "name": "durchfl.", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasser_Counter", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 760, "y": 280, "wires": [] }, { "id": "f1c7fb20f85acbee", "type": "delay", "z": "e96d40e5c03c8e73", "name": "warte 4s", "pauseType": "delay", "timeout": "4", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 460, "y": 280, "wires": [ [ "3879868e12e9ddb2" ] ] }, { "id": "3879868e12e9ddb2", "type": "change", "z": "e96d40e5c03c8e73", "name": "durchfl.Reset", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 610, "y": 280, "wires": [ [ "7c892b7636e3d9d8" ] ] }, { "id": "29b1c7a13367c06a", "type": "debug", "z": "e96d40e5c03c8e73", "name": "Tag Reset", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 580, "y": 740, "wires": [] }, { "id": "8ef2203079f36296", "type": "ioBroker out", "z": "e96d40e5c03c8e73", "name": "tag", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 570, "y": 780, "wires": [] }, { "id": "fcf7480806fc8018", "type": "change", "z": "e96d40e5c03c8e73", "name": "Tag Reset", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 380, "y": 760, "wires": [ [ "386107c00f1d7619" ] ] }, { "id": "d5126388d3b02e0c", "type": "cronplus", "z": "e96d40e5c03c8e73", "name": "Aqua Tag Reset", "outputField": "payload", "timeZone": "", "storeName": "", "commandResponseMsgOutput": "output1", "defaultLocation": "", "defaultLocationType": "default", "outputs": 1, "options": [ { "name": "Zeitplan", "topic": "Counter Aqua Reset", "payloadType": "default", "payload": "", "expressionType": "cron", "expression": "0 0 0 * * ? *", "location": "", "offset": "0", "solarType": "all", "solarEvents": "sunrise,sunset" } ], "x": 180, "y": 760, "wires": [ [ "fcf7480806fc8018" ] ] }, { "id": "c0dfdd7212b9892f", "type": "debug", "z": "e96d40e5c03c8e73", "d": true, "name": "Aquarium Schwimmer", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 480, "y": 340, "wires": [] }, { "id": "6eab2c58acf1cbd5", "type": "function", "z": "e96d40e5c03c8e73", "name": "true->Start-false->Reset Trigger", "func": "let news = msg.payload;\n\nif(news == true){\n msg.payload = true;\n return msg;\n}\nif(news == false){\n msg.reset = true;\n return msg;\n}\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 510, "y": 160, "wires": [ [ "bef576295b23f014" ] ] }, { "id": "a93e73afeac53427", "type": "debug", "z": "e96d40e5c03c8e73", "d": true, "name": "Magnetschalter ein", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1150, "y": 120, "wires": [] }, { "id": "b221e87bcb4925b3", "type": "ioBroker out", "z": "e96d40e5c03c8e73", "name": "Magnetventil", "topic": "sonoff.0.GordonX-Home-Kaffeemaschine.POWER2", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1130, "y": 160, "wires": [] }, { "id": "ad3b00386df37a23", "type": "change", "z": "e96d40e5c03c8e73", "name": "true -> false", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 950, "y": 200, "wires": [ [ "b221e87bcb4925b3", "e3a33291c8476a30" ] ] }, { "id": "e3a33291c8476a30", "type": "debug", "z": "e96d40e5c03c8e73", "d": true, "name": "Magnetschalter aus", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1150, "y": 220, "wires": [] }, { "id": "472ee6a39b3d21f3", "type": "function", "z": "e96d40e5c03c8e73", "name": "false->Start-true->Reset Trigger", "func": "let news = msg.payload;\n\nif(news == false){\n msg.payload = true;\n return msg;\n}\nif(news == true){\n msg.reset = true;\n return msg;\n}\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 510, "y": 220, "wires": [ [ "c581b3043d9c3910" ] ] }, { "id": "c581b3043d9c3910", "type": "trigger", "z": "e96d40e5c03c8e73", "name": "30s stabli false", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "30", "extend": false, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 2, "x": 760, "y": 220, "wires": [ [], [ "ad3b00386df37a23", "49a24c8dbf3069a7" ] ] }, { "id": "bef576295b23f014", "type": "trigger", "z": "e96d40e5c03c8e73", "name": "30s stabil true", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "30", "extend": false, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 2, "x": 760, "y": 160, "wires": [ [], [ "b221e87bcb4925b3", "a93e73afeac53427" ] ] }, { "id": "8d378ef8d839f969", "type": "delay", "z": "e96d40e5c03c8e73", "name": "60s", "pauseType": "delay", "timeout": "60", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 150, "y": 520, "wires": [ [ "9ee03dcc9a9f622a", "10b55f76c82d1d6f" ] ] }, { "id": "5aeb77b14518a6cc", "type": "delay", "z": "e96d40e5c03c8e73", "name": "stündlich", "pauseType": "delay", "timeout": "1", "timeoutUnits": "hours", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 1060, "y": 700, "wires": [ [ "ab094d747fb4d4a2" ] ] }, { "id": "10b55f76c82d1d6f", "type": "link out", "z": "e96d40e5c03c8e73", "name": "Counter Reset", "mode": "link", "links": [ "108573280c14d7d9" ], "x": 245, "y": 480, "wires": [], "icon": "node-red/serial.svg" }, { "id": "108573280c14d7d9", "type": "link in", "z": "e96d40e5c03c8e73", "name": "", "links": [ "10b55f76c82d1d6f" ], "x": 315, "y": 40, "wires": [ [ "d272c6eba743cc72" ] ], "icon": "node-red/serial.svg" } ] [image: 1740573242271-screenshot-2025-02-26-133244.png]
  • Node-Red InFlux Query JSON Hilfe erbeten

    8
    0 Stimmen
    8 Beiträge
    621 Aufrufe
    icebearI
    @mickym Erst einmal Danke für deine Hilfe. Soweit funktioniert das auch, allerdings bekomme ich die folgende Fehlermeldung: State value to set for "0_userdata.0.Eigene_Variablen.WP.Energie.Database.GesamtYear" has to be stringified but received type "object" und beim aktualisieren macht er immer die [] weg. Es sollte allerdings so wie ich oben gepostet hatte gespeichert werden. (Also im DP als "role": "state", "type": "json", ) [ 537.34, 394.76 ] ist bestimmt nur eine Kleinigkeit.strikethrough text Hat sich erledigt, ich habs hinbekommen, funktioniert jetzt wie gewünscht. Ich hab einfach noch ein json-node dazwischen gepackt. (Ich denke das war richtig so), auf jedenfall meckert das log nicht mehr und der Wert steht auch so im DP wie gewünscht. Also nochmal vielen Dank
  • Worldmap mit GeoJSON-Track

    4
    0 Stimmen
    4 Beiträge
    280 Aufrufe
    mickymM
    @ioste sagte in Worldmap mit GeoJSON-Track: @mickym danke! So reicht mir das auch und funktioniert! …. Jetzt nur noch rausfinden wie die Map auch in der vis angezeigt wird. Funktioniert im normalen Browser, aber auf dem alten iPad2 mini mit iobroker app zeigt er nichts an. ja da kann ich leider nicht helfen. ich hatte die world-map mal in einem iframe in vis eingebunden, aber ich fürchte, dass dir hier Safari ein Strich durch die Rechnung macht.
  • Hat jemand eine Idee ...

    4
    1
    0 Stimmen
    4 Beiträge
    402 Aufrufe
    mickymM
    Du kannst einfach eine delay Node dazwischenschalten und die Nachrichtenrate begrenzen und die Zwischenbachrichten wegschmeißen
  • Node-Red Anmelden

    2
    2
    0 Stimmen
    2 Beiträge
    236 Aufrufe
    geschildG
    @pinheiro Im Nodered-Tab Allgemein, gibt es unten links die Zusatzfunktionen, darin kann man den den Sicherheitsmodus aktivieren. Hat mir mal geholfen. [image: 1739804977850-95177c3d-e5f0-4c8d-b7a9-44522d3ebc06-image.png]
  • Namensliste in Nodered

    Verschoben ccu nodered alias
    22
    2
    0 Stimmen
    22 Beiträge
    2k Aufrufe
    M
    @mollib [image: 1739778286533-bildschirmfoto-2025-02-17-um-08.40.31.png] Dieser Haken war nicht gesetzt, wäre er das gewesen wäre meine Frage nicht aufgetaucht. Somit gab es nur die Echogeräte und gar keine Rubrik für die anderen.
  • Virtuelles Gerät auf true prüfen

    17
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    AphofisA
    @mickemup ich teste das morgen und danke dir für deine Mühe.
  • Gelöst: Wert in dynamische Struktur im ioBroker ablegen

    91
    2
    0 Stimmen
    91 Beiträge
    10k Aufrufe
    M
    @mickym Genau. Und vielen Dank.
  • Philips Hue Switch -- Shelly Actor, Tuya,Sonoff,Hue

    14
    2
    -1 Stimmen
    14 Beiträge
    1k Aufrufe
    AphofisA
    @mickym i've done vielen dank
  • Simple wechselschaltung bei selbem Eingangswert

    10
    1
    0 Stimmen
    10 Beiträge
    831 Aufrufe
    AphofisA
    @cinimod Weil ich blockly nenn schluck besser verstehe hätte aber gerne alle mein Schaltungen nach wie vor in node-red da ich die nodes übersichtlicher finde nur mit node-red noch nicht so gut klar komme.
  • Probleme mit Aktualisierung

    18
    0 Stimmen
    18 Beiträge
    1k Aufrufe
    HomoranH
    @thomas-braun sagte in Probleme mit Aktualisierung: Von nodered und dem Palettenmanager hab ich keine Ahnung. ich dachte du hättest ab und zu die Abhängigkeiten der npm Pakete herausgefunden
  • [gelöst] Philips Hue Switch über Node Red einbinden.

    13
    2
    0 Stimmen
    13 Beiträge
    3k Aufrufe
    T
    @aphofis sagte in [gelöst] Philips Hue Switch über Node Red einbinden.: @issi welche palette ist denn dieser node button !? [image: 1738780679554-screenshot-2025-02-05-193633.png] @Aphofis das ist ein Node aus einer Hue-Palette. Welche es war weiß ich nicht mehr, da ich mit NodeRed nicht mehr arbeite. Gruß Torsten
  • Javascript zu node red

    7
    0 Stimmen
    7 Beiträge
    471 Aufrufe
    jmeister79J
    @haus-automatisierung Das was am meisten sinn macht. Im besten Fall dann später direkt auf die Entitäten oder? Momentan müsste ich jetzt auf die Objekte bzw in meinem Fall die Alias schreiben. Ich möchte es hier erstmal üben um dann später nicht auf böse Überraschungen zu stoßen nachdem ich dann due migration zu 99% fertig hab
  • Modbus RTU Nachkommastellen variieren ständig

    2
    2
    0 Stimmen
    2 Beiträge
    157 Aufrufe
    mickymM
    @marcelv Ich kann Dir nicht sagen, warum das so ist - entweder kommt das schon so an oder es ist allgemein bekannt, dass Javascript und das ist ja der Unterbau von NodeRed bei der Division solche Ungenauigkeiten aufweist. Hier findest Du einige solche Beispiele. Um das ganze zu normalisieren musst Du halt runden auf die gewünschte Zahl. Hier das falsche Rechnen von Javascript wenn Du 5.30/0.1 teilst. [image: 1738412316126-91708128-9ab3-4714-a25b-b1ea9026e1bb-image-resized.png] Hier zum Test: Spoiler [ { "id": "6d825db117977676", "type": "change", "z": "7e6af0015415146d", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "$round(payload, 3)\t", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 6560, "wires": [ [ "fbdb916f6d2eae7a" ] ] }, { "id": "cbdde4b5e1744372", "type": "function", "z": "7e6af0015415146d", "name": "Division 5.30/0.1", "func": "msg.payload = 5.30/0.1;\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 330, "y": 6480, "wires": [ [ "6884d1879fbacb54", "6d825db117977676" ] ] }, { "id": "6884d1879fbacb54", "type": "debug", "z": "7e6af0015415146d", "name": "JS Error", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 540, "y": 6480, "wires": [] }, { "id": "421036d3582817fa", "type": "inject", "z": "7e6af0015415146d", "name": "", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 110, "y": 6480, "wires": [ [ "cbdde4b5e1744372" ] ] }, { "id": "fbdb916f6d2eae7a", "type": "debug", "z": "7e6af0015415146d", "name": "gerundet", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 720, "y": 6560, "wires": [] } ]
  • Bereich aus ASCII-String herausfiltern

    10
    1
    0 Stimmen
    10 Beiträge
    520 Aufrufe
    P
    @mickym oh man .... jetzt hab ich verstanden wie das mit den kopieren und einfügen geht. is ja easy biesy. Jetzt versteh ich auch deinen Flow. Alles klar, funktioniert prima. Danke dir für die Mühe.

737

Online

32.6k

Benutzer

82.1k

Themen

1.3m

Beiträge