substitutions:
devicename: 18650-esp
Device_Location: Garage-Test
update_interval: !secret d1-update_interval
ipaddress: 10.0.0.92
platform: ESP8266
esphome:
name: 18650-esp
friendly_name: "18650-esp Display"
esp8266:
board: nodemcuv2
# Enable logging
logger:
level: WARN
wifi:
ssid: !secret mogwai_wifi_name
password: !secret mogwai_wifi_password
<<: !include common/network.yaml
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "18650-esp Fallback Hotspot"
password: "9WKClRAQzN67"
# Enable Home Assistant API
api:
encryption:
key: !secret mogwai_api_key
ota:
platform: esphome
password: !secret mogwai_ota_key
captive_portal:
sun:
latitude: !secret latitude
longitude: !secret longitude
<<: !include common/mqtt-onb.yaml
<<: !include common/time.yaml
<<: !include common/website.yaml
# Example configuration entry for ESP8266
i2c:
sda: D1
scl: D2
scan: true
id: bus_a
frequency: 400Mhz
switch:
- <<: !include common/nodemcu-led-onboard1.yaml
- <<: !include common/restart.yaml
sensor:
- platform: sun
name: Sun Elevation
type: elevation
update_interval: $update_interval
- platform: sun
name: Sun Azimuth
type: azimuth
update_interval: $update_interval
text_sensor:
- <<: !include common/version.yaml
- platform: mqtt_subscribe
name: "Lounge Room Temperature from MQTT"
id: lounge_temp
topic: /sensors/nodemcu-02/sensor/temperature/state
- platform: mqtt_subscribe
id: family_temp
name: "Family Room Temperature from MQTT"
topic: /sensors/nodemcu-01/sensor/temperature/state
- platform: mqtt_subscribe
id: study_temp
name: "Study - Node 3 Temperature from MQTT"
topic: /sensors/nodemcu-03/sensor/temperature/state
- platform: homeassistant
id: weatherst_temp
entity_id: sensor.weather_station_temp
internal: True
- platform: homeassistant
id: lora_temp
entity_id: sensor.garage_lora_wan_temp
internal: True
- platform: homeassistant
name: "Weather Forecast From Home Assistant"
entity_id: weather.dakabin
id: openweathermap
internal: True
- platform: sun
name: Sun Next Sunrise
type: sunrise
id: sunrise
internal: True
- platform: sun
name: Sun Next Sunset
type: sunset
id: sunset
internal: True
- platform: homeassistant # Forecast minimal temperature
id: today_min
entity_id: sensor.dakabin_temp_min_0
- platform: homeassistant # Forecast maximal temperature
id: today_max
entity_id: sensor.dakabin_temp_max_0
internal: True
- platform: homeassistant # Forecast icon
id: today_icon
entity_id: sensor.dakabin_icon_descriptor_0
internal: True
- platform : homeassistant
id: today_rain
entity_id: sensor.dakabin_rain_chance_0
internal: True
- platform : homeassistant
id: today_rain_amount_range
entity_id: sensor.dakabin_rain_amount_range_0
internal: True
- platform : homeassistant
id: today_condition
entity_id: weather.dakabin_hourly
internal: True
- platform : homeassistant
id: today_rain_prob
entity_id: sensor.dakabin_rain_chance_0
internal: True
- platform : homeassistant
id: today_cloud
entity_id: sensor.openweathermap_forecast_cloud_coverage
internal: True
font:
- file: "Ac437_IBM_CGAthin.ttf"
id: ibm
size: 8
- file: "beastly.ttf"
id: slkscr8
size: 12
- file: "160MKSDAL.ttf"
id: mksdal
size: 36
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
address: 0x3C
lambda: |-
it.print(0, 0, id(slkscr8), "DATA1 - Disk Space");
it.printf(0, 45, id(mksdal), TextAlign::BASELINE_LEFT, " %s", id(today_min).state.c_str());
it.strftime(0, 60, id(ibm), TextAlign::BASELINE_LEFT, " %l:%M", id(homeassistant_time).now());
interval:
- <<: !include common/version-interval.yaml
- <<: !include common/whatami.yaml
- interval: !secret d1-update_interval
then:
- mqtt.publish:
topic: /sensors/18650-esp/forecast
payload: !lambda |-
return id(today_min).state;
- mqtt.publish:
topic: /sensors/18650-esp/forecast-max
payload: !lambda |-
return id(today_max).state;
- mqtt.publish:
topic: /sensors/18650-esp/forecast-rain
payload: !lambda |-
return id(today_rain).state;
- mqtt.publish:
topic: /sensors/18650-esp/forecast-cloud
payload: !lambda |-
return id(today_cloud).state;
- mqtt.publish:
topic: /sensors/18650-esp/forecast-icon
payload: !lambda |-
return id(today_icon).state;
- mqtt.publish:
topic: /sensors/18650-esp/forecast-condition
payload: !lambda |-
return id(today_condition).state;
- mqtt.publish:
topic: /sensors/18650-esp/forecast-weather
payload: !lambda |-
return id(openweathermap).state;
- mqtt.publish:
topic: /sensors/18650-esp/forecast-rain-prob
payload: !lambda |-
return id(today_rain_prob).state;
- mqtt.publish:
topic: /sensors/18650-esp/sunrise
payload: !lambda |-
return id(sunrise).state;
- mqtt.publish:
topic: /sensors/18650-esp/sunset
payload: !lambda |-
return id(sunset).state;