I’m not going to lie, there are many times I ended up in bed “accidentally” then absolutely hated getting back up and turning everything off. Voice commands are great until you realise that speaking to other women online (even if they are names Alexa or Assistant) is a “
A “goodnight” button
In order for this to work, my wife has to be on board. If you convinced your better half to a new automation, you are basically half way there. So tempt her into this automation I’m going to use the MiHome switch to perform the following functions:
- toggle bed lamp
- toggle main lamp
- toggle between light sources automatically
- turn everything else off when ready
Yes you could do this with Tasker if you don’t want to get your hands dirty, but a physical switch 3M taped to the side of your bed is the most accessible way of doing it. Trust me, I’m an automation… um… who am I anyway! You are reading this because the idea is awesome.
I spoke about the MiHome and NodeRED integration before. You should read the article about Gateway and NodeRED and MiHome button in NodeRED to get up to speed. From these
- click (toggle bedside lamp – it is used more often)
- double click (toggle top light)
- hold (turn off everything)
In my setup I used:
- Yeelight bulbs (I have RGB, if you don’t care about colour use white ones)
- MiHome Button
- MiHome Gateway
NodeRED Flow – “goodnight” button
I’m recycling a lot of code that I already covered in the previous
Single click
When the button is pressed, I send the toggle command to the lightbulb. The status of the bulb (including the colour info) is held in a global variable and I simply change the state of the bulb to the opposite one. At the same time, I’m sending a command to turn the other bulb off (this is the optional behaviour).
Double click
This is a copy of the single click action. I just simply send the information to another bulb. Pretty much a copy and paste job with some small changes to the global variables which store the information for the correct ligthbulb.
Long click
I picked about 6 seconds to avoid the accidental shutdowns. NodeRED is able to tell the time based on the button press and button released actions. You could map multiple commands if you want (press for 5 seconds to turn lights off, press for 10 sec to turn all of and arm an alarm etc.).
When the button is clicked, a message to turn off the lights is issued. There is no uniformed way right now to do so, as I use a combination of smart sockets (MQTT) and other lights.
My computers go to sleep thanks to AutoRemote notification which is sent to EventGhost. Then the program puts the PCs to sleep. I wrote more about this in this
Conclusion
I got a fair share of comments after I moaned about lack of the granular control in IKEA smart home. This is the reason why I’m conscious of it. Automating things at this level would cost you more money if you would like to use IKEA
Feel free to join the discussion in this Reddit post.
Project Download
Download project files here. Bear in mind that Patreon supporters have early access to project files and videos.