this is a little odd… was updating a couple sensor boxes (mod’ed IKEA VINDRIKTNING with a display and BME680)
#1 and #3 took my edits without issue. doing the same on #2 returns some odd compile error
…
Compiling .pioenvs/ikea-2-680/FrameworkArduino/wpa2_eap_patch.cpp.o
Archiving .pioenvs/ikea-2-680/libFrameworkArduino.a
Linking .pioenvs/ikea-2-680/firmware.elf
RAM: [====== ] 61.0% (used 49992 bytes from 81920 bytes)
Flash: [====== ] 57.3% (used 586893 bytes from 1023984 bytes)
Building .pioenvs/ikea-2-680/firmware.bin
esp8266_copy_factory_bin([".pioenvs/ikea-2-680/firmware.bin"], [".pioenvs/ikea-2-680/firmware.elf"])
esp8266_copy_ota_bin([".pioenvs/ikea-2-680/firmware.bin"], [".pioenvs/ikea-2-680/firmware.elf"])
======================== [SUCCESS] Took 206.46 seconds ========================
INFO Successfully compiled program.
INFO Connecting to 192.168.1.158 port 8266...
INFO Connected to 192.168.1.158
INFO Uploading /data/build/ikea-2-680/.pioenvs/ikea-2-680/firmware.bin (591040 bytes)
INFO Compressed to 406557 bytes
ERROR Error binary size: Unknown error from ESP
The yaml is straight forward…
.
..
substitutions:
## Location & Entity Names (Capitals and Spaces Allowed)
name: "IKEA-2"
tempoffset1: "2"
humoffset1: "0"
esphome:
name: ikea-2-680
friendly_name: IKEA-2-680
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "pAykYeJ09kk3hkLxRPc2y44KSyEzKZ7+gixzjYY3vZU="
ota:
- platform: esphome
password: "aff3dc736929bb6126d8c8dcf31aa43d"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.158 #8c:AA:B5:02:B8:AD
gateway: 192.168.1.1
subnet: 255.255.255.0
power_save_mode: none # none light high
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Ikea-2-680 Fallback Hotspot"
password: "3ZbdPuGVc3qE"
captive_portal:
# Minimal example configuration with common sensors
i2c:
sda: GPIO4 #D2
scl: GPIO5 #D1
frequency: 400khz
## Serial Port for partical co etc Sensor
uart:
- rx_pin: GPIO13 #D7
tx_pin: GPIO15 #D8
baud_rate: 9600
binary_sensor:
## Use the on-board LED to show "Fan Running"
- platform: gpio
name: $name Fan
id: fan
pin:
number: GPIO2 #D4
inverted: true
## Brightness Sensor for HA Automations
- platform: template
name: $name Bright
id: bright
bme680_bsec:
id: bme680_internal
# i2c address # - 0x76 # - 0x77
address: 0x77 #0x77 for 2.4" 128x64 tft display
iaq_mode: static
temperature_offset: $tempoffset1
sensor:
## IKEA PMS 2.5um Sensor
- platform: pm1006
pm_2_5:
id: aq_sensor
name: $name 2.5µg
update_interval: 20s
## The IKEA Light Level Sensor
- platform: adc
id: light_sensor
pin: A0
update_interval: 10s
## Check the value and turn On/Off our Binary Sensor
on_value:
- lambda: !lambda |
if (x > 0.01) {
id(bright).publish_state(true);
} else {
id(bright).publish_state(false);
}
- platform: bme680_bsec
bme680_bsec_id: bme680_internal
temperature:
name: "BME680 Temperature"
id: bmetemp
filters:
- lambda: return x * (9.0/5.0) + 32.0;
unit_of_measurement: °F
humidity:
name: "BME680 Humidity"
id: bmehumi
filters:
- offset: $humoffset1
pressure:
name: "BME680 Pressure"
id: bmepress
unit_of_measurement: inHg
filters:
- lambda: return x * 0.0295299;
iaq:
name: "BME680 IAQ"
id: iaq
co2_equivalent:
name: "BME680 CO2 Equivalent"
id: co2equiv
breath_voc_equivalent:
name: "BME680 Breath VOC Equivalent"
id: bmebreathvoc
text_sensor:
- platform: bme680_bsec
iaq_accuracy:
name: "BME680 IAQ Accuracy"
id: bmeiaqacc
- platform: template
name: "BME680 IAQ Classification"
icon: "mdi:checkbox-marked-circle-outline"
id: bmeiaqclass
lambda: |-
if ( int(id(iaq).state) <= 50) {
return {"Excellent"};
}
else if (int(id(iaq).state) >= 51 && int(id(iaq).state) <= 100) {
return {"Good"};
}
else if (int(id(iaq).state) >= 101 && int(id(iaq).state) <= 150) {
return {"Lightly polluted"};
}
else if (int(id(iaq).state) >= 151 && int(id(iaq).state) <= 200) {
return {"Moderately polluted"};
}
else if (int(id(iaq).state) >= 201 && int(id(iaq).state) <= 250) {
return {"Heavily polluted"};
}
else if (int(id(iaq).state) >= 251 && int(id(iaq).state) <= 350) {
return {"Severely polluted"};
}
else if (int(id(iaq).state) >= 351) {
return {"Extremely polluted"};
}
else {
return {"error"};
}
font:
- file: 'fonts/Ubmonor.ttf'
id: font1
size: 14
- file: 'fonts/Ubmonor.ttf'
id: font2
size: 10
display:
- platform: ssd1306_i2c
setup_priority: -100
id: oled
model: "SSD1306 128x64"
address: 0x3c #0x3c
lambda: |-
it.printf(0, 0, id(font1), TextAlign::TOP_LEFT, "%s", id(bmeiaqclass).state.c_str());
it.printf(0, 16, id(font1), TextAlign::TOP_LEFT, "%s", id(bmeiaqacc).state.c_str());
it.printf(0, 32, id(font1), TextAlign::TOP_LEFT, "PM25 %.0f", id(aq_sensor).state);
it.printf(0, 48, id(font1), TextAlign::TOP_LEFT, "IAQ %.0f", id(iaq).state);
it.printf(128, 0, id(font1), TextAlign::TOP_RIGHT, "%.1f °F", id(bmetemp).state);
it.printf(128, 14, id(font1), TextAlign::TOP_RIGHT, "%.1f %% ", id(bmehumi).state);
it.printf(128, 28, id(font1), TextAlign::TOP_RIGHT, "%.1f Hg", id(bmepress).state);
it.printf(128, 48, id(font1), TextAlign::TOP_RIGHT, "%.0f eCO2", id(co2equiv).state);
All I was doing was anddding an offset vcariable to get all the temps to read the same. Any clue why space seems avail on the esp32-wroom, but an eorr comes up unknown binay size???
any clues here? tia