Variable in Function Node einfügen?

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Brainpurge
Beiträge: 106
Registriert: 08.11.2017, 17:56
System: CCU und Access Point
Hat sich bedankt: 16 Mal

Variable in Function Node einfügen?

Beitrag von Brainpurge » 07.12.2021, 20:38

Hallo,

ich würde gern den Wert aus einer Variable(generierte URL kommend aus der CCU3) in Function Node einfügen, um diese weitersenden zu können.

Jemand eine Idee, wie man das an dem Punkt schreibt?

Code: Alles auswählen

return {
  payload: {
type: "MEDIA",
contentType: "audio/vnd.wav",
streamType: "BUFFERED",
    media: [
      { url: "http://192.168.178.169/addons/sounds/1.wav" },
      { url: "http://192.168.178.169/addons/sounds/0.2.wav" },
      { url: "cfa727f.45462d8" }, <-- hier müsste die Variable ausgegeben werden.
    ]
}
}
CCU 3 mit Firmware 3.67.10 + AccessPoint mit Firmware 2.4.28

Hypnos
Beiträge: 460
Registriert: 06.01.2018, 12:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 57 Mal
Danksagung erhalten: 39 Mal

Re: Variable in Function Node einfügen?

Beitrag von Hypnos » 07.12.2021, 23:31

Idee schon.

Node-RED hat neben den Environment Variablen (werden genutzt um Voreinstellungen in Flows/Subflows zu setzen) sogenannten Context.
https://nodered.org/docs/user-guide/context

Das sind die Wald und Wiesen Variablen in Node-RED, welche man beispielsweise über change nodes oder function nodes setzen kann. Und an beliebig anderer Stelle (Bspw switch Nodes, Josonata oder in function nodes) auslesen kann.

Setzen im function node:

Code: Alles auswählen

context.set("name","Wert"); // nur für die node
flow.set("name","Wert"); // nur für den tab
glibal.set("name","Wert"); //für alles
Auslesen im function node:

Code: Alles auswählen

let ABC = context.get("name");
let ABC = flow.get("name");
let ABC = global.get("name");
Es gibt eine sidebar rechts wo man sich aktuell abgelegte Contexte ansehen kann.

In deinem Beispiel dann wäre es dann halt wie folgt einzusetzen:

Code: Alles auswählen

return {
  payload: {
type: "MEDIA",
contentType: "audio/vnd.wav",
streamType: "BUFFERED",
    media: [
      { url: "http://192.168.178.169/addons/sounds/1.wav" },
      { url: "http://192.168.178.169/addons/sounds/0.2.wav" },
      { url: global.get("meine schöne Variable") }, 
    ]
}
}

Die node-red-contrib-ccu nodes kann man im Konfigurations node einstellen, das die Daten der CCU in einem context landen:
2021-12-08_223845 Screenshot 001.png
2021-12-08_223845 Screenshot 001.png (18.08 KiB) 3109 mal betrachtet
Hier wählt man, das die States abgelegt werden sollen. Da muss einfach was anderes als "none" stehen. Ich habe mehrere Context Stores (siehe weiter unten) und daher gibt es bei mir "file".

Damit gibt es eine Objekt Variable/Context, der alle Kanäle, Systemvariablen der CCU enthält und damit kann man direkt auf die Werte von Homematic Kanälen, Systemvariablen im function Node aus zugreifen. Der Name der Variablen ist dann aber noch abhängig von der jeweiligen Konfiguration.

Beispiel:
Wenn deine CCU konfiguration den name "localhost-raspberrymatic" trägt, könntest du wie folgt die States abfragen:

Code: Alles auswählen

let Beispiel1 = global.get('localhost-raspberrymatic.values["HmIP-RF.0815AABBCCDDEEF:1.STATE"]');
let Beispiel2 = global.get('localhost-raspberrymatic.values["BidCos-Wired.MEQ0278686:16.STATE"].value');

// Systemvariablen:
let Beispiel3 = global.get('localhost-raspberrymatic.sysvar.DutyCycle.value');
let Beispiel3 = global.get('localhost-raspberrymatic.sysvar.Anwesenheit.value');

// Man kann sogar den Status von CCU Programmen abfragen:
let Beispiel3 = global.get('localhost-raspberrymatic.program.SYS_CCU_ALIVE.active');
Noch ein Hinweis: Das ist im default erstmal nicht persistent (=bedeutet bei Neustart alles gespeicherte weg). In den Einstellungen von Redmatic/Node-RED kann man noch weitere Context stores angeben (Bsp memory und file). Das verkompliziert das in soweit, das man dann den Namen des Context stores immer mit angeben sollte (als weiterer Parameter in get/set). Weil eine Variable mit verschiedenen Werten in den Context stores gleichzeitig sein kann.

Mit einem Context Store mit Namen "file" muss das Beispiel wie folgt aussehen:

Code: Alles auswählen

let Beispiel1 = global.get('localhost-raspberrymatic.values["HmIP-RF.0815AABBCCDDEEF:1.STATE"]', 'file');
let Beispiel2 = global.get('localhost-raspberrymatic.values["BidCos-Wired.MEQ0278686:16.STATE"].value','file');

// Systemvariablen:
let Beispiel3 = global.get('localhost-raspberrymatic.sysvar.DutyCycle.value', 'file');
let Beispiel3 = global.get('localhost-raspberrymatic.sysvar.Anwesenheit.value', 'file');

Gruß
Hypnos

[edit] Beispiele hinzugefügt.
Zuletzt geändert von Hypnos am 08.12.2021, 22:51, insgesamt 1-mal geändert.

Brainpurge
Beiträge: 106
Registriert: 08.11.2017, 17:56
System: CCU und Access Point
Hat sich bedankt: 16 Mal

Re: Variable in Function Node einfügen?

Beitrag von Brainpurge » 08.12.2021, 09:29

Vielen Dank für deine ausführliche Antwort.

Bin mir nur nicht sicher, wo ich im Konfigurations-Node was einstellen soll. Ich schau mir das heute Abend nochmal in Ruhe an, vielleicht übersehe ich das gerade etwas.
Screenshot 2021-12-08 092446.jpg

Das wäre der Test-Flow. Muss ich die Variable eventuell noch verbinden?

Code: Alles auswählen

[{"id":"f8d03d82.7e147","type":"castv2-sender","z":"5cce80ec.161bb","name":"Google Wohnzimmer","connection":"83aa6f2a.da5fd","x":830,"y":1060,"wires":[[]],"outputLabels":["msg.payload"]},{"id":"2aacffef.cafc7","type":"inject","z":"5cce80ec.161bb","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"topic","payload":"payload","payloadType":"msg","x":90,"y":920,"wires":[["19149c05.fafc34"]]},{"id":"34249ace.a5a9f6","type":"delay","z":"5cce80ec.161bb","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":290,"y":1020,"wires":[["6a0e3c2c.829584"]]},{"id":"6a0e3c2c.829584","type":"function","z":"5cce80ec.161bb","name":"Willkommen zu Hause","func":"return {\n  payload: {\ntype: \"MEDIA\",\ncontentType: \"audio/vnd.wav\",\nstreamType: \"BUFFERED\",\n    media: [\n      { url: \"http://192.168.178.169/addons/sounds/1.wav\" },\n      { url: \"http://192.168.178.169/addons/sounds/0.2.wav\" },\n      { url: global.get(\"cfa727f.45462d8\") }, \n    ]\n}\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":1020,"wires":[["f8d03d82.7e147","30b1c27b.74db7e"]]},{"id":"19149c05.fafc34","type":"delay","z":"5cce80ec.161bb","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":290,"y":960,"wires":[["4bdcc8f4.824fa8"]]},{"id":"4bdcc8f4.824fa8","type":"function","z":"5cce80ec.161bb","name":"Volume auf 40","func":" return {\n  payload: {\n    app: \"DefaultMediaReceiver\", \n    type: \"VOLUME\",\n    volume: 40 // 0 to 100\n  }\n }","outputs":1,"noerr":0,"initialize":"","finalize":"","x":490,"y":960,"wires":[["f8d03d82.7e147","34249ace.a5a9f6"]]},{"id":"fd9b445f.d242b8","type":"function","z":"5cce80ec.161bb","name":"Volume auf 10","func":" return {\n  payload: {\n      app: \"DefaultMediaReceiver\", \n    type: \"VOLUME\",\n    volume: 10 // 0 to 100\n  }\n }","outputs":1,"noerr":0,"initialize":"","finalize":"","x":490,"y":1080,"wires":[["f8d03d82.7e147","2b2f5bd8.a24fb4"]]},{"id":"f078464e.aeb468","type":"function","z":"5cce80ec.161bb","name":"Close","func":" return {\n  payload: {\n      app: \"DefaultMediaReceiver\", \n    type: \"CLOSE\"\n  }\n }","outputs":1,"noerr":0,"initialize":"","finalize":"","x":470,"y":1140,"wires":[["f8d03d82.7e147"]]},{"id":"30b1c27b.74db7e","type":"delay","z":"5cce80ec.161bb","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":290,"y":1080,"wires":[["fd9b445f.d242b8"]]},{"id":"2b2f5bd8.a24fb4","type":"delay","z":"5cce80ec.161bb","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":290,"y":1140,"wires":[["f078464e.aeb468"]]},{"id":"cfa727f.45462d8","type":"ccu-sysvar","z":"5cce80ec.161bb","name":"URLVariable","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":640,"y":1240,"wires":[["69e88e01.5369"]]},{"id":"69e88e01.5369","type":"change","z":"5cce80ec.161bb","name":"","rules":[{"t":"set","p":"mydata","pt":"global","to":"payload","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":1160,"wires":[[]]},{"id":"83aa6f2a.da5fd","type":"castv2-connection","name":"","target":"Google Wohnzimmer","host":"","port":"8009"},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","tls":false,"inSecure":false,"authentication":false,"username":"","password":"","queueTimeout":"5000","queuePause":"250","contextStore":""}]
CCU 3 mit Firmware 3.67.10 + AccessPoint mit Firmware 2.4.28

Brainpurge
Beiträge: 106
Registriert: 08.11.2017, 17:56
System: CCU und Access Point
Hat sich bedankt: 16 Mal

Re: Variable in Function Node einfügen?

Beitrag von Brainpurge » 08.12.2021, 19:34

Hab es hinbekommen :D
CCU 3 mit Firmware 3.67.10 + AccessPoint mit Firmware 2.4.28

Hypnos
Beiträge: 460
Registriert: 06.01.2018, 12:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 57 Mal
Danksagung erhalten: 39 Mal

Re: Variable in Function Node einfügen?

Beitrag von Hypnos » 08.12.2021, 22:53

Falls noch andere Probleme haben habe ich meinen Beitrag oben noch mit ein paar Beispielen erweitert.

Brainpurge
Beiträge: 106
Registriert: 08.11.2017, 17:56
System: CCU und Access Point
Hat sich bedankt: 16 Mal

Re: Variable in Function Node einfügen?

Beitrag von Brainpurge » 15.01.2023, 14:10

Hallo,

leider ist mir meine CCU3 abgeschmirt und dummerweise fehlte mir ein Backup (ich weiß, Pech gehabt). Habe soweit fast alles wieder rekonstruieren können, nur leider habe ich ein Problem im NodeRed bei Funkions. Ich bekomme über die 2. Zeile der Ausgabe, welche die URL der Variable ist und auch korrekt ist (mehrfach getestet), nicht ausgegeben als Ansage. Die 1. Zeile geht jedoch. Irgendein kleiner Fehler oder übersehe ich das etwas?

Könnte jemand darüber schauen und mir helfen? Wäre super.
Screenshot 2023-01-15 140817.png

Code: Alles auswählen

[{"id":"1d049f43.bc2c91","type":"tab","label":"ComingHome neu","disabled":false,"info":""},{"id":"ce1763f3.2d654","type":"castv2-sender","z":"1d049f43.bc2c91","name":"Küche","connection":"f71d550e.d9b078","x":1090,"y":220,"wires":[[]],"outputLabels":["msg.payload"]},{"id":"9eddb62e.6117f8","type":"function","z":"1d049f43.bc2c91","name":"Volume auf 10","func":" return {\n  payload: {\n      app: \"DefaultMediaReceiver\", \n    type: \"VOLUME\",\n    volume: 40 // 0 to 100\n  }\n }","outputs":1,"noerr":0,"initialize":"","finalize":"","x":740,"y":280,"wires":[["81f80af4.529e38","ce1763f3.2d654"]]},{"id":"78c15131.2b959","type":"function","z":"1d049f43.bc2c91","name":"Close","func":" return {\n  payload: {\n      app: \"DefaultMediaReceiver\", \n    type: \"CLOSE\"\n  }\n }","outputs":1,"noerr":0,"initialize":"","finalize":"","x":710,"y":340,"wires":[["ce1763f3.2d654"]]},{"id":"80d36cce.1f1e1","type":"delay","z":"1d049f43.bc2c91","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":550,"y":280,"wires":[["9eddb62e.6117f8"]]},{"id":"81f80af4.529e38","type":"delay","z":"1d049f43.bc2c91","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":530,"y":340,"wires":[["78c15131.2b959"]]},{"id":"68b3b6d3.c8ecf8","type":"delay","z":"1d049f43.bc2c91","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":540,"y":220,"wires":[["91fac2f1.d01a1"]]},{"id":"91fac2f1.d01a1","type":"function","z":"1d049f43.bc2c91","name":"Willkommen zu Hause","func":"var URLVariable = URLVariable;\n\nreturn {\n  payload: {\ntype: \"MEDIA\",\ncontentType: \"audio/vnd.wav\",\nstreamType: \"BUFFERED\",\n    media: [\n      { url: \"http://192.168.178.169/addons/sounds/im-wohnzimmer.wav\" },\n      { url: global.get(\"URLVariable\") }, \n    ]\n}\n}\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":760,"y":220,"wires":[["80d36cce.1f1e1","ce1763f3.2d654"]]},{"id":"c95d2260.5ef86","type":"function","z":"1d049f43.bc2c91","name":"Volume auf 40","func":" return {\n  payload: {\n      app: \"DefaultMediaReceiver\", \n    type: \"VOLUME\",\n    volume: 40 // 0 to 100\n  }\n }","outputs":1,"noerr":0,"initialize":"","finalize":"","x":340,"y":220,"wires":[["68b3b6d3.c8ecf8"]]},{"id":"4fd1b42f.9d1ffc","type":"inject","z":"1d049f43.bc2c91","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"topic","payload":"payload","payloadType":"msg","x":140,"y":220,"wires":[["c95d2260.5ef86"]]},{"id":"dd9e097d.2958f8","type":"debug","z":"1d049f43.bc2c91","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":950,"y":120,"wires":[]},{"id":"2f83b3be.72e65c","type":"ui_toast","z":"1d049f43.bc2c91","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","raw":false,"topic":"","name":"","x":990,"y":80,"wires":[]},{"id":"dbd74a53.b93bd8","type":"ui_button","z":"1d049f43.bc2c91","name":"","group":"46fbe67a.90cd18","order":3,"width":0,"height":0,"passthru":false,"label":"button","tooltip":"","color":"","bgcolor":"","icon":"","payload":"URLVariable","payloadType":"global","topic":"Geht?","topicType":"str","x":770,"y":100,"wires":[["2f83b3be.72e65c","dd9e097d.2958f8"]]},{"id":"b65e6a84.5f7478","type":"change","z":"1d049f43.bc2c91","name":"","rules":[{"t":"set","p":"URLVariable","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":100,"wires":[["dbd74a53.b93bd8"]]},{"id":"e6bd4053.96b58","type":"ccu-sysvar","z":"1d049f43.bc2c91","name":"URLVariable_Temp","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":170,"y":100,"wires":[["b65e6a84.5f7478"]]},{"id":"f71d550e.d9b078","type":"castv2-connection","name":"Küche","target":"Küche","host":"192.168.178.70","port":"8009"},{"id":"46fbe67a.90cd18","type":"ui_group","name":"Variablen","tab":"36fb2145.947dee","order":1,"disp":true,"width":"6","collapse":false},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","tls":false,"inSecure":false,"authentication":false,"username":"","password":"","queueTimeout":"5000","queuePause":"250","contextStore":"memory"},{"id":"36fb2145.947dee","type":"ui_tab","name":"Variablen","icon":"dashboard","order":2}]
PS: Hat sich erledigt, jetzt geht es, obwohl ich den Fehler selber nicht finden konnte.
CCU 3 mit Firmware 3.67.10 + AccessPoint mit Firmware 2.4.28

Benutzeravatar
Henke
Beiträge: 1500
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 304 Mal

Re: Variable in Function Node einfügen?

Beitrag von Henke » 15.01.2023, 17:43

Code: Alles auswählen

[
    {
        "id": "f905e71a644970cf",
        "type": "template",
        "z": "7953bea77060052e",
        "name": "Willkommen zu Hause",
        "field": "payload",
        "fieldType": "msg",
        "format": "json",
        "syntax": "mustache",
        "template": "{\n\"type\": \"MEDIA\",\n\"contentType\": \"audio/vnd.wav\",\n\"streamType\": \"BUFFERED\",\n    \"media\": [\n      { \"url\": \"http://192.168.178.169/addons/sounds/im-wohnzimmer.wav\" },\n      { \"url\": \"{{ulr}}\" } \n    ]\n}",
        "output": "json",
        "x": 780,
        "y": 700,
        "wires": [
            []
        ]
    },
    {
        "id": "5656c7e9cec7ca4d",
        "type": "change",
        "z": "7953bea77060052e",
        "name": "Volume auf 40",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"app\":\"DefaultMediaReceiver\",\"type\":\"VOLUME\",\"volume\":40}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 460,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "dc69ce72c614349f",
        "type": "change",
        "z": "7953bea77060052e",
        "name": "Volume auf 10",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"app\":\"DefaultMediaReceiver\",\"type\":\"VOLUME\",\"volume\":10}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 660,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "2e0782da53fb1e7f",
        "type": "change",
        "z": "7953bea77060052e",
        "name": "Close",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"app\":\"DefaultMediaReceiver\",\"type\":\"CLOSE\"}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 850,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "e4b227a54f7541b8",
        "type": "change",
        "z": "7953bea77060052e",
        "name": "get URLVariable",
        "rules": [
            {
                "t": "set",
                "p": "ulr",
                "pt": "msg",
                "to": "URLVariable",
                "tot": "global"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 540,
        "y": 700,
        "wires": [
            [
                "f905e71a644970cf"
            ]
        ]
    }
]
Volume auf ist ein JSON Fehler drin.
Ersetze bitte alle Funktion Nodes, mit dem Code ist es wartbarer und man sieht direkt die Fehler

LG
Michael

Benutzeravatar
Henke
Beiträge: 1500
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 304 Mal

Re: Variable in Function Node einfügen?

Beitrag von Henke » 16.01.2023, 16:41

ignore +1

Brainpurge
Beiträge: 106
Registriert: 08.11.2017, 17:56
System: CCU und Access Point
Hat sich bedankt: 16 Mal

Re: Variable in Function Node einfügen?

Beitrag von Brainpurge » 20.01.2023, 20:57

Hallo Michael, vielen Dank für deine Hilfe, nicht selbstverständlich. Ich versuche gerade den Code in einem neuen Flow, aber irgendwie bekomme ich keinen Ton heraus.

Für was stehen die id und z? Sorry für die doofe Frage :mrgreen:

Code: Alles auswählen

[{"id":"d2196d76.f129b","type":"tab","label":"ComingHome neu","disabled":false,"info":""},{"id":"b5e1a0f5.fdfa5","type":"inject","z":"d2196d76.f129b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"payload","payload":"payload","payloadType":"msg","x":380,"y":160,"wires":[["2136b93c.d85f46"]]},{"id":"1011d347.3fb26d","type":"ccu-sysvar","z":"d2196d76.f129b","name":"URLVariable_Temp","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":410,"y":380,"wires":[["398a3f13.a99d"]]},{"id":"81452d2f.8534d","type":"debug","z":"d2196d76.f129b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1070,"y":320,"wires":[]},{"id":"c9fff4b1.8c84a8","type":"ui_toast","z":"d2196d76.f129b","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","raw":false,"topic":"","name":"","x":1080,"y":420,"wires":[]},{"id":"79040064.04f72","type":"ui_button","z":"d2196d76.f129b","name":"","group":"46fbe67a.90cd18","order":3,"width":0,"height":0,"passthru":false,"label":"button","tooltip":"","color":"","bgcolor":"","icon":"","payload":"URLVariable","payloadType":"global","topic":"Geht?","topicType":"str","x":890,"y":380,"wires":[["c9fff4b1.8c84a8","81452d2f.8534d"]]},{"id":"398a3f13.a99d","type":"change","z":"d2196d76.f129b","name":"","rules":[{"t":"set","p":"URLVariable","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":660,"y":380,"wires":[["79040064.04f72"]]},{"id":"b22138d0.47ba98","type":"function","z":"d2196d76.f129b","name":"Willkommen zu Hause","func":"[\n    {\n        \"id\": \"f905e71a644970cf\",\n        \"type\": \"template\",\n        \"z\": \"7953bea77060052e\",\n        \"name\": \"Willkommen zu Hause\",\n        \"field\": \"payload\",\n        \"fieldType\": \"msg\",\n        \"format\": \"json\",\n        \"syntax\": \"mustache\",\n        \"template\": \"{\\n\\\"type\\\": \\\"MEDIA\\\",\\n\\\"contentType\\\": \\\"audio/vnd.wav\\\",\\n\\\"streamType\\\": \\\"BUFFERED\\\",\\n    \\\"media\\\": [\\n      { \\\"url\\\": \\\"http://192.168.178.169/addons/sounds/im-wohnzimmer.wav\\\" },\\n      { \\\"url\\\": \\\"{{ulr}}\\\" } \\n    ]\\n}\",\n        \"output\": \"json\",\n        \"x\": 780,\n        \"y\": 700,\n        \"wires\": [\n            []\n        ]\n    },\n    {\n        \"id\": \"5656c7e9cec7ca4d\",\n        \"type\": \"change\",\n        \"z\": \"7953bea77060052e\",\n        \"name\": \"Volume auf 40\",\n        \"rules\": [\n            {\n                \"t\": \"set\",\n                \"p\": \"payload\",\n                \"pt\": \"msg\",\n                \"to\": \"{\\\"app\\\":\\\"DefaultMediaReceiver\\\",\\\"type\\\":\\\"VOLUME\\\",\\\"volume\\\":40}\",\n                \"tot\": \"json\"\n            }\n        ],\n        \"action\": \"\",\n        \"property\": \"\",\n        \"from\": \"\",\n        \"to\": \"\",\n        \"reg\": false,\n        \"x\": 460,\n        \"y\": 600,\n        \"wires\": [\n            []\n        ]\n    },\n    {\n        \"id\": \"dc69ce72c614349f\",\n        \"type\": \"change\",\n        \"z\": \"7953bea77060052e\",\n        \"name\": \"Volume auf 10\",\n        \"rules\": [\n            {\n                \"t\": \"set\",\n                \"p\": \"payload\",\n                \"pt\": \"msg\",\n                \"to\": \"{\\\"app\\\":\\\"DefaultMediaReceiver\\\",\\\"type\\\":\\\"VOLUME\\\",\\\"volume\\\":10}\",\n                \"tot\": \"json\"\n            }\n        ],\n        \"action\": \"\",\n        \"property\": \"\",\n        \"from\": \"\",\n        \"to\": \"\",\n        \"reg\": false,\n        \"x\": 660,\n        \"y\": 600,\n        \"wires\": [\n            []\n        ]\n    },\n    {\n        \"id\": \"2e0782da53fb1e7f\",\n        \"type\": \"change\",\n        \"z\": \"7953bea77060052e\",\n        \"name\": \"Close\",\n        \"rules\": [\n            {\n                \"t\": \"set\",\n                \"p\": \"payload\",\n                \"pt\": \"msg\",\n                \"to\": \"{\\\"app\\\":\\\"DefaultMediaReceiver\\\",\\\"type\\\":\\\"CLOSE\\\"}\",\n                \"tot\": \"json\"\n            }\n        ],\n        \"action\": \"\",\n        \"property\": \"\",\n        \"from\": \"\",\n        \"to\": \"\",\n        \"reg\": false,\n        \"x\": 850,\n        \"y\": 600,\n        \"wires\": [\n            []\n        ]\n    },\n    {\n        \"id\": \"e4b227a54f7541b8\",\n        \"type\": \"change\",\n        \"z\": \"7953bea77060052e\",\n        \"name\": \"get URLVariable\",\n        \"rules\": [\n            {\n                \"t\": \"set\",\n                \"p\": \"ulr\",\n                \"pt\": \"msg\",\n                \"to\": \"URLVariable\",\n                \"tot\": \"global\"\n            }\n        ],\n        \"action\": \"\",\n        \"property\": \"\",\n        \"from\": \"\",\n        \"to\": \"\",\n        \"reg\": false,\n        \"x\": 540,\n        \"y\": 700,\n        \"wires\": [\n            [\n                \"f905e71a644970cf\"\n            ]\n        ]\n    }\n]","outputs":1,"noerr":0,"initialize":"","finalize":"","x":800,"y":160,"wires":[["ea69b1ea.1a8f3"]]},{"id":"ea69b1ea.1a8f3","type":"castv2-sender","z":"d2196d76.f129b","name":"Google Wohnzimmer","connection":"f71d550e.d9b078","x":1080,"y":160,"wires":[[]],"outputLabels":["msg.payload"]},{"id":"2136b93c.d85f46","type":"delay","z":"d2196d76.f129b","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":580,"y":160,"wires":[["b22138d0.47ba98"]]},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"120","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"192.168.178.169","rpcBinPort":"2047","rpcXmlPort":"2048","tls":false,"inSecure":false,"authentication":false,"username":"","password":"","queueTimeout":"5000","queuePause":"350","contextStore":"default"},{"id":"46fbe67a.90cd18","type":"ui_group","name":"Variablen","tab":"36fb2145.947dee","order":1,"disp":true,"width":"6","collapse":false},{"id":"f71d550e.d9b078","type":"castv2-connection","name":"Küche","target":"Küche","host":"192.168.178.70","port":"8009"},{"id":"36fb2145.947dee","type":"ui_tab","name":"Variablen","icon":"dashboard","order":2}]
CCU 3 mit Firmware 3.67.10 + AccessPoint mit Firmware 2.4.28

Benutzeravatar
Henke
Beiträge: 1500
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 304 Mal

Re: Variable in Function Node einfügen?

Beitrag von Henke » 20.01.2023, 21:17

Du muss den Code oben in Node Red über Import einfügen. Nicht als Script in einer Funktion.

Die ID ist die Node ID, z müsste ich nachsehen aber durch den Import ist das Problem eh gelöst. :D

Antworten

Zurück zu „RedMatic“