This app was mentioned in 9 comments, with an average of 1.00 upvote
Why having extra hardware for a software only problem?
I don't know any specific solution but Home Assistant (if you already use it) supports timers. You also could use a tasker script with a plugin.
You could also use alarms on your phone (also available via "Hey Google") - you wont miss these easily even from another room.
Yep, I do it this way too. I'm reading the battery (and some other characteristics) and sending them via MQTT as JSON to HA with this plugin.
Works flawlessly, although, on some Xiaomi phones the MIUI sets the plugin to "Battery saving mode" at every restart and then Tasker can't use it as it goes to sleep until I manually set it to "No battery saving".
There are a lot of plug in devices that go inline with say an existing lamp. The sonoff devices are wifi and pretty cheap. I also like Z-wave for these. Alternatively some smart light bulbs like hue are good, just remember to take them out if you leave the apartment. (Save your old bulbs to put back in)
Also if you setup mqtt, you can have things send data to it that which HA can then read and act on. Then if you're technically inclined, get some esp8266 chips and make some temp sensors for each room or even your own mqtt buttons to trigger actions.
Also if you are an android user, you can make tasker integrations that talk to MQTT with the mqtt publisher.
The big things I think to look for are wireless HA devices. (Think Zigbee, Z-wave and wifi)
I use a MQTT plugin with some tasks to integrate with Tasker. https://play.google.com/store/apps/details?id=net.nosybore.mqttpublishplugin
Tasker is pretty much all around more powerful than IFTTT at using device level triggers. IFTTT is pretty much only better at connecting online services together.
Yes you need a MQTT Broker (Server). The most common option for a Broker is mosquitto, it is available as a hass.io add-on.
If you don't want to use a dedicated server, you can use the one embedded within HA itself, they recommend a proper server though, but for a single value it may be feasible.
On your phone with tasker you install the tasker MQTT plugin.
MQTT works quite simple, you simply define a topic the value is published to, e.g. phone/battery.
On HA you then simply configure the same topic as a new MQTT Sensor with the same topic.
So if you're familiar with C#, it shouldn't be that difficult for you to straight up code in C using the Arduino IDE right to the esp8266s. I'm also a big fan of micropython but I already know python. That's what I'd recommend for programming the esp chips.
As for the architecture, there's a few ways you can go. I use home assistant on my raspberry pi in combination with mosquitto to handle MQTT communications. (I'd recommend learning MQTT for any iot things because it's easy and pretty widely used) I also have influxdb and grafana for certain metrics but also a maria db to store other configuration stuff. The maria db and influxdb data is all stored on my nas, not my raspberry pi to hopefully extend the life of my sd card as well as not having to worry about space. I have all of these running as docker containers on my raspberry pi. I've started to look at NodeRed like others have mentioned here, I just haven't done much with it yet.
There's a lot of advantages of going with something like home assistant rather than write your own (like the many components it supports out of the box) but I also get it if you want to do it all from scratch. If you want to do it all from scratch, you'll need to use a web server of some sort and then probably hook that up to mqtt. If I were to go that route I'd probably use django, falcon or just do something in go because those are my strong suits. There are many different options here. I went with home assistant though because it simplifies a lot of that so I can focus more on the integration.
You can also make a mobile version of your webpage and do something like this to get it on your phone. If you have an android phone, you can use tasker and a mqtt publisher plugin to automate things with mqtt.
To control outlets there are many options. There's the sonoff (which is basically just an esp8266 and a relay) You can also get power supplies that you can toggle on/off like this one which you could control via an esp chip. Or you can do it the hard way. There's also a plethora of zigbee, z-wave, wifi and BLE switches as well as some other proprietary protocols. (Again, this is where something like home assistant shines in making it easy to mix and match without having to write everything from scratch)
For weather, I am currently working on building my own using a photon along with a weather shield and weather meters. I also have a number of esp8266 chips with various temperature and humidity sensors scattered throughout my house. All of this goes into home assistant which puts it into influxdb which I can then generate graphs from in grafana. I also pull in data from darksky.io.
I'd recommend starting small. Install home-assistant on your RPi and hook up a DHT22 to an esp8266 and maybe a sonoff or two. Start automating it and see what you like. Maybe you decide you don't like home assistant and want to write your own thing, if you are using mqtt, you could have your own custom thing running next to home assistant.
Above all have fun. This stuff is really cool and once you get some automation into the mix, it starts to feel like you are living in the future.
I'm using MQTT Publisher to do this.