# Weatherstation Compass needle

Hello, can someone tell me how I can point the compass needle in the correct wind direction?

What I have as a data point is the degree number via MQTT (e.g. 243).

So far I’m only showing one picture:

``````     lambda: | -

// NEEDLE COMPASS
it.image (176, 325, id (needle));
``````

But I have no idea what the code should look like.
Something with transform, probably. No idea.
Hope someone can give me the YAML for it.

Thanks very much.

1 Like

I think you should decide how many directions you want to identify, 16 is probably enough at that scale.

Then have 16 images like needle-N, needle-NNE, needle-NE.

Then a series of If/Then to choose which needle to display.

I don’t think ESP-Home can rotate an image.
I think you need to create n number of images that you display depending on the direction.
8 or 16 is probably good enough

1 Like

If you do:

round(direction / 22.5) * 22.5 then you will get the rounded to the closest 16 part of 360 degrees.

So… round(243/22.5)*22.5 = 247.5

If you now replace `.` with nothing then you will get 2475, and that is what I would name the image (and .png) to display

The hard part is probably to make sure it rotates around the center of the image and not top left as “usual”.

Unrelated, but neat hardware. What is it?

1 Like

I think not quite.

Take the example of when it should point to N (north). It should point to N when the direction is betweeen 348.75 deg (or -11.25deg) and 11.25 deg.

It’s a Waveshare epaper 7.5 display and a Waveshare Universal e-Paper Driver Board. The frame is built by yourself.

1 Like

Something like this?

That is what it does(?)

See this Excel calculation:

The only thing that perhaps should be added to the calculation is a modulo 360 to make sure it gives 0 instead of 360.

Yes, exactly. I use the driver board from Waveshare. So you don’t need the HAT.
Yes, I can share the YAML
Except for the compass, everything is already running

Then I will now solve that with the “16 Pics” and “if/then queries”. Thanks very much

Complete And it works. This is the YAML and the pictures.

``````esphome:
name: wohnzimmer-wetterdisplay
platform: ESP32
board: esp32dev

on_boot:
priority: -10
then:
- delay: 7s
- component.update: epaper

<<: !include secrets.yaml

mqtt:
broker: 192.168.X.X

# OTA MODUS
on_message:
then:
- deep_sleep.prevent: deep_sleep_1
then:
- deep_sleep.enter: deep_sleep_1

api:

ota:

logger:

##############

captive_portal:

font:
# Schrift für Kästchenbeschriftung z.B. Innen
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/VerdanaBold.ttf"
id: VerdanaBold24
size: 24
# Schrift für Wertebezeichnungen z.B. MAX TEMPERATUR
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/Verdana.ttf"
id: Verdana20
size: 20
# Schrift für Werte z.B. MAX TEMPERATUR
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/VerdanaBold.ttf"
id: VerdanaBold20
size: 20
# Schrift für Trend Temperatur Werte
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/Materialdesignicons-Webfont.ttf"
id: Icons30
size: 30
glyphs:
- "\U000F005E" # Pfeil oben
- "\U000F0046" # Pfeil unten
- "\U000F0055" # Pfeil gleich
# Schrift für Zentrale Wichtige Werte z.B. Temperatur Innen
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/VerdanaBold.ttf"
id: VerdanaBold32
size: 32
# Schrift für ORTE WIND
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/VerdanaBold.ttf"
id: VerdanaBold14
size: 14
# Schrift für Trend Tage
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/VerdanaBold.ttf"
id: VerdanaBold15
size: 15
# Schrift für Trend Werte
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/VerdanaBold.ttf"
id: VerdanaBold17
size: 17
# Schrift für Wettersymbole
- file: "/opt/iobroker/iobroker-data/esphome.0/Fonts/Materialdesignicons-Webfont.ttf"
id: Icons60
size: 60
glyphs:
- "\U000F0599" # Sonne,
- "\U000F0595" # Sonne bewölkt, Sonne stark bewölkt
- "\U000F0590" # bewölkt
- "\U000F0597" # Sonne bewölkt leichter Regen, Sonne stark bewölkt leichter Regen, bewölkt leichter Regen
- "\U000F0596" # Sonne bewölkt starker Regen, Sonne stark bewölkt starker Regen, stark bewölkt starker Regen
- "\U000F0593" # Sonne bewölkt Unwetter, Sonne stark bewölkt Unwetter, stark bewölkt Unwetter
- "\U000F0592" # Sonne bewölkt Eisregen, Sonne stark bewölkt Eisregen, stark bewölkt Eisregen, Sonne bewölkt Schneeregen, Sonne stark bewölkt Schneeregen, stark bewölkt Schneeregen
- "\U000F0598" # Sonne bewölkt Schnee, Sonne stark bewölkt Schnee, stark bewölkt Schnee

image:
- file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Wetter/VISWeather.png"
id: VISWeather
resize: 800x480
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95
resize: 95x95

text_sensor:
#MQTT SENSOR HEUTE DATUM
- platform: mqtt_subscribe
name: "Heute-Datum"
id: HeuteDatum
topic: Kalender/Heute/Datum
#MQTT SENSOR ASTRO SONNENAUFGANG
- platform: mqtt_subscribe
name: "Astro-Sonnenaufgang"
id: AstroSonnenaufgang
topic: Astro/Sonnenaufgang
#MQTT SENSOR ASTRO SONNENUNTERGANG
- platform: mqtt_subscribe
name: "Astro-Sonnenuntergang"
id: AstroSonnenuntergang
topic: Astro/Sonnenuntergang
#MQTT SENSOR TEMPERATUR INNEN
- platform: mqtt_subscribe
name: "Innen-Temperatur"
id: TemperaturInnen
topic: Wetter/Innen/Temperatur
#MQTT SENSOR TEMPERATURTREND INNEN
- platform: mqtt_subscribe
name: "Innen-TemperaturTrend"
id: TemperaturtrendInnen
topic: Wetter/Innen/Trend
#MQTT SENSOR LUFTFEUCHTIGKEIT INNEN
- platform: mqtt_subscribe
name: "Innen-Luftfeuchtigkeit"
id: LuftfeuchtigkeitInnen
topic: Wetter/Innen/Luftfeuchtigkeit
#MQTT SENSOR LUFTDRUCK INNEN
- platform: mqtt_subscribe
name: "Innen-Luftdruck"
id: LuftdruckInnen
topic: Wetter/Innen/Luftdruck
#MQTT SENSOR CO2 INNEN
- platform: mqtt_subscribe
name: "Innen-CO2"
id: CO2Innen
topic: Wetter/Innen/CO2
#MQTT SENSOR MAX TEMPERATUR INNEN
- platform: mqtt_subscribe
name: "Innen-MaxTemperatur"
id: MaxTemperaturInnen
topic: Wetter/Innen/MaxTemperatur
#MQTT SENSOR MIN TEMPERATUR INNEN
- platform: mqtt_subscribe
name: "Innen-MinTemperatur"
id: MinTemperaturInnen
topic: Wetter/Innen/MinTemperatur
#MQTT SENSOR TEMPERATUR AUSSEN
- platform: mqtt_subscribe
name: "Aussen-Temperatur"
id: TemperaturAussen
topic: Wetter/Aussen/Temperatur
#MQTT SENSOR TEMPERATURTREND AUSSEN
- platform: mqtt_subscribe
name: "Aussen-TemperaturTrend"
id: TemperaturtrendAussen
topic: Wetter/Aussen/Trend
#MQTT SENSOR LUFTFEUCHTIGKEIT AUSSEN
- platform: mqtt_subscribe
name: "Aussen-Luftfeuchtigkeit"
id: LuftfeuchtigkeitAussen
topic: Wetter/Aussen/Luftfeuchtigkeit
#MQTT SENSOR MAX TEMPERATUR AUSSEN
- platform: mqtt_subscribe
name: "Aussen-MaxTemperatur"
id: MaxTemperaturAussen
topic: Wetter/Aussen/MaxTemperatur
#MQTT SENSOR MIN TEMPERATUR AUSSEN
- platform: mqtt_subscribe
name: "Aussen-MinTemperatur"
id: MinTemperaturAussen
topic: Wetter/Aussen/MinTemperatur
#MQTT SENSOR NIEDERSCHLAG STUNDE AUSSEN
- platform: mqtt_subscribe
name: "Regen-Stunde"
id: RegenStundeAussen
topic: Wetter/Regen/Stunde
#MQTT SENSOR NIEDERSCHLAG HEUTE AUSSEN
- platform: mqtt_subscribe
name: "Regen-Heute"
id: RegenHeuteAussen
topic: Wetter/Regen/Heute
#MQTT SENSOR WINDRICHTUNG AUSSEN
- platform: mqtt_subscribe
name: "Wind-Richtung"
id: WindRichtungAussen
topic: Wetter/Wind/Richtung
#MQTT SENSOR WINDGESCHWINDIGKEIT AUSSEN
- platform: mqtt_subscribe
name: "Wind-Geschwindikgeit"
id: WindGeschwindikgeitAussen
topic: Wetter/Wind/Geschwindikgeit
#MQTT SENSOR TAG MORGEN
- platform: mqtt_subscribe
name: "Trend-Tag-Morgen"
id: TagMorgen
topic: Wetter/Trend/Tag/Morgen
#MQTT SENSOR TAG ÜBERMORGEN
- platform: mqtt_subscribe
name: "Trend-Tag-UEbermorgen"
id: TagUEbermorgen
topic: Wetter/Trend/Tag/Uebermorgen
#MQTT SENSOR TAG ÜBER-ÜBERMORGEN
- platform: mqtt_subscribe
name: "Trend-Tag-UEberUebermorgen"
id: TagUEberUebermorgen
topic: Wetter/Trend/Tag/UEberUebermorgen
#MQTT SENSOR WETTERSYMBOL MORGEN
- platform: mqtt_subscribe
name: "Trend-Wettersymbol-Morgen"
id: WettersymbolMorgen
topic: Wetter/Trend/Wettersymbol/Morgen
#MQTT SENSOR WETTERSYMBOL ÜBERMORGEN
- platform: mqtt_subscribe
name: "Trend-Wettersymbol-UEbermorgen"
id: WettersymbolUEbermorgen
topic: Wetter/Trend/Wettersymbol/Uebermorgen
#MQTT SENSOR WETTERSYMBOL ÜBER-ÜBERMORGEN
- platform: mqtt_subscribe
name: "Trend-Wettersymbol-UEberUebermorgen"
id: WettersymbolUEberUebermorgen
topic: Wetter/Trend/Wettersymbol/UEberUebermorgen
#MQTT SENSOR TEMPERATUR MAX MORGEN
- platform: mqtt_subscribe
name: "Trend-MaxTemperatur-Morgen"
id: MaxTempMorgen
topic: Wetter/Trend/MaxTemperatur/Morgen
#MQTT SENSOR TEMPERATUR MIN MORGEN
- platform: mqtt_subscribe
name: "Trend-MinTemperatur-Morgen"
id: MinTempMorgen
topic: Wetter/Trend/MinTemperatur/Morgen
#MQTT SENSOR TEMPERATUR MAX ÜBERMORGEN
- platform: mqtt_subscribe
name: "Trend-MaxTemperatur-UEbermorgen"
id: MaxTempUEbermorgen
topic: Wetter/Trend/MaxTemperatur/UEbermorgen
#MQTT SENSOR TEMPERATUR MIN ÜBERMORGEN
- platform: mqtt_subscribe
name: "Trend-MinTemperatur-UEbermorgen"
id: MinTempUEbermorgen
topic: Wetter/Trend/MinTemperatur/UEbermorgen
#MQTT SENSOR TEMPERATUR MAX ÜBER-ÜBERMORGEN
- platform: mqtt_subscribe
name: "Trend-MaxTemperatur-UEberUebermorgen"
id: MaxTempUEberUebermorgen
topic: Wetter/Trend/MaxTemperatur/UEberUebermorgen
#MQTT SENSOR TEMPERATUR MIN ÜBER-ÜBERMORGEN
- platform: mqtt_subscribe
name: "Trend-MinTemperatur-UEberUebermorgen"
id: MinTempUEberUebermorgen
topic: Wetter/Trend/MinTemperatur/UEberUebermorgen

time:
- platform: sntp
id: current_time
timezone: Europe/Berlin
servers : ptbtime1.ptb.de

deep_sleep:
id: deep_sleep_1
run_duration: 22s
sleep_duration: 10min

spi:
clk_pin: 13
mosi_pin: 14

display:
- platform: waveshare_epaper
cs_pin: 15
dc_pin: 27
busy_pin: 25
reset_pin: 26
model: 7.50inv2
update_interval: never
id: epaper

lambda: |-
// HINTERGRUNDBILD
it.image(0, 0, id(VISWeather));

//ÜBERSCHRIFTEN
//INNEN
it.print(31, 15, id(VerdanaBold24), "INNEN");
//WIND
it.print(33, 242, id(VerdanaBold24), "WIND");
//AUSSEN
it.print(406, 15, id(VerdanaBold24), "AUSSEN");
//REGEN
it.print(414, 192, id(VerdanaBold24), "REGEN");
//TREND
it.print(414, 327, id(VerdanaBold24), "TREND");

//INNEN WERTEBEZEICHNUNGEN
//TEMPERATUR
it.print(26, 49, id(Verdana20), "Temperatur");
//TEMPERATURTREND
it.print(26, 76, id(Verdana20), "Temperaturtrend");
//LUFTFEUCHTIKEIT
it.print(26, 103, id(Verdana20), "Luftfeuchtigkeit");
//LUFTDRUCK
it.print(26, 131, id(Verdana20), "Luftdruck");
//CO2
it.print(26, 158, id(Verdana20), "CO2");
//MAX TEMPERATUR
it.print(26, 185, id(Verdana20), "MAX Temperatur");
//MIN TEMPERATUR
it.print(26, 212, id(Verdana20), "MIN Temperatur");

//AUSSEN WERTEBEZEICHNUNGEN
//TEMPERATUR
it.print(412, 49, id(Verdana20), "Temperatur");
//TEMPERATURTREND
it.print(412, 76, id(Verdana20), "Temperaturtrend");
//LUFTFEUCHTIKEIT
it.print(412, 103, id(Verdana20), "Luftfeuchtigkeit");
//MAX TEMPERATUR
it.print(412, 131, id(Verdana20), "MAX Temperatur");
//MIN TEMPERATUR
it.print(412, 158, id(Verdana20), "MIN Temperatur");

//REGEN
//NIEDERSCHLAG LETZTE STUNDE 1 ZEILE
it.print(412, 227, id(Verdana20), "Niederschlag");
//NIEDERSCHLAG LETZTE STUNDE 2 ZEILE
it.print(412, 249, id(Verdana20), "letzte Stunde");
//NIEDERSCHLAG HEUTE 1 ZEILE
it.print(412, 276, id(Verdana20), "Niederschlag");
//NIEDERSCHLAG HEUTE 2 ZEILE
it.print(412, 297, id(Verdana20), "Heute");

//WIND ORTSBEZEICHNUNGEN
//ROSENHEIM
it.print(28, 314, id(VerdanaBold14), "Rosenheim");
//PRIEN
it.print(301, 316, id(VerdanaBold14), "Prien");
//SAMERBERG
it.print(109, 442, id(VerdanaBold14), "Samerberg");

//INNEN WERTE
//Temperatur
it.printf(374, 38, id(VerdanaBold32), TextAlign::TOP_RIGHT, "%s", id(TemperaturInnen).state.c_str());
//TEMPERATURTREND Stabil
if (id(TemperaturtrendInnen).state == "Stabil") {
it.print(352, 74, id(Icons30), "\U000F0055");}
//TEMPERATURTREND Steigend
if (id(TemperaturtrendInnen).state == "Steigend") {
it.print(352, 74, id(Icons30), "\U000F005E");}
//TEMPERATURTREND Fallend
if (id(TemperaturtrendInnen).state == "Fallend") {
it.print(352, 74, id(Icons30), "\U000F0046");}
//LUFTFEUCHTIKEIT
it.printf(374, 103, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(LuftfeuchtigkeitInnen).state.c_str());
//LUFTDRUCK
it.printf(374, 131, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(LuftdruckInnen).state.c_str());
//CO2
it.printf(374, 158, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(CO2Innen).state.c_str());
//MAX TEMPERATUR
it.printf(374, 185, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(MaxTemperaturInnen).state.c_str());
//MIN TEMPERATUR
it.printf(374, 212, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(MinTemperaturInnen).state.c_str());

//AUSSEN WERTE
//Temperatur
it.printf(760, 37, id(VerdanaBold32), TextAlign::TOP_RIGHT, "%s", id(TemperaturAussen).state.c_str());
//TEMPERATURTREND Stabil
if (id(TemperaturtrendAussen).state == "Stabil") {
it.print(738, 73, id(Icons30), "\U000F0055");}
//TEMPERATURTREND Steigend
if (id(TemperaturtrendAussen).state == "Steigend") {
it.print(738, 73, id(Icons30), "\U000F005E");}
//TEMPERATURTREND Fallend
if (id(TemperaturtrendAussen).state == "Fallend") {
it.print(738, 73, id(Icons30), "\U000F0046");}
//LUFTFEUCHTIKEIT
it.printf(760, 102, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(LuftfeuchtigkeitAussen).state.c_str());
//MAX TEMPERATUR
it.printf(760, 130, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(MaxTemperaturAussen).state.c_str());
//MIN TEMPERATUR
it.printf(760, 157, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(MinTemperaturAussen).state.c_str());

//REGEN WERTE
//REGEN STUNDE
it.printf(760, 236, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(RegenStundeAussen).state.c_str());
//REGEN HEUTE
it.printf(760, 286, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(RegenHeuteAussen).state.c_str());

if (id(WindRichtungAussen).state == "N") {
if (id(WindRichtungAussen).state == "NNE") {
if (id(WindRichtungAussen).state == "NE") {
if (id(WindRichtungAussen).state == "ENE") {
if (id(WindRichtungAussen).state == "E") {
if (id(WindRichtungAussen).state == "ESE") {
if (id(WindRichtungAussen).state == "SE") {
if (id(WindRichtungAussen).state == "SSE") {
if (id(WindRichtungAussen).state == "S") {
if (id(WindRichtungAussen).state == "SSW") {
if (id(WindRichtungAussen).state == "SW") {
if (id(WindRichtungAussen).state == "WSW") {
if (id(WindRichtungAussen).state == "W") {
if (id(WindRichtungAussen).state == "WNW") {
if (id(WindRichtungAussen).state == "NW") {
if (id(WindRichtungAussen).state == "NNW") {

//WIND WERTE
//WINDGESCHWINDIGKEIT
it.printf(380, 433, id(VerdanaBold20), TextAlign::TOP_RIGHT, "%s", id(WindGeschwindikgeitAussen).state.c_str());

//TREND TAGE WERTE
//MORGEN TAG
it.printf(469, 439, id(VerdanaBold15), TextAlign::TOP_CENTER, "%s", id(TagMorgen).state.c_str());
//ÜBERMORGEN TAG
it.printf(590, 439, id(VerdanaBold15), TextAlign::TOP_CENTER, "%s", id(TagUEbermorgen).state.c_str());
//ÜBER-ÜBERMORGEN TAG
it.printf(708, 439, id(VerdanaBold15), TextAlign::TOP_CENTER, "%s", id(TagUEberUebermorgen).state.c_str());

//TREND SYMBOL WERTE
//SYMBOL MORGEN STATE 1
if (id(WettersymbolMorgen).state == "1") {
it.print(440, 364, id(Icons60), "\U000F0599");}
//SYMBOL MORGEN STATE 2
if (id(WettersymbolMorgen).state == "2") {
it.print(440, 364, id(Icons60), "\U000F0595");}
//SYMBOL MORGEN STATE 3
if (id(WettersymbolMorgen).state == "3") {
it.print(440, 364, id(Icons60), "\U000F0590");}
//SYMBOL MORGEN STATE 4
if (id(WettersymbolMorgen).state == "4") {
it.print(440, 364, id(Icons60), "\U000F0597");}
//SYMBOL MORGEN STATE 5
if (id(WettersymbolMorgen).state == "5") {
it.print(440, 364, id(Icons60), "\U000F0596");}
//SYMBOL MORGEN STATE 6
if (id(WettersymbolMorgen).state == "6") {
it.print(440, 364, id(Icons60), "\U000F0593");}
//SYMBOL MORGEN STATE 7
if (id(WettersymbolMorgen).state == "7") {
it.print(440, 364, id(Icons60), "\U000F0592");}
//SYMBOL MORGEN STATE 8
if (id(WettersymbolMorgen).state == "8") {
it.print(440, 364, id(Icons60), "\U000F0598");}
//TREND SYMBOL ÜBERMORGEN
//SYMBOL ÜBERMORGEN STATE 1
if (id(WettersymbolUEbermorgen).state == "1") {
it.print(560, 364, id(Icons60), "\U000F0599");}
//SYMBOL ÜBERMORGEN STATE 2
if (id(WettersymbolUEbermorgen).state == "2") {
it.print(560, 364, id(Icons60), "\U000F0595");}
//SYMBOL ÜBERMORGEN STATE 3
if (id(WettersymbolUEbermorgen).state == "3") {
it.print(560, 364, id(Icons60), "\U000F0590");}
//SYMBOL ÜBERMORGEN STATE 4
if (id(WettersymbolUEbermorgen).state == "4") {
it.print(560, 364, id(Icons60), "\U000F0597");}
//SYMBOL ÜBERMORGEN STATE 5
if (id(WettersymbolUEbermorgen).state == "5") {
it.print(560, 364, id(Icons60), "\U000F0596");}
//SYMBOL ÜBERMORGEN STATE 6
if (id(WettersymbolUEbermorgen).state == "6") {
it.print(560, 364, id(Icons60), "\U000F0593");}
//SYMBOL ÜBERMORGEN STATE 7
if (id(WettersymbolUEbermorgen).state == "7") {
it.print(560, 364, id(Icons60), "\U000F0592");}
//SYMBOL ÜBERMORGEN STATE 8
if (id(WettersymbolUEbermorgen).state == "8") {
it.print(560, 364, id(Icons60), "\U000F0598");}
//TREND SYMBOL ÜBER-ÜBERMORGEN
//SYMBOL ÜBER-ÜBERMORGEN STATE 1
if (id(WettersymbolUEberUebermorgen).state == "1") {
it.print(680, 364, id(Icons60), "\U000F0599");}
//SYMBOL ÜBER-ÜBERMORGEN STATE 2
if (id(WettersymbolUEberUebermorgen).state == "2") {
it.print(680, 364, id(Icons60), "\U000F0595");}
//SYMBOL ÜBER-ÜBERMORGEN STATE 3
if (id(WettersymbolUEberUebermorgen).state == "3") {
it.print(680, 364, id(Icons60), "\U000F0590");}
//SYMBOL ÜBER-ÜBERMORGEN STATE 4
if (id(WettersymbolUEberUebermorgen).state == "4") {
it.print(680, 364, id(Icons60), "\U000F0597");}
//SYMBOL ÜBER-ÜBERMORGEN STATE 5
if (id(WettersymbolUEberUebermorgen).state == "5") {
it.print(680, 364, id(Icons60), "\U000F0596");}
//SYMBOL ÜBER-ÜBERMORGEN STATE 6
if (id(WettersymbolUEberUebermorgen).state == "6") {
it.print(680, 364, id(Icons60), "\U000F0593");}
//SYMBOL ÜBER-ÜBERMORGEN STATE 7
if (id(WettersymbolUEberUebermorgen).state == "7") {
it.print(680, 364, id(Icons60), "\U000F0592");}
//SYMBOL ÜBER-ÜBERMORGEN STATE 8
if (id(WettersymbolUEberUebermorgen).state == "8") {
it.print(680, 364, id(Icons60), "\U000F0598");}

//TREND TAGE TEMPERATUR
//MORGEN MAX TEMPERATUR
it.printf(446, 419, id(VerdanaBold17), TextAlign::TOP_CENTER, "%s", id(MaxTempMorgen).state.c_str());
//MORGEN MIN TEMPERATUR
it.printf(492, 419, id(VerdanaBold17), TextAlign::TOP_CENTER, "%s", id(MinTempMorgen).state.c_str());
//ÜBERMORGEN MAX TEMPERATUR
it.printf(566, 419, id(VerdanaBold17), TextAlign::TOP_CENTER, "%s", id(MaxTempUEbermorgen).state.c_str());
//ÜBERMORGEN MIN TEMPERATUR
it.printf(612, 419, id(VerdanaBold17), TextAlign::TOP_CENTER, "%s", id(MinTempUEbermorgen).state.c_str());
//ÜBER-ÜBERMORGEN MAX TEMPERATUR
it.printf(687, 419, id(VerdanaBold17), TextAlign::TOP_CENTER, "%s", id(MaxTempUEberUebermorgen).state.c_str());
//ÜBER-ÜBERMORGEN MIN TEMPERATUR
it.printf(733, 419, id(VerdanaBold17), TextAlign::TOP_CENTER, "%s", id(MinTempUEberUebermorgen).state.c_str());
``````

4 Likes

Thanks. I assume you are running this from a battery? Just guessing because of the deep sleep commands.

If so - what size battery and how much life do you expect out of it between charges?

So I’ve been running it since Saturday. 4 days later I connected the battery to the charger and it showed 98%. Let’s see what it looks like in a few days or weeks
This is the specification 18650 Li-Ion 3.7 V 3400 mAh

1 Like

Very cool.
I don’t have experience with ePaper. Isn’t the long, flickering, refreshes I saw on video too much of a distraction?

If you have short refreshes then yes.
But the main goal of ePaper is to display more or less static data.
Having a refresh rate of five minutes is most of the time not an issue (except for time, but even then is five minutes that bad?)

1 Like

I refresh every 10 minutes. You need luck to see that. You don’t look at it all the time The refresh process takes about 2 seconds