Chtěl jsem vidět tohle: Povšimni si atributů. V následujícím kódu tahám "percentage" atribut z HA
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
id: procenta
entity_id: fan.chlazeni_regulace
attribute: percentage
internal: True
- 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.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON, %.0f%%", id(procenta).state);
} 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:
Ale vzhledem k tomu že ty otáčky ventilátoru řídíš přímo tímto ESP, jejich hodnotu posíláš do HA tak mi přijde zbytečné je zase zpětně načítat z HA když už je máš přímo v tomto ESP. A to v komponentě fan, ale jako atribut ne percentage, ale speed.
Takže jenom přihodím id k fan a pak příslušný atribut (speed) použiji v displeji.
Takže druhá varianta kódu:
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"
id: vetrak
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.printf(0, 62, id(pismo), TextAlign::BASELINE_LEFT, "Chlazení: ON, %.0f%%", id(vetrak).speed);
} 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: