# Exhibition control project

**URL:** <https://discourse.nodered.org/t/exhibition-control-project/16512>\
**Category:** General\
**Created:** [9 October 2019 16:08 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512 "2019-10-09T16:08:44Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![mindthegap](https://avatars.discourse-cdn.com/v4/letter/m/3d9bf3/32.png) [@mindthegap](https://discourse.nodered.org/u/mindthegap)\
**Post date:** [9 October 2019 16:08 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/1 "2019-10-09T16:08:44Z")

</div>

I'm looking for a way to implement a small exhibition control with Node-RED. Main functions are WOL and shutdown of some PCs and their Alive state via UDP or ping.

a HTML floor plan would be nice

How can i implent a cron-tab with a scheduled WOL/Shutdown?

How can I edit the times from an html interface?

has anyone realized something similar?

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [9 October 2019 17:20 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/2 "2019-10-09T17:20:59Z")

</div>

You can send [wol packets with this node](https://flows.nodered.org/node/node-red-node-wol), or via exec-node if you have some executable available for wol packets.

You could use an inject node and schedule it.

If you want a web interface check node-red-dashboard.

---

<div class="post-metadata">

**Author:** ![BartButenaers](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bartbutenaers/32/10476_2.png) [@BartButenaers](https://discourse.nodered.org/u/BartButenaers)\
**Post date:** [9 October 2019 18:22 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/3 "2019-10-09T18:22:12Z")

</div>

> [@mindthegap](#):
>
> a HTML floor plan would be nice

Hi Dietmar,  
Perhaps you can try our new [node-red-contrib-ui-svg](https://discourse.nodered.org/t/announce-node-red-contrib-ui-svg-first-beta/16210/73) node to accomplish this. But keep in mind that it is the first beta version, and it still contains some bugs and missing basic features ...  
Bart

---

<div class="post-metadata">

**Author:** ![mindthegap](https://avatars.discourse-cdn.com/v4/letter/m/3d9bf3/32.png) [@mindthegap](https://discourse.nodered.org/u/mindthegap)\
**Post date:** [9 October 2019 19:16 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/4 "2019-10-09T19:16:38Z")

</div>

ok, I can make a scheduler with the inject node. but how can I read a list of mac addresses to send the Wol? where can I save this?

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [9 October 2019 20:01 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/5 "2019-10-09T20:01:34Z")

</div>

As the information of the node states:

> You may instead set `msg.mac` to dynamically set the target device mac to wake up.

You can inject `msg.mac` using a change (or function) node.  
Refer to the node-red documentation for further information.

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [9 October 2019 20:42 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/6 "2019-10-09T20:42:21Z")

</div>

> [@mindthegap](#):
>
> but how can I read a list of mac addresses to send the Wol

Store them in and array in flow or global context.

Use an inject and a change (or function) node to setup the array.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [9 October 2019 21:11 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/7 "2019-10-09T21:11:16Z")

</div>

There is also the new cron-plus node if you need good scheduling capabilities.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [9 October 2019 21:12 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/8 "2019-10-09T21:12:41Z")

</div>

Yes, now that we have persistent storage, this is very practical. I have a set of inject nodes on the 1st tab so it gets injected first. Just delay other injects by 1/2 second so that your setup has a chance to finish.

---

<div class="post-metadata">

**Author:** ![mindthegap](https://avatars.discourse-cdn.com/v4/letter/m/3d9bf3/32.png) [@mindthegap](https://discourse.nodered.org/u/mindthegap)\
**Post date:** [10 October 2019 09:56 UTC](https://discourse.nodered.org/t/exhibition-control-project/16512/9 "2019-10-10T09:56:41Z")

</div>

ok, and I can change this list from my vuejs interface. the user can edit the list or add new PCs.
