Hi,
Was able to make it work. Seems that actually the item I ordered was wrongly delivered. I ordered Pro and got standard. Therefore the I tried using wrong MCU. After noticing I change it and got all working.
Here my yaml for those that need it
esphome:
name: minimonitor2
friendly_name: MiniMonitor2
esp8266:
board: esp01_1m
external_components:
- source:
type: git
url: https://github.com/rletendu/esphome.git
ref: st7789_nobuffer_202312
# refresh: 0s
components: [st7789v]
# Enable logging
logger:
#web_server:
# port: 80
# Enable Home Assistant API
api:
encryption:
key: "iwLC0gi1RnqBDbU5xP17esXJtnWBNMEE8e7pcP9h5qc="
ota:
password: "9228f9283cb422f5969ea917e4488bb2"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: true
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "weatherdisplaym Fallback Hotspot"
password: "NOtnhLeYNfPB"
# captive_portal:
spi:
clk_pin: GPIO14
mosi_pin: GPIO13
interface: hardware
id: spihwd
# status_led:
# pin: GPIO2
time:
- platform: homeassistant
id: ha_time
output:
- platform: esp8266_pwm
pin: GPIO05
frequency: 20 Hz
id: pwm_output
light:
- platform: monochromatic
output: pwm_output
name: "Backlight"
globals:
- id: page
type: int
initial_value: "1"
interval:
- interval: 15s
then:
- lambda: |-
id(page) = (id(page) + 1);
if (id(page) > 2) {
id(page) = 1;
}
number:
- platform: template
name: "disp page"
optimistic: true
min_value: 0
max_value: 3
step: 1
on_value:
then:
- lambda: |-
id(page) = x;
- component.update : disp
sensor:
- platform: homeassistant
entity_id: sensor.gw2000c_v2_2_4_outdoor_temperature
id: outdoortemp
internal: true
state_class: measurement
unit_of_measurement: °C
- platform: homeassistant
entity_id: sensor.gw2000c_v2_2_4_humidity
id: outdoorhumid
internal: true
state_class: measurement
unit_of_measurement: "%"
- platform: homeassistant
entity_id: sensor.gw2000c_v2_2_4_uv_index
id: uvindex
internal: true
state_class: measurement
unit_of_measurement: UV-Index
- platform: homeassistant
entity_id: sensor.ac_thor_1_temperatur_1
id: boilertemp
internal: true
state_class: measurement
unit_of_measurement: °C
- platform: homeassistant
entity_id: sensor.total_solar_power
id: pvpower
internal: true
state_class: measurement
unit_of_measurement: W
text_sensor:
- platform: homeassistant
entity_id: sensor.aktuelles_wetter
id: wcondition
internal: true
font:
- file: "gfonts://Roboto"
id: roboto
size: 30
- file: "gfonts://Roboto"
id: roboto2
size: 36
- file: "gfonts://Roboto"
id: roboto3
size: 20
image:
- file: /config/www/images/static/green.yellow.red.gradient.jpg
id: gradient
type: RGBA
resize: 100x16
- file: /config/www/images/static/clear-night.png
id: clearnight
type: RGBA
resize: 80x80
- file: /config/www/images/static/cloudy.png
id: cloudy
type: RGBA
resize: 80x80
- file: /config/www/images/static/exceptional.png
id: exceptional
type: RGBA
resize: 80x80
- file: /config/www/images/static/fog.png
id: fog
type: RGBA
resize: 80x80
- file: /config/www/images/static/hail.png
id: hail
type: RGBA
resize: 80x80
- file: /config/www/images/static/lightning.png
id: lightning
type: RGBA
resize: 80x80
- file: /config/www/images/static/lightning-rainy.png
id: lightningrainy
type: RGBA
resize: 80x80
- file: /config/www/images/static/partlycloudy.png
id: partlycloudy
type: RGBA
resize: 80x80
- file: /config/www/images/static/pouring.png
id: pouring
type: RGBA
resize: 80x80
- file: /config/www/images/static/rainy.png
id: rainy
type: RGBA
resize: 80x80
- file: /config/www/images/static/snowy.png
id: snowy
type: RGBA
resize: 80x80
- file: /config/www/images/static/snowy-rainy.png
id: snowyrainy
type: RGBA
resize: 80x80
- file: /config/www/images/static/sunny.png
id: sunny
type: RGBA
resize: 80x80
- file: /config/www/images/static/windy.png
id: windy
type: RGBA
resize: 80x80
- file: /config/www/images/static/windy-variant.png
id: windyvariant
type: RGBA
resize: 80x80
display:
- platform: st7789v
model: "Custom"
spi_id: spihwd
height: 240
width: 240
offset_height: 0
offset_width: 0
# dc_pin: GPIO02
# reset_pin: GPIO04
dc_pin: GPIO00
reset_pin: GPIO02
#backlight_pin: GPIO25
eightbitcolor: True
#update_interval: never
#update_interval: 30s
id: disp
spi_mode: mode3
lambda: |-
switch (id(page)){
default:
break;
case 0:
break;
case 1:
it.printf(0, 0, id(roboto2), Color(255, 255, 255), "Wetter heute");
if (id(wcondition).has_state()) {
if (id(wcondition).state == "clear-night") {
it.image(10, 35, id(clearnight));
}
if (id(wcondition).state == "cloudy") {
it.image(10, 35, id(cloudy));
}
if (id(wcondition).state == "exceptional") {
it.image(10, 35, id(exceptional));
}
if (id(wcondition).state == "fog") {
it.image(10, 35, id(fog));
}
if (id(wcondition).state == "hail") {
it.image(10, 35, id(hail));
}
if (id(wcondition).state == "lightning") {
it.image(10, 35, id(lightning));
}
if (id(wcondition).state == "lightning-rainy") {
it.image(10, 35, id(lightningrainy));
}
if (id(wcondition).state == "partlycloudy") {
it.image(10, 35, id(partlycloudy));
}
if (id(wcondition).state == "pouring") {
it.image(10, 35, id(pouring));
}
if (id(wcondition).state == "rainy") {
it.image(10, 35, id(rainy));
}
if (id(wcondition).state == "snowy") {
it.image(10, 35, id(snowy));
}
if (id(wcondition).state == "snowy-rainy") {
it.image(10, 35, id(snowyrainy));
}
if (id(wcondition).state == "sunny") {
it.image(10, 35, id(sunny));
}
if (id(wcondition).state == "windy") {
it.image(10, 35, id(windy));
}
if (id(wcondition).state == "windy-variant") {
it.image(10, 35, id(windyvariant));
}
if (id(uvindex).has_state()) {
it.printf(120, 40, id(roboto3), Color(255, 255, 255), "UV Index: %.1f", id(uvindex).state);
it.image(120, 75, id(gradient));
it.rectangle(119, 74, 102, 18, Color(255, 255, 255));
int xuv = 130 + 11 * id(uvindex).state;
int luv = 90 - 11 * id(uvindex).state;
it.filled_rectangle(xuv, 75, luv, 16, Color(0, 0, 0));
}
// Print outside temperature (from homeassistant sensor)
if (id(outdoortemp).has_state()) {
it.printf(0, 120, id(roboto3), Color(255, 255, 255), "Temperatur");
it.printf(0, 140, id(roboto), Color(255, 255, 255), "%.1f°", id(outdoortemp).state);
}
// Print outside humidity (from homeassistant sensor)}
if (id(outdoorhumid).has_state()) {
it.printf(0, 180, id(roboto3), Color(255, 255, 255), "Luftfeuchtigkeit");
it.printf(0, 200, id(roboto), Color(255, 255, 255), "%.1f%%", id(outdoorhumid).state);
}
}
break;
case 2:
if (id(boilertemp).has_state()) {
it.printf(0, 0, id(roboto3), Color(255, 255, 255), "Boilertemperatur");
it.printf(0, 20, id(roboto), Color(255, 255, 255), "%.1f°", id(boilertemp).state);
}
// Print current pv power (from homeassistant sensor)
if (id(pvpower).has_state()) {
it.printf(0, 60, id(roboto3), Color(255, 255, 255), "Solarleistung");
it.printf(0, 80, id(roboto), Color(255, 255, 255), "%.1fW", id(pvpower).state);
}
break;
}
FYI it is possible to run it on the 8266 and also incorporate pages, but it is impossible to use OTA due to lack of free space. Also for newbies do not forget to pull GPIO0 low to enter boot mode ptherwise not programable.
If you require the weather icons sent me a message.
BR,
Chris