Let me explain a bit.
This is one of my first lambda codes. I couldn’t figure out how to properly create an “if” loop, so everything is conditional.
The variable “i” changes its value every second and defines a “:” between hours and minutes.
Then, a few lines extracting individual characters from the time, then displaying specific numbers using user-defined characters.
The whole thing could be written better and more optimally, but I was working on it late at night and wanted it to work, not look pretty.
Some variables and comments are written in Polish; it was more convenient for me. 
i2c:
sda: GPIO18
scl: GPIO19
scan: true
time:
- platform: homeassistant
id: my_time
globals:
- id: i
type: int
restore_value: no
initial_value: '0'
display:
- platform: lcd_pcf8574
dimensions: 16x2
address: 0x3f
id: lcd_screen
update_interval: 1s
user_characters:
- position: 0
data:
- 0b11111
- 0b11111
- 0b11111
- 0b00000
- 0b00000
- 0b11111
- 0b11111
- 0b11111
- position: 1
data:
- 0b11100
- 0b11110
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- position: 2
data:
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b01111
- 0b00111
- position: 3
data:
- 0b00000
- 0b00000
- 0b00000
- 0b00000
- 0b00000
- 0b11111
- 0b11111
- 0b11111
- position: 4
data:
- 0b11111
- 0b11111
- 0b11111
- 0b00000
- 0b00000
- 0b00000
- 0b00000
- 0b00000
- position: 5
data:
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- position: 6
data:
- 0b00111
- 0b01111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- position: 7
data:
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11111
- 0b11110
- 0b11100
lambda: |-
if (id(i) == 0) {
it.print(8,0,"\x03");
it.print(8,1,"\x03");
id(i) = 1;
} else {
it.print(8,0," ");
it.print(8,1," ");
id(i) = 0;
}
std::string h_str = id(my_time).now().strftime("%H");
std::string h1_str = h_str.substr(0,1).c_str();
std::string h2_str = h_str.substr(1,2).c_str();
std::string m_str = id(my_time).now().strftime("%M");
std::string m1_str = m_str.substr(0,1).c_str();
std::string m2_str = m_str.substr(1,2).c_str();
// pierwszy znak
int kolejnosc = 1;
if (h1_str == "0") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x04");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (h1_str == "1") {
it.print(kolejnosc,0,"\x04");
it.print(kolejnosc+1,0,"\x01");
it.print(kolejnosc+2,0," ");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x05");
it.print(kolejnosc+2,1,"\x03");
}
if (h1_str == "2") {
it.print(kolejnosc,0,"\x08");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x03");
}
// drugi znak
kolejnosc = 5;
if (h2_str == "0") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x04");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (h2_str == "1") {
it.print(kolejnosc,0,"\x04");
it.print(kolejnosc+1,0,"\x01");
it.print(kolejnosc+2,0," ");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x05");
it.print(kolejnosc+2,1,"\x03");
}
if (h2_str == "2") {
it.print(kolejnosc,0,"\x08");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x03");
}
if (h2_str == "3") {
it.print(kolejnosc,0,"\x08");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (h2_str == "4") {
it.print(kolejnosc,0,"\x02");
it.print(kolejnosc+1,0,"\x03");
it.print(kolejnosc+2,0,"\x05");
it.print(kolejnosc,1," ");
it.print(kolejnosc+1,1," ");
it.print(kolejnosc+2,1,"\x05");
}
if (h2_str == "5") {
it.print(kolejnosc,0,"\x02");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x08");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (h2_str == "6") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x08");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (h2_str == "7") {
it.print(kolejnosc,0,"\x04");
it.print(kolejnosc+1,0,"\x04");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1," ");
it.print(kolejnosc+1,1," ");
it.print(kolejnosc+2,1,"\x05");
}
if (h2_str == "8") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (h2_str == "9") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1," ");
it.print(kolejnosc+1,1," ");
it.print(kolejnosc+2,1,"\x05");
}
// trzeci znak
kolejnosc = 9;
if (m1_str == "0") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x04");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (m1_str == "1") {
it.print(kolejnosc,0,"\x04");
it.print(kolejnosc+1,0,"\x01");
it.print(kolejnosc+2,0," ");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x05");
it.print(kolejnosc+2,1,"\x03");
}
if (m1_str == "2") {
it.print(kolejnosc,0,"\x08");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x03");
}
if (m1_str == "3") {
it.print(kolejnosc,0,"\x08");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (m1_str == "4") {
it.print(kolejnosc,0,"\x02");
it.print(kolejnosc+1,0,"\x03");
it.print(kolejnosc+2,0,"\x05");
it.print(kolejnosc,1," ");
it.print(kolejnosc+1,1," ");
it.print(kolejnosc+2,1,"\x05");
}
if (m1_str == "5") {
it.print(kolejnosc,0,"\x02");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x08");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
// czwarty znak
kolejnosc = 13;
if (m2_str == "0") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x04");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (m2_str == "1") {
it.print(kolejnosc,0,"\x04");
it.print(kolejnosc+1,0,"\x01");
it.print(kolejnosc+2,0," ");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x05");
it.print(kolejnosc+2,1,"\x03");
}
if (m2_str == "2") {
it.print(kolejnosc,0,"\x08");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x03");
}
if (m2_str == "3") {
it.print(kolejnosc,0,"\x08");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (m2_str == "4") {
it.print(kolejnosc,0,"\x02");
it.print(kolejnosc+1,0,"\x03");
it.print(kolejnosc+2,0,"\x05");
it.print(kolejnosc,1," ");
it.print(kolejnosc+1,1," ");
it.print(kolejnosc+2,1,"\x05");
}
if (m2_str == "5") {
it.print(kolejnosc,0,"\x02");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x08");
it.print(kolejnosc,1,"\x03");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (m2_str == "6") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x08");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (m2_str == "7") {
it.print(kolejnosc,0,"\x04");
it.print(kolejnosc+1,0,"\x04");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1," ");
it.print(kolejnosc+1,1," ");
it.print(kolejnosc+2,1,"\x05");
}
if (m2_str == "8") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1,"\x02");
it.print(kolejnosc+1,1,"\x03");
it.print(kolejnosc+2,1,"\x07");
}
if (m2_str == "9") {
it.print(kolejnosc,0,"\x06");
it.print(kolejnosc+1,0,"\x08");
it.print(kolejnosc+2,0,"\x01");
it.print(kolejnosc,1," ");
it.print(kolejnosc+1,1," ");
it.print(kolejnosc+2,1,"\x05");
}
If you like it, leave a “like.” 