Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Я не знаю по какой парадоксальной причине, но информации очень мало по этому поводу. Я ее смог найти только на зарубежных форумах.
Смысл в следующем.
Я показывал уже как выводить информацию в esphome с разных датчиков и на разные дисплеи. Все работает, все замечательно. НО.
Кто-то кроме меня запумывался о том, что у каждого ардуинщика есть дисплеи разные. И что ESPHome нас замечательно интегрирует с Home Assitant. И хотелось бы информацию какраз из Home Assistant выводить на дисплей подключенный к esp контроллеру. Ведь в Home Assitant очень много всякой информации. Ведь Home Assitant это сердце нашего умного дома.
И я начал “гуглить” как-же вывести например температуру процессора моей raspberry pi на которой установлен Home assistant на мой дисплей m5stack (к примеру).
И на русских просторах ничего не смог найти. А все очень банально просто. Для этого существует – platform homeassistant
Давайте покажу на примере как вывести температуру и влажность с термоментра от Xiaomi LYWSD03MMC.
Тоесть датчик температуры и влажности XIaomi отправляет данные в Home Assistant по блютузу. А мы из Home Assistant берем эти данные и оптправляем на дисплей в ESPHome.
Выглядит это следующим образом:
captive_portal:
spi:
clk_pin: 18
mosi_pin: 23
miso_pin: 19
i2c:
sda: 21
scl: 22
scan: true
sensor:
- platform: homeassistant # Cpu temperature
id: temp_balkon
entity_id: sensor.ble_temperature_balkon
- platform: homeassistant # Cpu temperature
id: humidity_balkon
entity_id: sensor.ble_humidity_balkon
font:
- file: "fonts/Roboto-Medium.ttf"
id: font_roboto_medium22
size: 22
color:
- id: RED
red: 100%
green: 0%
blue: 0%
- id: BLUE
red: 0%
green: 0%
blue: 100%
- id: WHITE
red: 100%
green: 100%
blue: 100%
display:
- platform: ili9341
id: m5stack_display
model: M5Stack
# model: TFT 2.4
cs_pin: 14
dc_pin: 27
led_pin: 32
reset_pin: 33
rotation: 0
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height(), WHITE);
it.rectangle(0, 22, it.get_width(), it.get_height(), WHITE); // header bar
it.print(it.get_width() / 2, 11, id(font_roboto_medium22), WHITE, TextAlign::CENTER, "CPU");
it.print(11, 33, id(font_roboto_medium22), WHITE, TextAlign::LEFT, "Temperature");
it.print(11, 55, id(font_roboto_medium22), WHITE, TextAlign::LEFT, "Pressure");
it.printf(it.get_width() - 11, 33, id(font_roboto_medium22), WHITE, TextAlign::RIGHT, "%.1f°C ", id(temp_balkon).state);
it.printf(it.get_width() - 11, 55, id(font_roboto_medium22), WHITE, TextAlign::RIGHT, "%.1f%% ", id(humidity_balkon).state);
Ну собственно тут много конечно всего и непонятного, там нужно по сути только вот это:
sensor:
- platform: homeassistant # Cpu temperature
id: temp_balkon
entity_id: sensor.ble_temperature_balkon
- platform: homeassistant # Cpu temperature
id: humidity_balkon
entity_id: sensor.ble_humidity_balkon
Тут смотрите мы прописываем что это платформа homeassistant, приписываем ему id произвольное по этому id мы и забираем значения для вывода на дисплей. И последнее это entity_id. Это название сенсора в Home Assitant. Тоесть мы находим сенсор температуры датчика xiaomi и сюда его вписываем:
Ну вот и все. Данный способ мне очень понадобится в дальнейшем. Я хочу на дисплей вывести все показания которые мне нужны и отображать их на дисплее.