This is a two part app. Code in the arduino folder is supposed to be compiled
and run on an Arduino. Code in the server-app is supposed to bu run on the
Unraid server in a docker container.
- Install the
Virtual Machine Wake On Lanplugin on your unraid server.
Note: You might have to enable the plugin in the VM settings page in Unraid. Turn onCheck "Advanced" mode. - Edit
arduino/config.hand compile and run on a D1 mini.
uidis the ID the VM has on your Unraid server.
pinis the pin where you have the switch for the VM.
activityPinis the pin that you connect to a LED that shows the status of the virtual machine. You'll have to figure out how the pins should be hooked up and configured.
I'm sorry but I currently don't have time to draw a schematic. - Install the accompanying docker container on your Unraid server.

- BONUS! The design for the housing can be found in the lasercut.pdf file.
Use a lasercutting service to cut your own little box to house the controller in. I used https://cotter.dk
For all like me that are new-ish to Arduino, some advice to get this project rolling:
- When using the D1 mini (and that's what it is made for), you need the board manager files for the Arduino IDE, insert http://arduino.esp8266.com/stable/package_esp8266com_index.json into the "Additional Board Manager URL" field.
- Then load the files via "Tools > Board", look for esp8266 (I am on a different machine right now without the IDE, so the labels might be a bit off).
- Select this board afterwards: "LOLIN(WEMOS)D1 R2 & mini"
Additionally, you will need two libraries that can be found on github and are required by the project.
- https://github.com/koenieee/WakeOnLan-ESP8266
- https://github.com/JoaoLopesF/RemoteDebug
- (unzip and drop into the libraries folder)
When editing the config file, you only need to edit the first 4 lines of each VM, they are as follows:
- MAC (has to be unique)
- UUID
- switch pin
- LED pin
MAC and UUID can be found in the unRAID VM manager, advanced view
This is a sample layout for two VMs including a safety for the destroy function by using two buttons:


