I am using a oled daughter board over a D1Mini for ir_blaster app. The display was working fine until a particular version of esphome. Don’t remember the working version. But as it stopped working, I testing the device without the display board and the ir_blaster was working. When I install the display noticed too much heat on the display. No changes were done to the yaml file. Only esphome version changed as new version released and i did an update.
I have uploaded the individual photos of breadboard with DHT11, IR transmitter & IR receiver.
# D5 : Transmitter
# D6 : Receiver
# D2 : SDA
# D1 : SCL
# D3 : DHT11
# D7 :
# D8 :
esphome:
name: ir-remote-climate
#platform: esp8266
# board: d1_mini
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: !secret enc_key
ota:
- platform: esphome
password: "ota12345"
wifi:
networks:
- ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Ir-Remote-Climate"
password: "DRZjpD9NDkcR"
captive_portal:
web_server:
port: 80
remote_transmitter:
pin: D5
carrier_duty_percent: 50%
id: remote
time:
- platform: sntp
id: esptime
timezone: Asia/Calcutta
i2c:
sda: D2
scl: D1
scan: true
remote_receiver:
id: rcvr
pin:
number: D7
inverted: true
climate:
- platform: coolix # works with Hall AC unit!
name: "Hall AC"
supports_cool: True
supports_heat: False
receiver_id: rcvr
sensor: hall_temp
#fan_mode: HIGH
visual:
min_temperature: 18
max_temperature: 40
temperature_step: 0.1
min_humidity: 30%
max_humidity: 99%
sensor:
- platform: dht
pin: D3
temperature:
id: hall_temp
name: "Hall Temp"
humidity:
id: hall_hum
name: "Hall Humidity"
# update_interval: 120s
display:
- platform: ssd1306_i2c
model: "SSD1306 64x48"
external_vcc: False
invert: False
rotation: 0
reset_pin: D4
address: 0x3C
update_interval: 120s
id: my_display
pages:
# - id: page1
# lambda: |-
# it.strftime(3, 14, id(font1), TextAlign::BASELINE_LEFT, "%I:%M %p", id(esptime).now());
# //it.strftime(3, 28, id(font3), TextAlign::BASELINE_LEFT, "%A", id(esptime).now());
# it.printf(3, 30, id(font2), TextAlign::BASELINE_LEFT, "%.1f °c", id(hall_temp).state);
# # it.printf(6, 48, id(font2),TextAlign::BASELINE_LEFT, "%.1f %%" , id(hall_hum).state);
- id: page2
lambda: |-
if (id(hall_temp).has_state()){
//it.printf(0, 4, id(font3), "%.1f", id(hall_temp).state);
it.printf(0, 0, id(font4), "%.1f°", id(hall_temp).state);
//it.line(0,25,48,25);
// it.printf(0, 26, id(font3), "%.0f%%", id(hall_hum).state);
}
interval:
- interval: 60s
then:
#- lambda: ESP_LOGD("interval", "interval triggered");
- display.page.show_next: my_display
- component.update: my_display
font:
- file: 'fonts/slkscr.ttf'
id: font1
size: 8
- file: 'fonts/BebasNeue-Regular.ttf'
id: font2
size: 20
- file: 'fonts/BebasNeue-Regular.ttf'
id: font3
size: 25
- file: 'fonts/BebasNeue-Regular.ttf'
id: font4
size: 34
switch:
- platform: template
name: FAN PWR Button
id: fan_pwr_button
turn_on_action:
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0x00CF
command: 0x8976
- platform: template
name: FAN 1 Button
id: fan_1_button
turn_on_action:
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x748B
- platform: template
name: FAN 2 Button
id: fan_2_button
turn_on_action:
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x6F90
- platform: template
name: FAN 3 Button
id: fan_3_button
turn_on_action:
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x758A
- platform: template
name: FAN 4 Button
id: fan_4_button
turn_on_action:
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x6C93
- platform: template
name: FAN 5 Button
id: fan_5_button
turn_on_action:
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x7788
output:
- platform: template
id: fan_speed_output
type: float
write_action:
- logger.log:
format: "Speed to set: %i"
args: [ 'id(fan_atomberg).speed']
- if:
condition:
lambda: return (id(fan_atomberg).state == 1 and id(fan_atomberg).speed == 1);
then:
- logger.log: "Setting speed to 1"
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x748B
- if:
condition:
lambda: return (id(fan_atomberg).state == 1 and id(fan_atomberg).speed == 2);
then:
- logger.log: "Setting speed to 2"
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x6F90
- if:
condition:
lambda: return (id(fan_atomberg).state == 1 and id(fan_atomberg).speed == 3);
then:
- logger.log: "Setting speed to 3"
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x758A
- if:
condition:
lambda: return (id(fan_atomberg).state == 1 and id(fan_atomberg).speed == 4);
then:
- logger.log: "Setting speed to 4"
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x6C93
- if:
condition:
lambda: return (id(fan_atomberg).state == 1 and id(fan_atomberg).speed == 5);
then:
- logger.log: "Setting speed to 5"
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x7788
# # Individual switches
fan:
- platform: speed
output: fan_speed_output
name: "Atomberg Fan"
id: fan_atomberg
speed_count: 5
# restore_mode: ALWAYS_OFF
on_turn_on:
- logger.log: "Fan Turned On!"
on_turn_off:
- logger.log: "Fan Turned Off!"
- remote_transmitter.transmit_nec:
transmitter_id: remote
address: 0xF300
command: 0x6E91