diff --git a/_deploy b/_deploy
index 0cadd801b97..917e54f9d62 160000
--- a/_deploy
+++ b/_deploy
@@ -1 +1 @@
-Subproject commit 0cadd801b97d43356af5cf1bc02a6e041ccbebb0
+Subproject commit 917e54f9d6257ae93a7976ed1daedc013a4af9f9
diff --git a/source/_posts/2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown b/source/_posts/2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown
index d08787fcc20..49f336d48a9 100644
--- a/source/_posts/2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown
+++ b/source/_posts/2015-09-11-different-ways-to-use-mqtt-with-home-assistant.markdown
@@ -6,7 +6,7 @@ date: 2015-09-11 11:19:38 +0200
date_formatted: "September 11, 2015"
author: Fabian Affolter
comments: true
-categories: how-to
+categories: how-to mqtt
og_image: /images/blog/2015-09-mqtt/arduino.png
---
diff --git a/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown b/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown
new file mode 100644
index 00000000000..1cbad7a32ac
--- /dev/null
+++ b/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown
@@ -0,0 +1,217 @@
+---
+layout: post
+title: "Report the temperature with ESP8266 to MQTT"
+description: "Step by step tutorial to use ESP8266 and a HDC1008 to ."
+date: 2015-10-11 12:10:00 -0700
+date_formatted: "October 11, 2015"
+author: Paulus Schoutsen
+comments: true
+categories: how-to mqtt esp8266
+og_image: /images/blog/2015-10-esp8266-temp/ha-sensor.png
+---
+
+I recently learned about the ESP8266, a $5 chip that includes WiFi and is Arduino compatible. This means
+that all your DIY projects can now be done for a fraction of the price.
+
+For this tutorial, I'll walk through how to get going with ESP8266, get the temperature and humidity and
+report it to MQTT where Home Asssistant can pick it up.
+
+
+
+Home Assistant will keep track of historical values and allow you to integrate it into automation.
+
+
+
+
+### Components
+
+I've been using Adafruit for my shopping:
+
+ - [Adafruit HUZZAH ESP8266 Breakout](http://www.adafruit.com/product/2471) ([assembly instructions](https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/assembly))
+ - [Adafruit HDC1008 Temperature & Humidity Sensor Breakout Board](http://www.adafruit.com/product/2635) ([assembly instructions](https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout/assembly))
+ - [MQTT server](/components/mqtt.html#picking-a-broker)
+
+_Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires,
+soldering iron + wire, Serial USB cable._
+
+### Connections
+
+On your breadboard, make the following connections from your ESP8266 to the HDC1008:
+
+| ESP8266 | HDC1008 |
+| ------- | ------- |
+| GND | GND
+| 3V | Vin
+| 14 | SCL
+| #2 | SDA
+
+_I picked `#2` and `14` myself, you can configure them in the sketch._
+
+### Preparing your IDE
+
+Follow [these instructions](https://github.com/esp8266/Arduino#installing-with-boards-manager) on how
+to install and prepare the Arduino IDE for ESP8266 development.
+
+After you're done installing, open the Arduino IDE, in the menu click on `sketch` -> `include library` ->
+`manage libraries` and install the following libraries:
+
+- PubSubClient by Nick 'O Leary
+- Adafruit HDC1000
+
+### Sketch
+
+If you have followed the previous steps, you're all set.
+
+ - Open Arduino IDE and create a new sketch (`File` -> `New`)
+ - Copy and paste the below sketch to the Arduino IDE
+ - Adjust the values line 6 - 14 to match your setup
+ - Optional: If you want to connect to an MQTT server without a username or password, adjust line 63.
+ - To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device
+ keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to
+ indicate it is in upload mode.
+ - Press the upload button in Arduino IDE
+ - Open the serial monitor (`Tools` -> `Serial Monitor`) to see the output from your device
+
+This sketch will connect to your WiFi network and MQTT broker. It will read the temperature and humidity
+from the sensor every second. It will report it to the MQTT server if the difference is > 1 since last
+reported value. Reports to the MQTT broker are sent with retain set to `True`. This means that anyone
+connecting to the MQTT topic will automatically be notified of the last reported value.
+
+```cpp
+
+#include
+#include
+#include
+#include
+
+#define wifi_ssid "YOUR WIFI SSID"
+#define wifi_password "WIFI PASSWORD"
+
+#define mqtt_server "YOUR_MQTT_SERVER_HOST"
+#define mqtt_user "your_username"
+#define mqtt_password "your_password"
+
+#define humidity_topic "sensor/humidity"
+#define temperature_topic "sensor/temperature"
+
+WiFiClient espClient;
+PubSubClient client(espClient);
+Adafruit_HDC1000 hdc = Adafruit_HDC1000();
+
+void setup() {
+ Serial.begin(115200);
+ setup_wifi();
+ client.setServer(mqtt_server, 1883);
+
+ // Set SDA and SDL ports
+ Wire.begin(2, 14);
+
+ // Start sensor
+ if (!hdc.begin()) {
+ Serial.println("Couldn't find sensor!");
+ while (1);
+ }}
+
+void setup_wifi() {
+ delay(10);
+ // We start by connecting to a WiFi network
+ Serial.println();
+ Serial.print("Connecting to ");
+ Serial.println(wifi_ssid);
+
+ WiFi.begin(wifi_ssid, wifi_password);
+
+ while (WiFi.status() != WL_CONNECTED) {
+ delay(500);
+ Serial.print(".");
+ }
+
+ Serial.println("");
+ Serial.println("WiFi connected");
+ Serial.println("IP address: ");
+ Serial.println(WiFi.localIP());
+}
+
+void reconnect() {
+ // Loop until we're reconnected
+ while (!client.connected()) {
+ Serial.print("Attempting MQTT connection...");
+ // Attempt to connect
+ // If you do not want to use a username and password, change next line to
+ // if (client.connect("ESP8266Client")) {
+ if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
+ Serial.println("connected");
+ } else {
+ Serial.print("failed, rc=");
+ Serial.print(client.state());
+ Serial.println(" try again in 5 seconds");
+ // Wait 5 seconds before retrying
+ delay(5000);
+ }
+ }
+}
+
+bool checkBound(float newValue, float prevValue, float maxDiff) {
+ return newValue < prevValue - maxDiff || newValue > prevValue + maxDiff;
+}
+
+long lastMsg = 0;
+float temp = 0.0;
+float hum = 0.0;
+float diff = 1.0;
+
+void loop() {
+ if (!client.connected()) {
+ reconnect();
+ }
+ client.loop();
+
+ long now = millis();
+ if (now - lastMsg > 1000) {
+ lastMsg = now;
+
+ float newTemp = hdc.readTemperature();
+ float newHum = hdc.readHumidity();
+
+ if (checkBound(newTemp, temp, diff)) {
+ temp = newTemp;
+ Serial.print("New temperature:");
+ Serial.println(String(temp).c_str());
+ client.publish(temperature_topic, String(temp).c_str(), true);
+ }
+
+ if (checkBound(newHum, hum, diff)) {
+ hum = newHum;
+ Serial.print("New humidity:");
+ Serial.println(String(hum).c_str());
+ client.publish(humidity_topic, String(hum).c_str(), true);
+ }
+ }
+}
+```
+
+### Configuring Home Assistant
+
+The last step is to integrate the sensor values into Home Assistant. This can be done by setting up
+Home Assistant to connect to the MQTT broker and subscribe to the sensor topics.
+
+```yaml
+mqtt:
+ broker: YOUR_MQTT_SERVER_HOST
+ username: your_username
+ password: your_password
+
+sensor:
+ platform: mqtt
+ name: "Temperature"
+ state_topic: "sensor/temperature"
+ qos: 0
+ unit_of_measurement: "ÂșC"
+
+sensor 2:
+ platform: mqtt
+ name: "Humidity"
+ state_topic: "sensor/humidity"
+ qos: 0
+ unit_of_measurement: "%"
+```
diff --git a/source/images/blog/2015-10-esp8266-temp/ha-sensor.png b/source/images/blog/2015-10-esp8266-temp/ha-sensor.png
new file mode 100644
index 00000000000..be8bf1ae5ca
Binary files /dev/null and b/source/images/blog/2015-10-esp8266-temp/ha-sensor.png differ