● ESPHome의 LVGL을 활용하여 boiler 구성 요소를 사용하여 온도 조절과 보일러 상태를 표시하는 YAML 소스 코드를 생성
♨ 카랜더 일정 :
2024년09월26일
본문
● ESPHome의 LVGL을 활용하여 boiler 구성 요소를 사용하여 온도 조절과 보일러 상태를 표시하는 YAML 소스 코드를 생성
고객님께서 요청하신 내용을 바탕으로 ESPHome의 LVGL을 활용하여 climate.485_ttl_ip109_bookroom_boiler 구성 요소를 사용하여 온도 조절과 보일러 상태를 표시하는 YAML 소스 코드를 생성해 드리겠습니다.
YAML 구성 예시
아래는 해당 구성 요소의 ID를 사용하여 LVGL 디스플레이에 온도 조절 및 보일러 켜기 버튼, 그리고 온도 상태를 표시하는 예시입니다.
esphome:
name: my_boiler_control
# ESPHome에 필요한 기본 설정
# 예: wifi 설정, logger 등...
climate:
- platform: climate
id: climate.485_ttl_ip109_bookroom_boier # 주어진 구성요소 ID
name: "Bookroom Boiler"
# 다른 설정들...
lvgl:
- name: "boiler_display"
id: boiler_display
widgets:
- type: label
id: label_temperature
text: "현재 온도: -- °C" # 초기 텍스트, 나중에 업데이트 될 예정
x: 10
y: 20
font: "Roboto"
color: 0xFFFFFF
align: center
- type: button
id: button_heater
text: "보일러 켜기"
x: 10
y: 60
width: 150
height: 40
action:
- climate.set_mode:
id: my_boiler
mode: "HEAT" # 보일러 모드에서 난방 모드로 설정
font: "Roboto"
color: 0xFFFFFF
bgcolor: 0x006400 # 버튼 배경 색상: 다크 그린
align: center
- type: label
id: label_boiler_status
text: "보일러 상태: 꺼짐" # 초기 보일러 상태
x: 10
y: 110
font: "Roboto"
color: 0xFFFFFF
align: center
# 온도 변화나 보일러 상태 업데이트를 위한 설정
on_climate_update:
then:
- lambda: |-
// 보일러의 현재 온도를 가져와서 텍스트를 업데이트
id(label_temperature).set_text("현재 온도: " + String(id(my_boiler).current_temperature) + " °C");
// 보일러 상태에 따라 상태 메시지를 업데이트
if (id(my_boiler).current_mode == climate::MODE_HEAT) {
id(label_boiler_status).set_text("보일러 상태: 작동 중");
} else {
id(label_boiler_status).set_text("보일러 상태: 꺼짐");
}
설명
climate 설정:
climate 섹션에서 id: my_boiler로 해당 보일러의 구성 요소를 정의합니다. 이 ID는 온도 조절과 보일러 제어에 사용됩니다.
LVGL 디스플레이 구성:
label_temperature: 현재 온도를 표시하기 위한 레이블입니다. 초기값은 "현재 온도: -- °C"로 설정되어 있으며, 실제 온도는 이후에 업데이트될 예정입니다.
button_heater: 보일러를 켜는 버튼입니다. 이 버튼을 클릭하면 보일러의 모드가 난방 모드로 설정됩니다. 버튼의 텍스트는 "보일러 켜기"로 되어 있으며, 사용자가 쉽게 인식할 수 있도록 배경색(다크 그린)과 폰트를 설정했습니다.
label_boiler_status: 보일러의 현재 상태를 보여주는 레이블입니다. 초기 상태는 "꺼짐"으로 설정되어 있으며, 보일러의 상태에 따라 업데이트됩니다.
온도 및 상태 업데이트:
on_climate_update 블록 내에서 보일러의 상태와 현재 온도를 가져와서 레이블에 표시합니다. 이를 통해 보일러의 현재 온도와 상태가 실시간으로 업데이트되도록 하였습니다.
이와 같은 구성을 통해, LVGL을 이용한 디스플레이에서 보일러의 온도를 조절할 수 있을 뿐만 아니라, 사용자는 현황을 쉽게 파악할 수 있습니다. 만약 더 구체적인 요구사항이나 추가적인 기능이 필요하시다면 언제든지 말씀해 주세요. 고맙습니다!
☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠
뷰PDF 1,2
office view
관련자료
-
링크
-
이전
-
다음
댓글목록
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
esphome:
name: my_boiler_control
wifi:
ssid: "your_ssid"
password: "your_password"
logger:
# Climate entity for the boiler
# climate: # _2024_0926_1205_45
- platform: climate
id: my_boiler
name: "Bookroom Boiler"
climate_id: "485_ttl_ip109_bookroom_boier"
# Sensor to get the current temperature from climate entity
# sensor: # _2024_0926_1205_45
- platform: homeassistant
entity_id: climate.485_ttl_ip109_bookroom_boier
attribute: current_temperature
id: current_temperature
name: "Current Temperature"
# sensor:
sensor: # _2024_0926_1205_45
- platform: homeassistant
entity_id: climate.485_ttl_ip109_bookroom_boier
attribute: current_temperature
id: my_boiler_temperature
name: "Bookroom Boiler Temperature"
# Binary sensor to track boiler heating status using hvac_action
# binary_sensor: # _2024_0926_1205_45
- platform: homeassistant
entity_id: climate.485_ttl_ip109_bookroom_boier
id: boiler_on_off_status
attribute: hvac_action
on_state:
then:
- if:
condition:
lambda: return id(boiler_on_off_status).state == "heating"; # 현재 상태가 "heating"인지 확인
then:
- lambda: id(label_boiler_status).set_text("보일러 상태: 켜짐");
else:
- lambda: id(label_boiler_status).set_text("보일러 상태: 꺼짐");
lvgl:
# _2024_0926_1205_45
- name: "boiler_display"
id: boiler_display
widgets:
# Display the current temperature
- type: label
id: label_temperature
text: "현재 온도: -- °C" # 초기 텍스트, 나중에 업데이트
x: 10
y: 20
font: "Roboto"
color: 0xFFFFFF
align: center
# Button to turn on the boiler
- type: button
id: button_heater
text: "보일러 켜기"
x: 10
y: 60
width: 150
height: 40
action:
- climate.set_mode:
id: my_boiler
mode: "HEAT" # 난방 모드 설정
font: "Roboto"
color: 0xFFFFFF
bgcolor: 0x006400 # 다크 그린 배경색
align: center
# Display the boiler status (on/off)
- type: label
id: label_boiler_status
text: "보일러 상태: 꺼짐" # 초기 보일러 상태
x: 10
y: 110
font: "Roboto"
color: 0xFFFFFF
align: center
# Automation to update the temperature label from the climate entity
interval: # _2024_0926_1205_45
- interval: 5s
then:
- lambda: |-
auto temp = id(current_temperature).state;
id(label_temperature).set_text("현재 온도: " + String(temp) + " °C");
# Automation to update the boiler status label
# binary_sensor: # _2024_0926_1205_45
- platform: homeassistant
entity_id: climate.485_ttl_ip109_bookroom_boier
id: boiler_on_off_status
attribute: hvac_action
on_state:
then:
- lambda: |-
id(label_boiler_status).set_text("보일러 상태: 켜짐");
off_state:
then:
- lambda: |-
id(label_boiler_status).set_text("보일러 상태: 꺼짐");
# _2024_0926_1205_45
api:
services:
- service: set_temperature
variables:
temperature: float
then:
- homeassistant.service:
service: climate.set_temperature
data:
entity_id: climate.485_ttl_ip109_bookroom_boier
temperature: !lambda 'return temperature;'
===> 에러 코드
♥간단_메모글♥
-
등록일 04.15가입 인사드립니다.댓글 6
-
등록일 04.09가입인사.댓글 4
-
등록일 03.03안녕하세여댓글 1
-
등록일 02.13
최근글
-
등록일 11.19
새댓글
-
등록자 닉넴짓기어려워 등록일 11.22
-
등록자 글자사랑 등록일 11.22
-
등록자 삽질황제 등록일 11.21
-
등록자 changgeol 등록일 11.21
-
등록자 스노우캣 등록일 11.21
오늘의 홈 현황
QR코드
☞ QR코드 스캔은 kakao앱 자체 QR코드