== Home Assistant, ESPHome, BMP280 - monitorowanie temperatury i ciśnienia. ==
== Lista:==
* Raspbery PI 3 wzwyż - chociaż ja robie ten poradnik używając rpi 2 :P [[https://en.wikipedia.org/wiki/Raspberry_Pi|raspberry pi]] - koszt około €43
* ESP32 płytka [[https://en.wikipedia.org/wiki/ESP32|esp32]] - koszt około €3.5
* Karta microSD - koszt około €10
* Czujnik BMP280 - temperatura, ciśnienie [[https://www.bosch-sensortec.com/products/environmental-sensors/pressure-sensors/bmp280/|bmp280]] - koszt około €1.5
* Kabelki do łączenia ESP32 z BMP280
* kabel zasilający ESP32 micro usb
* Ethernet kabel
* WIFI dongle
* opcjonalnie obudowa, ja swoja zaprojektowałem i możesz ja pobrać tutaj https://github.com/karcio/stls/blob/main/esp32_sensor_bottom_v1.scad
{{ :img_3050.jpg?direct&600 |}}
{{ :image0.jpeg?direct&600 |}}
{{ :image1.jpeg?direct&600 |}}
{{ :image_ob2.jpeg?direct&600 |}}
== Przygotowanie HAOS obrazu: ==
* ściągnij obraz odpowiedni do twojego RPI z lokalizacji: https://github.com/home-assistant/operating-system/releases/tag/13.0
* Wypunktowaniew moim przypadku ściągnąłem ten obraz
https://github.com/home-assistant/operating-system/releases/download/13.0/haos_rpi2-13.0.img.xz
* rozpakuj używając komendy
unxz haos_rpi2-13.0.img.xz
* włóż karte SD do slotu laptopie i poniższą komenda sprawdź jak rozpoznana jest karta - u mnie to /dev/mmcbkl0
sudo fdisk -l
* przygotuj obraz na karcie SD
sudo dd if=Downloads/haos_rpi2-13.0.img of=/dev/mmcblk0 status=progress bs=1M
== Pierwsze uruchomienie HA ==
* włóż kartę SD do RPI
* podłącz Ethernet kabel
* podłącz WIFI dongle
* podłącz zasilanie i poczekaj moment, aż HA się załąduje
* na ruterze sprawdź jakie IP na RPI
* w przeglądarce wpisz adres: IP:8123
* na początku stwórz konto
== Czynności po pierwszym uruchomieniu:==
* idź do ustawień > system > sieć wybierz zakładke WIFI
* w ip4 wybierz automatyczny
* w WI-FI przeskanuj sieć, wpisz SSID i hasło - po czym zapisz ustawienie
* zrestartuj HA aby uaktywnić WIFI dongle
==Instalacja dodatków:==
* idź do: ustawienia > Add-ons
* naciśnij na klawisz dodaj i zainstaluj esphome i File editor
* esphome pozwoli podłączyć esp32 płytkę do HA
* file editor pozwoli edytować pliki konfiguracyjne HA
== Struktura konfiguracyjna HA==
* configuration.yml
* automation.yml
* secrets.yml
== Przygotowanie płytki ESP32 i podłączenie BMP280==
* BMP280 ma 6 pinów ale my użyjemy 4 VCC, GRN, SCL, SDA
* podłącz piny:
* BMP280 VCC -> ESP32 3V
* BMP280 GRN -> ESP32 GRN
* BMP280 SCL -> ESP32 D22
* BMP280 SDA -> ESP32 D21
{{ :image_ob1.jpeg?direct&600 |}}
{{ :image_ob0.jpeg?direct&600 |}}
== Podłączenie esp32 do RPI==
* podłącz esp32 za pomocą USB do RPI
* kliknij w ESPHome w zakładce
* kliknij dodaj nowe urządzenie
tak powinno wyglądać ustawienie:
esphome:
name: esp32-01
friendly_name: esp32-01
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "xxx"
ota:
- platform: esphome
password: "xxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32-01 Fallback Hotspot"
password: "xxx"
captive_portal:
i2c:
sda: 21
scl: 22
scan: True
sensor:
- platform: bmp280_i2c
temperature:
name: "bedroom temperature"
oversampling: 16x
pressure:
name: "bedroom pressure"
address: 0x76
update_interval: 60s
a tak wygląda przykładowa automatyzacja, jak temperatura wzrośnie powyżej 25 stopni, lub spadnie poniżej 5 lub 0 - wysłany zostanie email z ostrzeżeniem. Chciałbym tutaj zaznaczyć, że poniższa automatyzacja dotyczy czujnika umieszczonego poza domem. Stąd te niskie wartości temperatury :)
alias: "Temperature"
description: low temperature level
trigger:
- platform: state
entity_id:
- sensor.temperature
to: null
for:
hours: 0
minutes: 30
seconds: 0
condition:
- condition: or
conditions:
- condition: numeric_state
entity_id: sensor.temperature
above: 25
- condition: numeric_state
entity_id: sensor.temperature
below: 5
- condition: numeric_state
entity_id: sensor.temperature
below: 0
action:
- data:
message: "Temperature is: {{ states('sensor.temperature')}} C"
title: "Warning: temperature is {{ states('sensor.temperature')}} C"
action: notify.email_notification
mode: single
{{ :image_ob3.jpeg?direct&600 |}}
Dokładna dokumentacja jest tutaj: https://www.home-assistant.io/installation/raspberrypi