With a push of a button, this party box turns all my LIFX lights on, changes the lights to multi colour “disco” mode, plays a party Spotify playlist on all of my Google Home Minis, turns on the living room TV and AppleTV. It then streams a 10+ hour animated disco ball video from YouTube.
All in all, at the push of a button, the party is started!
Once the button is deactivated, the TV turns off, lights go to white, music stops and a sad trombone sound effect plays on the Home Mini’s. This party is officially over.
The battery is connected via a master on/off switch to a voltage regulator board so it can feed a constant 5VDC to the D1 mini. The D1 mini is connected to the E-Stop using the D2 pin. Depth wise, the E-Stop just fits in the case with nothing mounted under it.
The battery also has a 2 pin Molex plug so it can be disconnected from the circuit and plugged into the charger board. It would be nice to install a charging board inside the box with a charging port on the side. But for now, it works.
This whole process incorporates Home Assistant, Node-RED and ESPhome. I used the ESPhome plugin in Home Assistant to flash the firmware on the D1 mini to ESPhome. Now, Home Assistant can see the status of the D1 mini and it’s GPIO pins.
While Home Assistant allows all the devices to “talk”, I’m using the Node-RED plugin for controlling the logic of the operation.
I don’t think there is too much to explain with the Node-RED flow. It checks for the state of the E-Stop (from Home Assistant), if on, activates party mode. If it’s turned off, it returns the house to a relatively normal state (with the added sad sound effects).