# Passing Variables

**URL:** <https://discourse.nodered.org/t/passing-variables/68220>\
**Category:** General\
**Created:** [26 September 2022 07:41 UTC](https://discourse.nodered.org/t/passing-variables/68220 "2022-09-26T07:41:55Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dennyhle](https://avatars.discourse-cdn.com/v4/letter/d/dec6dc/32.png) [@dennyhle](https://discourse.nodered.org/u/dennyhle)\
**Post date:** [26 September 2022 07:41 UTC](https://discourse.nodered.org/t/passing-variables/68220/1 "2022-09-26T07:41:55Z")

</div>

Sorry for very basic question. I have a function node that generates a list of media\_players that audio should be played on. I want to pass that variable onto the "group\_members" attribute in the media\_player service.

I know this doesn't work but it's basically what I want to do.

FUNCTION NODE

> `msg.speakers = "media_player.bathroom, media_player.family_room";`

I've also tried an array:

> `msg.speakers = ["media_player.bathroom", "media_player.family_room"];`

CALL SERVICE NODE

> domain: media\_player  
> service: join  
> Data: `{"group_members":"{{ speakers }}" }`

This "hard-coded" way below works but I want to be able to pass it as a variable. What do I need to do?

> Data: `{"group_members":["media_player.bathroom", "media_player.family_room"]}`

Here is my flow:

```auto
[{"id":"41c32b4e.1038e4","type":"api-call-service","z":"d9abccab.6dc37","name":"","server":"c4f9e6a2.5aace8","version":3,"debugenabled":false,"service_domain":"media_player","service":"join","entityId":"","data":"{\"group_members\":\" {{ speakers }} \"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":2300,"y":960,"wires":[[]]},{"id":"48319116.f1a9e","type":"inject","z":"d9abccab.6dc37","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1910,"y":940,"wires":[["4832002c.ec4f5"]]},{"id":"4832002c.ec4f5","type":"function","z":"d9abccab.6dc37","name":"","func":"msg.speakers = [\"media_player.family_room\", \"media_player.guest_bathroom\"];\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2090,"y":960,"wires":[["41c32b4e.1038e4"]]},{"id":"c4f9e6a2.5aace8","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

```

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [26 September 2022 08:00 UTC](https://discourse.nodered.org/t/passing-variables/68220/2 "2022-09-26T08:00:18Z")

</div>

> [@dennyhle](#):
>
> var msg.speakers = "media\_player.bathroom, media\_player.family\_room";

group\_members is an array not a string  
`msg.speakers = ["media_player.bathroom", "media_player.family_room"];` should work

[edit] fixed typo.

---

<div class="post-metadata">

**Author:** ![dennyhle](https://avatars.discourse-cdn.com/v4/letter/d/dec6dc/32.png) [@dennyhle](https://discourse.nodered.org/u/dennyhle)\
**Post date:** [26 September 2022 08:19 UTC](https://discourse.nodered.org/t/passing-variables/68220/3 "2022-09-26T08:19:16Z")

</div>

I should have mentioned that I also tried that and it did not work either. I just double checked again and I got error:  
"Call-service error. Entity ID media\_player.family\_room,media\_player.guest\_bathroom is an invalid entity ID @ data['group\_members'][0]"

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [26 September 2022 09:00 UTC](https://discourse.nodered.org/t/passing-variables/68220/4 "2022-09-26T09:00:35Z")

</div>

You should not have let or var on the front of msg.speakers. you are not creating a new variable, just assigning to to a new property of msg. I have no idea what your code will do or whether this is part of the problem.

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [26 September 2022 09:16 UTC](https://discourse.nodered.org/t/passing-variables/68220/5 "2022-09-26T09:16:40Z")

</div>

The n try

```auto
msg.speakers = '"media_player.bathroom", "media_player.family_room"'

```

and in HA node

```auto
{Data: {"group_members":[{{ speakers }}] }}

```

or use JSONata, select J: in HA node and enter

```auto
{Data: {"group_members": $$.speakers } }

```

and in function use

```auto
msg.speakers = ["media_player.bathroom", "media_player.family_room"];

```

please check capitalisation of property names to.

JSONata example edited by hand as do not have HA installed, may be errors.

```auto
[{"id":"4832002c.ec4f5","type":"function","z":"20bb0f7f9fab47a8","name":"","func":"msg.speakers = [\"media_player.family_room\", \"media_player.guest_bathroom\"];\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":1560,"wires":[["41c32b4e.1038e4"]]},{"id":"48319116.f1a9e","type":"inject","z":"20bb0f7f9fab47a8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":1540,"wires":[["4832002c.ec4f5"]]},{"id":"41c32b4e.1038e4","type":"api-call-service","z":"20bb0f7f9fab47a8","name":"","server":"c4f9e6a2.5aace8","version":3,"debugenabled":false,"service_domain":"media_player","service":"join","entityId":"","data":"{\"group_members\": $$.speakers }}","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":520,"y":1560,"wires":[[]]}]

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [25 November 2022 09:17 UTC](https://discourse.nodered.org/t/passing-variables/68220/6 "2022-11-25T09:17:20Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
