If your interested in this project:


Here is what you'll need:

   1. a Google Home, Mini, Max, Nest Hub or smart phone running Google Assistance


      an Amazon Alexa device - such as an Echo dot, Echo, Echo Plus, etc.

    2. a (free) account with IFTTT

    3. a (free or paid) account with Pushbullet

    4. an Olimex ESP32-PoE-ISO which you can get  in North America from Mouser or Digikey

    5. this open source Arduino code

             which uses other libraries (with due credit given in the comments of the code itself)

    6. optional LED and resistor


Here is how you set it up (this is at the 100 foot level, I'm not going to go into great detail - you're smart and can figure it out):

    In IFTTT, you link your Google / Alexa device to your IFTTT account

     In IFTTT, you link your IFTTT account to your PushBullet account

     In IFTTT, you set up an IFTTT applet to respond to a specific phrase

          for example:  

                the 'If This' option is 'Google Assistant' ,

                       'Say a simple phrase', which you can set to:

                       "turn on my computer", "turn my computer on", "turn on my pc"


                the 'Then That' option is to us PushBullet 

                      to send a note, where:

                         the title is "Wakeup on LAN", and 

                         the message is the MAC Address of the computer you want to wake up

    You update the Arduino code to include your PushBullet Access Token (found on your Pushbullet Settings window)

    You update the Olimex ESP32-PoE-ISO with the updated Arduino code

    You plug your Olimex ESP32-PoE-ISO into your network


To make it work:

    You say (for example) "OK Google, turn on my computer", or 

     press the user button (But1) on the Olimex board


Here are some things which I learned along the way:

i) an Arduino UNO with an Ethernet hat didn't work for me, the ESP8266 couldn't handle the secured connection with PushBullet

ii) there aren't too many ESP32 boards with an Ethernet connector built in, but the Olimex ESP32-PoE-ISO works fine

iii) the Olimex ESP32-PoE-ISO has a forefather, the Olimex ESP32-PoE; the Olimex ESP32-PoE does not have power isolation which the Olimex ESP32-PoE-ISO does have (with limits), which means the Olimex ESP32-PoE and improper handling can equal a very bad situation

iv) in a later release of the Arduino code I added support for a flashing LED to show the status of the LAN and Pushbullet connection.   For this I had to put an appropriate resistor between the LED and the pin on the Olimex ESP32-PoE that controlled the LED.  In my case I used a Blue LED and used a 1K ohm resistor.  When I did not use the resistor I permanently fried the Olimex ESP32-PoE card and had to  get a new one.


If your computer is not set up to respond to Wakeup on LAN requests:

Here are some instructions on how to set your computer up to accept a WOL command over your network


My remaining step (now compelte!):

I've made a 3d printed enclosure for the card, this to replace the knock-off Tupperware container that I had used in the past.  

You can download the stl file from https://www.thingiverse.com/thing:3857281



Finally, and as a bonus for reading this far, if you want to turn off your (Windows) computer with your voice, please check out a freeware program I wrote called Push2Run