What is this about?

I assume you're familiar with Daniel Eichhorn's ESP8266 Weather Station. I modified it to do a little more.

Hardware changes


WeMos D1 Mini WeatherBug

Software changes

  • Added IFTTT support for getting notifications when indoor temperature is too high or low.
  • Publish indoor temperature over MQTT, so it is accessible via HomeKit with Siri.
  • Made it work with Arduino 1.6.7 by using NTPclient library.


TooCold TooHot SiriTemperature

Background

As you may know, we're having a baby soon! We've been busy preparing the baby's nursery for the last few months. Here in Southern California, the weather is rather consistent, but it does get a little uncomfortable sometimes. When I got my WeMos D1 Mini two weeks ago, I was thinking about putting it to some good use. A temperature sensor for the nursery seemed like a great idea. Rather than just logging the temperature somehwere, I wanted to be notified when the nursery was too cold or hot. Also, it would be nice if the temperature was accessible on all family members' iPhones via HomeKit. And when I saw Daniel Eichhorn's ESP8266 Weather Station, I decided to merge all these into one thing, the WeatherBug. Well, the original idea was to have it hidden somewhere under the crib, hence a 'bug'.

Steps to reproduce

WeatherStation

First thing I would recommend is to get the original WeatherStation code working by following the instructions here.

IFTTT

  • Go enable the IFTTT Maker channel here: (https://ifttt.com/maker)
  • Get your API key.
  • Paste the key here in my WeatherBug code.
  • Make two recipes like this one with an event name of Nursery_Temperature_Low and Nursery_Temperature_High

HomeKit

  • If you're wondering how HomeKit fits into the picture here, first go read this and try to get that working. I've written a fairly detailed guide to make generic ESP8266 based HomeKit accessories.
  • If you notice, the accessories folder also includes a Temperature Sensor. All we need to do is to provide it the temperature value by publishing it over MQTT.
  • You can see a working example of the accessory here in my fork on HAP-NodeJS.

Known issues

  • The UI does freeze when updating sometimes.
  • I think I fixed the hysterisis problem, not sure yet.
  • Some emojis don't work in the IFTTT notification

Future improvements

  • I don't want the entire UI to scroll. Since this is a temperature sensor first, I want the indoor temperature to be static on the screen, the rest of the screen and scroll through different items like forecast, outside temperature, etc.

Done!

  • Try to get Helvetica on this screen. I really don't like Arial..
  • Use HTTPS for IFTTT, not really sure why though..