


Četl jsem to asi hodinu a snažil se to pochopit, no vůbec z toho nejsem moudrý. S EspHome nedělám, tak je to pro mě španělská vesnice.kiklhorn píše: ↑08. březen 2023, 12:23 Přečti si tohle: https://cs.wikipedia.org/wiki/Printf a dej vědět jestli pomohlo.
2) přepíšu jej s použitím printf, namíso printДушан píše: ↑07. březen 2023, 23:50
1) vyjdu z tohoto kódu:Kód: Vybrat vše
if (id(regulace1).state) { it.print(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON"); } else { it.print(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF"); }
Kód: Vybrat vše
if (id(regulace1).state) {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON");
} else {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF");
}
Kód: Vybrat vše
if (id(regulace1).state) {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON, otáčky: %d procent", otacky);
} else {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF");
}
Kód: Vybrat vše
if (id(regulace1).state) {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON, otáčky: %f procent", otacky);
} else {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF");
}
Kód: Vybrat vše
if (id(regulace1).state) {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON, otáčky: %.1f procent", otacky);
} else {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF");
}
Kód: Vybrat vše
if (id(regulace1).state) {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON, otáčky: %.0f procent", otacky);
} else {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF");
}
Kód: Vybrat vše
id(krabicka).cas
id(krabicka).datum
Kód: Vybrat vše
id(krabicka).dest()
Kód: Vybrat vše
id(krabicka).snih(hodně)
Kód: Vybrat vše
if (id(regulace1).state) {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON, otáčky: %.0f procent", id(senzorotacky).state;
} else {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF");
}
Kód: Vybrat vše
if (id(regulace1).state) {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON, otáčky: %.0f procent, %.0f RPM", id(senzorotacky).state, id(otrpm).state;
} else {
it.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF");
}
Kód: Vybrat vše
fan:
- platform: speed
output: regulace
name: "Regulace"
Kód: Vybrat vše
esphome:
name: chlazeni
friendly_name: Chlazení
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "qNwT5OpNsok923YkGt8ODXkM/69oP52QuUccWWfZ0fM="
ota:
password: "c26a6d071d87a8b9bf71f32a6b790cc2"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Chlazeni Fallback Hotspot"
password: "ikpk0A6rv33s"
web_server:
port: 80
# auth:
# username: jmeno
# password: heslo
output:
- platform: esp8266_pwm
pin: D5
frequency: 12000 Hz
id: regulace
fan:
- platform: speed
output: regulace
name: "Regulace"
switch:
- platform: restart
name: "Pin D1 Restart"
binary_sensor:
- platform: homeassistant
name: "Regulace chlazení"
id: regulace1
entity_id: fan.chlazeni_regulace
internal: true
sensor:
- platform: homeassistant
name: "Teplota sřídače"
id: teplota
entity_id: sensor.inverter_temperature_air
internal: true
- platform: homeassistant
name: "FVE výroba"
id: fve_vyroba
entity_id: sensor.pv_power
internal: true
- platform: homeassistant
name: "Baterie"
id: batery
entity_id: sensor.battery_state_of_charge
internal: true
- platform: homeassistant
name: "Baterie"
id: dum
entity_id: sensor.house_consumption
internal: true
# Display
i2c:
sda: D1
scl: D2
display:
- platform: ssd1306_i2c
model: "SH1106 128x64"
reset_pin: D0
address: 0x3C
update_interval: 2s
lambda: |-
it.printf(0, 10, id(pismo), TextAlign::BASELINE_LEFT, "FVE výroba: %.0f W", id(fve_vyroba).state);
it.printf(0, 23, id(pismo), TextAlign::BASELINE_LEFT, "Spotřeba: %.0f W", id(dum).state);
it.printf(0, 36, id(pismo), TextAlign::BASELINE_LEFT, "Baterie: %.0f%%", id(batery).state);
it.printf(0, 49, id(pismo), TextAlign::BASELINE_LEFT, "Teplota: %.1f°C", id(teplota).state);
if (id(regulace1).state) {
it.print(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON");
} else {
it.print(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: OFF");
}
# Písmo
font:
- file: "arial.ttf"
glyphs: "!%()+,-/_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzμčáůýří"
id: pismo
size: 12
- file: "arial.ttf"
glyphs: "!%()+,-/_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzμčáůýř"
id: pismo40
size: 40
- file: "arial.ttf"
glyphs: "!%()+,-/_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzμčáůýř"
id: pismo26
size: 26
- file: "arial.ttf"
glyphs: "!%()+,-/_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzμčáůýř"
id: pismo20
size: 20
- file: "materialdesignicons-webfont.ttf"
id: fann
size: 60
glyphs: [
'', # F0210 mdi-fan
]
- file: "materialdesignicons-webfont.ttf"
id: solar
size: 5
glyphs: [
'', # F1A73 mdi-solar-power-variant
]
- file: "materialdesignicons-webfont.ttf"
id: teplota1
size: 60
glyphs: [
'', # F050F mdi-thermomete
]
- file: 'materialdesignicons-webfont.ttf'
id: wifi_doma
size: 5
glyphs: [
# Wifi
'', # mdi-wifi-strength-1
'', # mdi-wifi-strength-2
'', # mdi-wifi-strength-3
'', # mdi-wifi-strength-4
'', # mdi-wifi-strength-alert-outline
]
captive_portal: