== 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