# Variable input on node

**URL:** https://discourse.nodered.org/t/variable-input-on-node/2189
**Category:** Core Development
**Created:** [9 August 2018 17:42 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189 "2018-08-09T17:42:19Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [9 August 2018 17:42 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/1 "2018-08-09T17:42:19Z")

</div>

I'm try to use one variable input on node.

in my case is a URL on websocket. the user set a URL of the websocket on the HMI, and de rapberry take the URL via modbus.

How i can create a variable on properties of the node, that can be modified any time.

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/1/11563ec29c7e0831d2d20e14f74c051dee2ef1e9.png)

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [9 August 2018 18:40 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/2 "2018-08-09T18:40:14Z")

</div>

What node are you using? Have you read the node's info?

Many nodes allow you to pass in parts of the msg that will define the option in the node.

---

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [9 August 2018 18:49 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/3 "2018-08-09T18:49:01Z")

</div>

i'm using the node-red-contrib.ocpp, this node don't have option for to put a variable, only fixed URL.

into the node, have any function that read a global variable of the dashboard?

---

<div class="post-metadata">

### Author: ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)
#### Post date: [10 August 2018 06:52 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/4 "2018-08-10T06:52:22Z")

</div>

You should be able to use the `$(environment variable)` syntax to set the field from an external environment variable, but this is only read at start time.

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [10 August 2018 09:16 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/5 "2018-08-10T09:16:09Z")

</div>

Might want to ask the node's author to add that ability

---

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [10 August 2018 11:05 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/7 "2018-08-10T11:05:33Z")

</div>

sorry for my ignorance, but how i implemant this variables on my project??

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [10 August 2018 11:07 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/8 "2018-08-10T11:07:42Z")

</div>

Search the flows library, I put an example out there awhile back

---

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [10 August 2018 12:31 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/9 "2018-08-10T12:31:21Z")

</div>

i folloed this post [https://flows.nodered.org/flow/8a13d11dfe80e279df83341e3e17bcc1](https://flows.nodered.org/flow/8a13d11dfe80e279df83341e3e17bcc1)

but when i read a env with global.get("env"), the function return empty value

msg : Object  
object  
\_msgid: "daeecbbd.3b96e8"  
topic: ""

i created a FOO variable, when i put on a topic in node properties, it ok, but how i set a value for this variable on my software?

---

<div class="post-metadata">

### Author: ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)
#### Post date: [10 August 2018 13:03 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/10 "2018-08-10T13:03:27Z")

</div>

(back on a decent keyboard)

You can set just about any field in a node to use an **external** environment variable by setting the field in the config like `$(env_var_name)` where env\_var\_name is the name of the variable so for example I could set (In Linux - outside of Node-RED) `export foo=192.168.1.10` then in Node-RED set that field to $(foo) and on deploy it will read that variable and use it...

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [10 August 2018 16:39 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/11 "2018-08-10T16:39:35Z")

</div>

> [@dceejay](#):
>
> so for example I could set (In Linux - outside of Node-RED)

which leads to a question for @glconceicao - what os are you running on?

---

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [13 August 2018 10:25 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/12 "2018-08-13T10:25:22Z")

</div>

I running node-red in Raspberry.

I was able to use the environment variable. i create this variable on node red setings, and then use this variable out and in on the blocks.

but now when start the program, how i use the websocket conection, the websock start before settings the environment variable, generating error on websocket. is it possible to create a delay to start the block?

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [13 August 2018 10:29 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/13 "2018-08-13T10:29:58Z")

</div>

> [@glconceicao](#):
>
> is it possible to create a delay to start the block?

Hmmmm if only there was a 'delay' node.....

---

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [13 August 2018 10:46 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/14 "2018-08-13T10:46:57Z")

</div>

But even if i use the delay node, the websocket opens befere, because it does not depend on the flow, i have to create a subroutine on the node, to delay websocket startup.

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [13 August 2018 10:50 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/15 "2018-08-13T10:50:10Z")

</div>

What is your flow? Can you post it? (don't forget to use three back tick's - ``` - before and after it)

---

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [13 August 2018 11:00 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/16 "2018-08-13T11:00:39Z")

</div>

this is my main flow, and the OCPP client is responsible to open the websocket. (node-red-contrib-ocpp)

i could not place the code because it is too big.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/1/113f1d094d5affa4228f77c09c1f16fe38e3bbff.png)

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [13 August 2018 11:07 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/17 "2018-08-13T11:07:16Z")

</div>

A picuter of the flow is not much help, why don't you export and save your flow, then strip it down to a managable size that still shws the problem and provide that flow.

---

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [13 August 2018 11:11 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/18 "2018-08-13T11:11:31Z")

</div>

i reduced for the main nodes!

`[{"id":"b26ad236.0dc21","type":"subflow","name":"Stop Transaction","info":"","in":[{"x":320,"y":160,"wires":[{"id":"16a1a970.cc6777"}]}],"out":[{"x":760,"y":100,"wires":[{"id":"16a1a970.cc6777","port":0}]}]},{"id":"16a1a970.cc6777","type":"function","z":"b26ad236.0dc21","name":"Stop Transaction","func":"var reason = msg.payload.reason\nvar ID = msg.payload.tagid\nvar meter\nvar time \nvar tempo = global.get(\"data\")\nvar TagId = global.get(\"TagId\")\nvar Tablereason = [\n \"EmergencyStop\",\n \"EvDisconnected\",\n \"HardReset\",\n \"Local\",\n \"Other\",\n \"PowerLoss\",\n \"Reboot\",\n \"Remote\",\n \"SoftReset\",\n \"Unlook_Command\",\n \"DeAuthorized\"]\n\nmsg1 = {};\nmsg2 = {};\n\nvar saida = {\n command: \"StopTransaction\",\n data: {\n idTag: ID,\n meterStop: \"1\",\n timestamp:tempo,\n transactionId: \"1\",\n reason: Tablereason[reason]\n \n }\n\n}\nmsg1.payload = saida;\n\nif (reason == 10) {\n msg2.payload = true\n return [msg1,msg2]\n}\nelse {\n return [msg1,null]\n}\n\n","outputs":2,"noerr":0,"x":570,"y":160,"wires":[[],["c3bc1792.c6c5f8"]]},{"id":"fa32409.aeee3c","type":"modbus-read","z":"b26ad236.0dc21","name":"Bt emergência","topic":"","showStatusActivities":false,"showErrors":false,"unitid":"1","dataType":"Coil","adr":"403","quantity":"1","rate":"1","rateUnit":"s","delayOnStart":true,"startDelayTime":"2","server":"df796c74.df3f2","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":400,"y":260,"wires":[["edd1aa4b.0773f8"],[]]},{"id":"edd1aa4b.0773f8","type":"function","z":"b26ad236.0dc21","name":"Trata bt Emergência","func":"var emergencia = msg.payload [0];\nvar flagStart = global.get(\"flagStart\");\nvar TagId = global.get (\"TagId\");\nvar btemergencia = global.get (\"flagEmergencia\")\nif ((flagStart === true) && (emergencia === false) && (btemergencia === false)){\n global.set(\"flagEmergencia\",true)\n var mensagem = {\n reason: 0,\n tagid: TagId,}\n msg.payload = mensagem\n return msg;\n}\nelse if (emergencia === true) {\n global.set(\"flagEmergencia\",false)\n\n}","outputs":1,"noerr":0,"x":600,"y":260,"wires":[["16a1a970.cc6777"]]},{"id":"c3bc1792.c6c5f8","type":"modbus-write","z":"b26ad236.0dc21","name":"Stop Charge","showStatusActivities":false,"showErrors":false,"unitid":"1","dataType":"Coil","adr":"404","quantity":"1","server":"df796c74.df3f2","x":770,"y":160,"wires":[[],[]]},{"id":"55f15330.8255ac","type":"subflow","name":"Authorization","info":"","in":[{"x":260,"y":60,"wires":[{"id":"22f32865.add528"}]}],"out":[{"x":600,"y":60,"wires":[{"id":"22f32865.add528","port":0}]}]},{"id":"22f32865.add528","type":"function","z":"55f15330.8255ac","name":"F= Athourize","func":"var ID = msg.payload\nmsg1 = {};\nmsg2 = {};\nvar confirma = global.get(\"conf\")\nvar LastId = global.get(\"TagId\")\nvar FlagAutho = global.get (\"flagAutho\")\n\nif (FlagAutho === false){\nif (confirma === true){\nvar auto = {\n command: \"Authorize\",\n data: ID\n}\nmsg1.payload = auto\nreturn [msg1,null];\n}}\nelse {\n if (LastId !== ID){\n var telaErro = true\n msg2.payload = telaErro\n return [null,msg2];\n }\n else {\n var auto = {\n command: \"Authorize\",\n data: ID}\n msg1.payload = auto\nreturn [msg1,null];\n}}","outputs":2,"noerr":0,"x":430,"y":60,"wires":[[],["c8b867d0.817578"]]},{"id":"c8b867d0.817578","type":"modbus-write","z":"55f15330.8255ac","name":"Inicio","showStatusActivities":true,"showErrors":false,"unitid":"1","dataType":"Coil","adr":"402","quantity":"1","server":"df796c74.df3f2","x":630,"y":140,"wires":[[],[]]},{"id":"becbca07.6b7348","type":"subflow","name":"Start Transaction","info":"","in":[{"x":360,"y":120,"wires":[{"id":"4c6ff3f2.08d31c"}]}],"out":[{"x":660,"y":120,"wires":[{"id":"4c6ff3f2.08d31c","port":0}]}]},{"id":"4c6ff3f2.08d31c","type":"function","z":"becbca07.6b7348","name":"Start Transaction","func":"var meter\nvar time \nvar tempo = global.get(\"data\")\nvar ID = global.get(\"IdTag\")\n\nvar saida = {\n command: \"StartTransaction\",\n data: {\n connectorId: \"1\",\n idTag: ID,\n meterStart: \"1\",\n reservationId: \"1\",\n timestamp:tempo\n \n }\n\n}\nmsg.payload = saida\n\nreturn msg;\n","outputs":1,"noerr":0,"x":510,"y":120,"wires":[[]]},{"id":"9254c899.59e018","type":"subflow","name":"RFID","info":"","in":[{"x":240,"y":100,"wires":[{"id":"276ae472.b9ba9c"}]}],"out":[{"x":560,"y":60,"wires":[{"id":"276ae472.b9ba9c","port":0}]},{"x":560,"y":100,"wires":[{"id":"276ae472.b9ba9c","port":1}]}]},{"id":"276ae472.b9ba9c","type":"function","z":"9254c899.59e018","name":"Trata RFID","func":"var ID = msg.payload\nvar flagStart = global.get(\"flagStart\");\nvar TagId = global.get(\"TagId\");\n\nmsg1 = {};\nmsg2 = {};\nmsg3 = {};\nif ((flagStart === true) && (ID == TagId)){\n mensagem = {\n tagid : ID,\n reason: 10\n }\n msg2.payload = mensagem\n // global.set(\"flagTrans\",false)\n return [null,msg2,null];\n}\nelse if ((flagStart === true) && (ID !== TagId)) {\n msg3.payload = true\n return [null,null,msg3];\n}\nelse {\n msg1.payload = ID;\n return [msg1,null,null];\n}","outputs":3,"noerr":0,"x":410,"y":80,"wires":[[],[],["4b4546b7.641dd8"]]},{"id":"4b4546b7.641dd8","type":"modbus-write","z":"9254c899.59e018","name":"Usuario Errado","showStatusActivities":true,"showErrors":false,"unitid":"1","dataType":"Coil","adr":"402","quantity":"1","server":"df796c74.df3f2","x":580,"y":180,"wires":[[],[]]},{"id":"df796c74.df3f2","type":"modbus-client","z":"","name":"IHM","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"192.168.0.3","tcpPort":"800","tcpType":"TPC-RTU-BUFFERED","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectTimeout":"2000"},{"id":"142b2080.5eb18","type":"subflow:9254c899.59e018","z":"6692752d.2bb74c","name":"","x":230,"y":200,"wires":[["24b7438f.e3580c"],["5cacab98.6025b4"]]},{"id":"b72d1880.7b67c8","type":"subflow:becbca07.6b7348","z":"6692752d.2bb74c","name":"","x":410,"y":120,"wires":[["65477198.529cd"]]},{"id":"24b7438f.e3580c","type":"subflow:55f15330.8255ac","z":"6692752d.2bb74c","name":"","x":400,"y":160,"wires":[["65477198.529cd"]]},{"id":"65477198.529cd","type":"CP client JSON","z":"6692752d.2bb74c","name":"OCPP Client","cbId":"001","remotecs":"9ee4c466.a18728","ocppver":"1.6j","command":"","cmddata":"","log":false,"pathlog":"","x":750,"y":220,"wires":[["f6400f30.d007f"],["902675a1.54ed48"]]},{"id":"f6400f30.d007f","type":"function","z":"6692752d.2bb74c","name":"Resposta OCPP","func":"var command = msg.ocpp.command;\nmsg1={};\nmsg2={};\nmsg3={};\nmsg4={};\nswitch (command){\n \n case \"BootNotification\":\nif (msg.payload.data.status == \"Accepted\"){\nglobal.set(\"interval\",msg.payload.data.interval);\nglobal.set(\"flagBoot\",true);\nglobal.set(\"erro\",20);\n}\nbreak;\n\ncase \"Authorize\":\nvar auto = msg.payload.data.idTagInfo.status\nvar ID = msg.payload.data.idTagInfo.parentIdTag;\n if (auto == (\"Accepted\")){\n global.set(\"flagAutho\",true);\n global.set(\"TagId\",ID)\n msg3.payload = true\n return [msg3,null,null]\n}\n else {\n global.set(\"flagAutho\",false);\n msg2.payload = \"ID Unvalable\"\n return [null,null,msg2]\n }\nbreak;\n\ncase \"StartTransaction\":\n var Trans = msg.payload.data.idTagInfo.status\n var IDT = global.get(\"TagId\")\n var map = Array.prototype.map;\n var ascii = map.call(String(IDT), function(x) { return x.charCodeAt(0); });\n\n if (Trans == (\"Accepted\")){\n global.set(\"flagStart\",true);\n global.set(\"flagStop\",false)\n global.set(\"flag2\",false);\n global.set(\"timeoutStart\",true);\n msg1.payload = true\n msg2.payload = ascii;\n return [null,msg1,msg2];\n}\n else{\n global.set(\"flagStart\",false);\n global.set(\"flag2\",false);\n msg1.payload = false;\n msg2.payload = \"ID unvalable\"\n return [null,msg1,msg2];\n\n}\nbreak;\ncase \"StopTransaction\":\n var Stop = msg.payload.data.idTagInfo.status\n var IDTstop = global.get(\"TagId\")\n if (Stop == \"Accepted\"){\n global.set(\"flagStop\",true)\n global.set(\"flagStart\",false)\n global.set(\"FlagTimer\",false)\n}\nbreak;\ncase \"ChangeConfiguration\":\n var ocppID = msg.ocpp.MessageId\n var Key = msg.payload.data.key\n var Value = msg.payload.data.value\n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n key: Key,\n value: Value\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"CancelReservation\":\n var ocppID = msg.ocpp.MessageId\n var IDreservation = msg.payload.data.reservationId;\n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n ReservationId: IDreservation\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"ChangeAvailability\":\n var ocppID = msg.ocpp.MessageId\n var ConnectorId = msg.payload.data.connectorId;\n var Type = msg.payload.data.type;\n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n connectorId: ConnectorId,\n type:Type,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"ClearCache\":\n var ocppID = msg.ocpp.MessageId\n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"ClearChargingProfile\":\n var ocppID = msg.ocpp.MessageId\n var Id = msg.payload.data.id;\n var ConnectorId = msg.payload.data.connectorId;\n var ChargingProfilePurpose = msg.payload.data.chargingProfilePurpose;\n var StackLevel = msg.payload.data.stackLevel;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n id: Id,\n connectorId:ConnectorId,\n chargingProfilePurpose:ChargingProfilePurpose,\n stackLevel: StackLevel,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"DataTransfer\":\n var ocppID = msg.ocpp.MessageId\n var VendorId = msg.payload.data.vendorId;\n var MessageId = msg.payload.data.messageId;\n var Data = msg.payload.data.data;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n vendorId: VendorId,\n vessageId:MessageId,\n data:Data,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"GetCompositeSchedule\":\n var ocppID = msg.ocpp.MessageId\n var ConnectorId = msg.payload.data.connectorId;\n var Duration = msg.payload.data.duration;\n var ChargingRateUnit = msg.payload.data.chargingRateUnit;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n connectorId:ConnectorId,\n duration:Duration,\n chargingRateUnit:ChargingRateUnit,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"GetConfiguration\":\n var ocppID = msg.ocpp.MessageId\n var Key = msg.payload.data.key;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n key:Key,\n }\n return [null,null,null,msg4];\nbreak;\ncase \"GetDiagnostics\":\n var ocppID = msg.ocpp.MessageId;\n var Location = msg.payload.data.location;\n var Retries = msg.payload.data.retries;\n var RetryInterval = msg.payload.data.retryInterval;\n var StartTime = msg.payload.data.startTime;\n var StopTime = msg.payload.data.stopTime;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n location:Location,\n retries:Retries,\n retryInterval:RetryInterval,\n startTime:StartTime,\n stopTime:StopTime,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"GetLocalListVersion\":\n var ocppID = msg.ocpp.MessageId\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"RemoteStartTransaction\":\n var ocppID = msg.ocpp.MessageId\n var ConnectorId = msg.payload.data.connectorId;\n var IdTag = msg.payload.data.idTag;\n var ChargingProfile = msg.payload.data.chargingProfile;\n var TransactionId = msg.payload.data.chargingProfile.transactionId;\n var StackLevel = msg.payload.data.chargingProfile.stackLevel;\n var ChargingProfilePurpose= msg.payload.data.chargingProfile.chargingProfilePurpose;\n var ChargingProfileKind= msg.payload.data.chargingProfile.chargingProfileKind;\n var RecurrencyKindd= msg.payload.data.chargingProfile.recurrencyKind;\n var ValidFrom= msg.payload.data.chargingProfile.validFrom;\n var ValidTo= msg.payload.data.chargingProfile.validTo;\n var ChargingSchedule= msg.payload.data.chargingSchedule;\n var Duration= msg.payload.data.chargingProfile.chargingSchedule.duration;\n var StartSchedule= msg.payload.data.chargingProfile.chargingSchedule.startSchedule;\n var ChargingRateUnit= msg.payload.data.chargingProfile.chargingSchedule.chargingRateUnit;\n var ChargingSchedulePeriod= msg.payload.data.chargingProfile.chargingSchedule.chargingSchedulePeriod;\n var MinChargingRate= msg.payload.data.chargingProfile.chargingSchedule.minChargingRate;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n connectorId:ConnectorId,\n idTag:IdTag,\n chargingProfile:{\n transactionId:TransactionId,\n stackLevel:StackLevel,\n chargingProfilePurpose:ChargingProfilePurpose,\n chargingProfileKind:ChargingProfileKind,\n recurrencyKindd:RecurrencyKindd,\n validFrom:ValidFrom,\n validTo:ValidTo,\n chargingSchedule:{\n duration:Duration,\n startSchedule:StartSchedule,\n chargingRateUnit:ChargingRateUnit,\n chargingSchedulePeriod:ChargingSchedulePeriod,\n minChargingRate:MinChargingRate,\n }}}\n return [null,null,null,msg4];\nbreak;\n\ncase \"RemoteStopTransaction\":\n var ocppID = msg.ocpp.MessageId\n var TransactionId = msg.payload.data.transactionId;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n transactionId : TransactionId\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"ReserveNow\":\n var ocppID = msg.ocpp.MessageId\n var ConnectorId = msg.payload.data.connectorId;\n var ExpiryDate = msg.payload.data.expiryDate;\n var IdTag = msg.payload.data.idTag;\n var ParentIdTag = msg.payload.data.parentIdTag;\n var ReservationId = msg.payload.data.reservationId;\n \n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n connectorId:ConnectorId,\n expiryDate:ExpiryDate,\n idTag:IdTag,\n parentIdTag:ParentIdTag,\n reservationId:ReservationId,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"Reset\":\n var ocppID = msg.ocpp.MessageId\n var Type = msg.payload.data.type;\n\n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n type:Type,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"SendLocalList\":\n var ocppID = msg.ocpp.MessageId\n var ListVersion = msg.payload.data.listVersion;\n var LocalAuthorizationList = msg.payload.data.localAuthorizationList;\n var UpdateType = msg.payload.data.updateType;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n listVersion:ListVersion,\n localAuthorizationList:LocalAuthorizationList,\n updateType:UpdateType,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"SetChargingProfile\":\n var ocppID = msg.ocpp.MessageId\n var ConnectorId = msg.payload.data.connectorId;\n var CsChargingProfiles = msg.payload.data.csChargingProfiles;\n var TransactionId = msg.payload.data.csChargingProfiles.transactionId;\n var StackLevel = msg.payload.data.csChargingProfiles.stackLevel;\n var ChargingProfilePurpose= msg.payload.data.csChargingProfiles.chargingProfilePurpose;\n var ChargingProfileKind= msg.payload.data.csChargingProfiles.chargingProfileKind;\n var RecurrencyKindd= msg.payload.data.csChargingProfiles.recurrencyKind;\n var ValidFrom= msg.payload.data.csChargingProfiles.validFrom;\n var ValidTo= msg.payload.data.csChargingProfiles.validTo;\n var ChargingSchedule= msg.payload.data.csChargingProfiles.chargingSchedule;\n var Duration= msg.payload.data.csChargingProfiles.chargingSchedule.duration;\n var StartSchedule= msg.payload.data.csChargingProfiles.chargingSchedule.startSchedule;\n var ChargingRateUnit= msg.payload.data.csChargingProfiles.chargingSchedule.chargingRateUnit;\n var ChargingSchedulePeriod= msg.payload.data.csChargingProfiles.chargingSchedule.chargingSchedulePeriod;\n var MinChargingRate= msg.payload.data.csChargingProfiles.chargingSchedule.minChargingRate;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n connectorId:ConnectorId,\n csChargingProfiles:{\n transactionId:TransactionId,\n stackLevel:StackLevel,\n chargingProfilePurpose:ChargingProfilePurpose,\n chargingProfileKind:ChargingProfileKind,\n recurrencyKindd:RecurrencyKindd,\n validFrom:ValidFrom,\n validTo:ValidTo,\n chargingSchedule:{\n duration:Duration,\n startSchedule:StartSchedule,\n chargingRateUnit:ChargingRateUnit,\n chargingSchedulePeriod:ChargingSchedulePeriod,\n minChargingRate:MinChargingRate,\n }}}\n return [null,null,null,msg4];\nbreak;\n\ncase \"TriggerMessage\":\n var ocppID = msg.ocpp.MessageId\n var RequestedMessage = msg.payload.data.requestedMessage;\n var ConnectorId = msg.payload.data.connectorId;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n requestedMessage:RequestedMessage,\n connectorId:ConnectorId,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"UnlockConnector\":\n var ocppID = msg.ocpp.MessageId\n var connectorId = msg.payload.data.connectorId;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n connectorId:ConnectorId,\n }\n return [null,null,null,msg4];\nbreak;\n\ncase \"UpdateFirmware\":\n var ocppID = msg.ocpp.MessageId\n var Location = msg.payload.data.location;\n var Retries = msg.payload.data.retries;\n var RetrieveDate = msg.payload.data.retrieveDate;\n var RetryInterval = msg.payload.data.retryInterval;\n \n msg4.payload = {\n ID:ocppID,\n OcppCommand:command,\n location:Location,\n retries:Retries,\n retrieveDate:RetrieveDate,\n retryInterval:RetryInterval\n }\n return [null,null,null,msg4];\nbreak\n}\n","outputs":4,"noerr":0,"x":1070,"y":200,"wires":[["b72d1880.7b67c8"],["3c217f35.fa6f2"],["b336b5bc.283fe8"],["8aefd191.eb67d"]]},{"id":"3c217f35.fa6f2","type":"modbus-write","z":"6692752d.2bb74c","name":"Inicio","showStatusActivities":true,"showErrors":false,"unitid":"1","dataType":"Coil","adr":"400","quantity":"1","server":"df796c74.df3f2","x":1250,"y":160,"wires":[[],[]]},{"id":"b336b5bc.283fe8","type":"modbus-write","z":"6692752d.2bb74c","name":"Usuario HMI","showStatusActivities":true,"showErrors":false,"unitid":"1","dataType":"MHoldingRegisters","adr":"400","quantity":"8","server":"df796c74.df3f2","x":1270,"y":200,"wires":[[],[]]},{"id":"5cacab98.6025b4","type":"subflow:b26ad236.0dc21","z":"6692752d.2bb74c","name":"Stop Transaction","x":410,"y":200,"wires":[["65477198.529cd"]]},{"id":"bb95af16.ca4e8","type":"inject","z":"6692752d.2bb74c","name":"ID","topic":"","payload":"010203AB","payloadType":"global","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":180,"wires":[["142b2080.5eb18"]]},{"id":"9ee4c466.a18728","type":"ocpp-remote-cs","z":"","name":"ocpp","url":"$(URLOCPP)"}]`

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [13 August 2018 11:31 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/19 "2018-08-13T11:31:02Z")

</div>

so what ocpp node and what mobius node are you using?

---

<div class="post-metadata">

### Author: ![glconceicao](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/glconceicao/32/1657_2.png) [@glconceicao](https://discourse.nodered.org/u/glconceicao)
#### Post date: [13 August 2018 11:40 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/20 "2018-08-13T11:40:12Z")

</div>

the OCPP opens the websocket with de central system, and is the node that i have problem. becausa the websocket opens independent of the flow.

the modbus make de conection with the HMI.

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [13 August 2018 11:53 UTC](https://discourse.nodered.org/t/variable-input-on-node/2189/21 "2018-08-13T11:53:26Z")

</div>

I was looking for the actual name of the two nodes. There are a couple mobius nodes and OCPP nodes. By supplying the names of the nodes you installed, it may help debug the issue.

That said, not having eithor Mobius or an OCPP divide, I'll be stepping out of this conversation, but hopefully someone else looking at all the info will be able to help. Good luck.

[Next page](https://discourse.nodered.org/t/variable-input-on-node/2189.md?page=2)
