automatyka:homeassistant
Różnice
Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
automatyka:homeassistant [2024/04/10 12:53] – [MCP23017] sindap | automatyka:homeassistant [2024/04/20 14:36] (aktualna) – [Konfiguracja WiFi] sindap | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Home Assistant ====== | ====== Home Assistant ====== | ||
+ | ===== Konfiguracja sieci ===== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== Konfiguracja WiFi ==== | ||
+ | |||
+ | Jeżeli utraciliśmy dostęp do HA i chcemy go podłączyć do sieci WiFi możemy użyć karty SD naszego HA. Wyciągamy ją z naszego RPi i wkładamy do komputera/ | ||
+ | |||
+ | <code bash> | ||
+ | Dysk /dev/sdb: 7,42 GiB, bajtów: 7969177600, sektorów: 15564800 | ||
+ | Model dysku: Storage Device | ||
+ | Jednostki: sektorów, czyli 1 * 512 = 512 bajtów | ||
+ | Rozmiar sektora (logiczny/ | ||
+ | Rozmiar we/wy (minimalny/ | ||
+ | Typ etykiety dysku: gpt | ||
+ | Identyfikator dysku: 96A160B5-D519-482C-8AD5-11DD21BDD2DB | ||
+ | |||
+ | Urządzenie Początek | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Interesuje nas partycja ''/ | ||
+ | |||
+ | <code bash> | ||
+ | mount /dev/sdb1 /mnt/ | ||
+ | </ | ||
+ | |||
+ | Na partycji widzimy: | ||
+ | |||
+ | <code bash> | ||
+ | ls /mnt/ | ||
+ | |||
+ | bcm2710-rpi-3-b.dtb | ||
+ | bcm2710-rpi-zero-2.dtb | ||
+ | bootcode.bin | ||
+ | cmdline.txt | ||
+ | fixup_cd.dat | ||
+ | fixup_x.dat | ||
+ | start_cd.elf | ||
+ | start_x.elf | ||
+ | bcm2710-rpi-3-b-plus.dtb | ||
+ | bcm2837-rpi-3-b.dtb | ||
+ | boot.scr | ||
+ | config.txt | ||
+ | fixup.dat | ||
+ | overlays | ||
+ | start.elf | ||
+ | u-boot.bin | ||
+ | </ | ||
+ | |||
+ | W katalogu ''/ | ||
+ | |||
+ | <code bash> | ||
+ | mkdir /mnt/config | ||
+ | </ | ||
+ | |||
+ | W nim katalog '' | ||
+ | |||
+ | <code bash> | ||
+ | mkdir / | ||
+ | </ | ||
+ | |||
+ | W katalogu '' | ||
+ | |||
+ | <code bash> | ||
+ | [connection] | ||
+ | id=my-network | ||
+ | # uuid po wygenerowaniu | ||
+ | uuid=1cf0cfd8-65e7-42a4-8844-c6844ff6891a | ||
+ | type=802-11-wireless | ||
+ | |||
+ | [802-11-wireless] | ||
+ | mode=infrastructure | ||
+ | ssid=NazwaSieci | ||
+ | # Uncomment below if your SSID is not broadcasted | ||
+ | # | ||
+ | |||
+ | [802-11-wireless-security] | ||
+ | auth-alg=open | ||
+ | key-mgmt=wpa-psk | ||
+ | psk=tajnehaslo | ||
+ | |||
+ | [ipv4] | ||
+ | method=auto | ||
+ | |||
+ | [ipv6] | ||
+ | addr-gen-mode=stable-privacy | ||
+ | method=auto | ||
+ | </ | ||
+ | |||
+ | Klucz uuid powinnismy wygenerować nowy. Przykładowo na stronie [[https:// | ||
+ | |||
+ | Po zapisaniu kartę umieszczamy w RPi i uruchamiamy. Poleceniem '' | ||
+ | |||
+ | <code bash> | ||
+ | arp-scan -l --interface=wlp3s0 | ||
+ | |||
+ | Interface: wlp3s0, type: EN10MB, MAC: 60: | ||
+ | Starting arp-scan 1.10.0 with 256 hosts (https:// | ||
+ | 192.168.84.185 fe: | ||
+ | 192.168.84.147 b8: | ||
+ | 192.168.84.186 10: | ||
+ | </ | ||
+ | |||
+ | Łączymy się [[http:// | ||
+ | |||
+ | Po połączeniu się z HA należy zapisać połączenie WiFi bo plik my-network i jego katalogi są już usunięte. Po restarcie byśmy się nie połączyli. | ||
===== Aplikacja Home Assistant na Android ===== | ===== Aplikacja Home Assistant na Android ===== | ||
Linia 318: | Linia 432: | ||
comment: Płytka testowa z Wemos D1. | comment: Płytka testowa z Wemos D1. | ||
name_add_mac_suffix: | name_add_mac_suffix: | ||
+ | |||
+ | esp8266: | ||
+ | board: esp01_1m | ||
+ | framework: | ||
+ | version: recommended | ||
# Enable logging | # Enable logging | ||
Linia 469: | Linia 588: | ||
esphome: | esphome: | ||
name: " | name: " | ||
+ | friendly_name: | ||
+ | comment: Płytka testowa z Wemos D1. | ||
+ | name_add_mac_suffix: | ||
esp8266: | esp8266: | ||
board: esp01_1m | board: esp01_1m | ||
+ | framework: | ||
+ | version: recommended | ||
# Enable logging | # Enable logging | ||
Linia 633: | Linia 757: | ||
</ | </ | ||
- | ===== ESP32-S2 mini ===== | + | ===== ESP32-S2 mini ===== |
==== Podstawowa konfiguracja ==== | ==== Podstawowa konfiguracja ==== | ||
<code yaml> | <code yaml> | ||
Linia 807: | Linia 931: | ||
switch.toggle: | switch.toggle: | ||
device_class: | device_class: | ||
+ | </ | ||
+ | |||
+ | ===== ESP-WROOM-32 | ||
+ | |||
+ | ^ | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | ==== Przykład konfiguracji ESP-WROOM-32 ==== | ||
+ | |||
+ | <code yaml> | ||
+ | esphome: | ||
+ | name: esp-wroom-32 | ||
+ | friendly_name: | ||
+ | |||
+ | esp32: | ||
+ | board: esp32dev | ||
+ | framework: | ||
+ | type: esp-idf | ||
+ | version: recommended | ||
+ | |||
+ | # Enable logging | ||
+ | logger: | ||
+ | |||
+ | # Enable Home Assistant API | ||
+ | api: | ||
+ | |||
+ | ota: | ||
+ | |||
+ | wifi: | ||
+ | ssid: !secret wifi_ssid | ||
+ | password: !secret wifi_password | ||
+ | # use_address: | ||
+ | fast_connect: | ||
+ | domain: ' | ||
+ | |||
+ | # Enable fallback hotspot (captive portal) in case wifi connection fails | ||
+ | ap: | ||
+ | ssid: " | ||
+ | password: " | ||
+ | | ||
+ | manual_ip: | ||
+ | static_ip: 192.168.3.173 | ||
+ | gateway: 192.168.3.1 | ||
+ | subnet: 255.255.255.0 | ||
+ | dns1: 192.168.3.1 | ||
+ | dns2: 8.8.8.8 | ||
+ | |||
+ | captive_portal: | ||
+ | |||
+ | i2c: | ||
+ | - id: m_bus_a | ||
+ | sda: 21 # SDA | ||
+ | scl: 22 # SCL | ||
+ | scan: False | ||
+ | # frequency: 100kHz | ||
+ | - id: m_bus_b | ||
+ | sda: 17 # SDA | ||
+ | scl: 18 # SCL | ||
+ | scan: False | ||
+ | # frequency: 100kHz | ||
+ | |||
+ | # Załadowanie obsługi ekspandera mcp23017 | ||
+ | mcp23017: | ||
+ | - id: ' | ||
+ | address: 0x20 | ||
+ | i2c_id: m_bus_a | ||
+ | - id: ' | ||
+ | address: 0x20 | ||
+ | i2c_id: m_bus_b | ||
+ | |||
+ | # Wyjścia do sterowania | ||
+ | switch: | ||
+ | - platform: gpio | ||
+ | name: " | ||
+ | id: przekaznik_u1 | ||
+ | # icon: mdi: | ||
+ | pin: | ||
+ | mcp23xxx: mcp23017_U1 | ||
+ | # Use pin A0 | ||
+ | # Wyprowadzenie 21 układu. | ||
+ | number: 0 | ||
+ | mode: | ||
+ | output: True | ||
+ | # Jeżeli true to po uruchomieniu stan na wyjściu wysoki | ||
+ | # ale przełącznik w pozycji off. | ||
+ | inverted: False | ||
+ | | ||
+ | - platform: gpio | ||
+ | name: " | ||
+ | id: przekaznik_u2 | ||
+ | # icon: mdi: | ||
+ | pin: | ||
+ | mcp23xxx: mcp23017_U2 | ||
+ | # Use pin A0 | ||
+ | # Wyprowadzenie 21 układu. | ||
+ | number: 0 | ||
+ | mode: | ||
+ | output: True | ||
+ | # Jeżeli true to po uruchomieniu stan na wyjściu wysoki | ||
+ | # ale przełącznik w pozycji off. | ||
+ | inverted: False | ||
+ | |||
+ | # Wejścia przycisków | ||
+ | binary_sensor: | ||
+ | - platform: gpio | ||
+ | name: " | ||
+ | # Gdy naciśniesz to załącz " | ||
+ | on_press: | ||
+ | # toggle - każde naciśnięcie zmienia stan wyjścia | ||
+ | # turn_on - naciśnięcie zmienia stan na włączony, nie wyłączymy | ||
+ | # turn_off - naciśnięcie zmienia stan na wyłączony, | ||
+ | switch.toggle: | ||
+ | pin: | ||
+ | mcp23xxx: mcp23017_U1 | ||
+ | # Wyprowadzenie 1 układu czyli 8 (A0 = 0, A1 = 1 itd.) | ||
+ | number: 8 | ||
+ | # Ustawienie wejścia | ||
+ | mode: | ||
+ | input: True | ||
+ | pullup: True | ||
+ | # Jeżeli sterujemy minusem możemy ustawić - true | ||
+ | inverted: True | ||
+ | |||
+ | - platform: gpio | ||
+ | name: " | ||
+ | # Gdy naciśniesz to załącz " | ||
+ | on_press: | ||
+ | # toggle - każde naciśnięcie zmienia stan wyjścia | ||
+ | # turn_on - naciśnięcie zmienia stan na włączony, nie wyłączymy | ||
+ | # turn_off - naciśnięcie zmienia stan na wyłączony, | ||
+ | switch.toggle: | ||
+ | pin: | ||
+ | mcp23xxx: mcp23017_U2 | ||
+ | # Wyprowadzenie 1 układu czyli 8 (A0 = 0, A1 = 1 itd.) | ||
+ | number: 8 | ||
+ | # Ustawienie wejścia | ||
+ | mode: | ||
+ | input: True | ||
+ | pullup: True | ||
+ | # Jeżeli sterujemy minusem możemy ustawić - true | ||
+ | inverted: True | ||
+ | </ | ||
+ | |||
+ | ==== Obsługa rolety z poziomu aplikacji HA i przcisków ==== | ||
+ | |||
+ | <code yaml> | ||
+ | esphome: | ||
+ | name: esp-wroom-32 | ||
+ | friendly_name: | ||
+ | |||
+ | esp32: | ||
+ | board: esp32dev | ||
+ | framework: | ||
+ | type: esp-idf | ||
+ | version: recommended | ||
+ | |||
+ | # Enable logging | ||
+ | logger: | ||
+ | |||
+ | # Enable Home Assistant API | ||
+ | api: | ||
+ | |||
+ | ota: | ||
+ | |||
+ | wifi: | ||
+ | ssid: !secret wifi_ssid | ||
+ | password: !secret wifi_password | ||
+ | use_address: | ||
+ | fast_connect: | ||
+ | domain: ' | ||
+ | |||
+ | # Enable fallback hotspot (captive portal) in case wifi connection fails | ||
+ | ap: | ||
+ | ssid: " | ||
+ | password: " | ||
+ | | ||
+ | manual_ip: | ||
+ | static_ip: 192.168.3.175 | ||
+ | gateway: 192.168.3.1 | ||
+ | subnet: 255.255.255.0 | ||
+ | dns1: 192.168.3.1 | ||
+ | dns2: 8.8.8.8 | ||
+ | |||
+ | captive_portal: | ||
+ | |||
+ | i2c: | ||
+ | - id: m_bus_a | ||
+ | sda: 21 # SDA | ||
+ | scl: 22 # SCL | ||
+ | scan: False | ||
+ | # frequency: 100kHz | ||
+ | - id: m_bus_b | ||
+ | sda: 17 # SDA | ||
+ | scl: 18 # SCL | ||
+ | scan: False | ||
+ | # frequency: 100kHz | ||
+ | |||
+ | # Załadowanie obsługi ekspandera mcp23017 | ||
+ | mcp23017: | ||
+ | - id: ' | ||
+ | address: 0x20 | ||
+ | i2c_id: m_bus_a | ||
+ | - id: ' | ||
+ | address: 0x20 | ||
+ | i2c_id: m_bus_b | ||
+ | |||
+ | # Wyjścia do sterowania | ||
+ | switch: | ||
+ | - platform: gpio | ||
+ | name: " | ||
+ | id: roleta_d | ||
+ | # Automatyka z poziomu aplikacji HA dla rolety D | ||
+ | on_turn_on: | ||
+ | - if: | ||
+ | condition: | ||
+ | switch.is_on: | ||
+ | then: | ||
+ | - switch.turn_off: | ||
+ | - logger.log: " | ||
+ | - delay: 10ms | ||
+ | - switch.turn_off: | ||
+ | else: | ||
+ | # - switch.turn_on: | ||
+ | - delay: 20s | ||
+ | - if: | ||
+ | condition: | ||
+ | switch.is_on: | ||
+ | then: | ||
+ | - switch.turn_off: | ||
+ | | ||
+ | # icon: mdi: | ||
+ | pin: | ||
+ | mcp23xxx: mcp23017_U1 | ||
+ | # Use pin A0 | ||
+ | # Wyprowadzenie 21 układu. | ||
+ | number: 0 | ||
+ | mode: | ||
+ | output: True | ||
+ | # Jeżeli true to po uruchomieniu stan na wyjściu wysoki | ||
+ | # ale przełącznik w pozycji off. | ||
+ | inverted: False | ||
+ | | ||
+ | - platform: gpio | ||
+ | name: " | ||
+ | id: roleta_g | ||
+ | # Automatyka z poziomu aplikacji HA dla rolety G | ||
+ | on_turn_on: | ||
+ | - if: | ||
+ | condition: | ||
+ | switch.is_on: | ||
+ | then: | ||
+ | - switch.turn_off: | ||
+ | - logger.log: " | ||
+ | - delay: 10ms | ||
+ | - switch.turn_off: | ||
+ | else: | ||
+ | # - switch.turn_on: | ||
+ | - delay: 20s | ||
+ | - if: | ||
+ | condition: | ||
+ | switch.is_on: | ||
+ | then: | ||
+ | - switch.turn_off: | ||
+ | | ||
+ | |||
+ | # icon: mdi: | ||
+ | pin: | ||
+ | mcp23xxx: mcp23017_U2 | ||
+ | # Use pin A0 | ||
+ | # Wyprowadzenie 21 układu. | ||
+ | number: 0 | ||
+ | mode: | ||
+ | output: True | ||
+ | # Jeżeli true to po uruchomieniu stan na wyjściu wysoki | ||
+ | # ale przełącznik w pozycji off. | ||
+ | inverted: False | ||
+ | |||
+ | # Wejścia przycisków | ||
+ | binary_sensor: | ||
+ | - platform: gpio | ||
+ | name: " | ||
+ | # Gdy naciśniesz to załącz " | ||
+ | # Automatyka z poziomu przycisków HA dla rolety D | ||
+ | on_press: | ||
+ | # toggle - każde naciśnięcie zmienia stan wyjścia | ||
+ | # turn_on - naciśnięcie zmienia stan na włączony, nie wyłączymy | ||
+ | # turn_off - naciśnięcie zmienia stan na wyłączony, | ||
+ | # switch.toggle: | ||
+ | then: | ||
+ | - if: | ||
+ | condition: | ||
+ | or: | ||
+ | - switch.is_on: | ||
+ | - switch.is_on: | ||
+ | then: | ||
+ | - switch.turn_off: | ||
+ | - switch.turn_off: | ||
+ | else: | ||
+ | - switch.turn_on: | ||
+ | - delay: 20s | ||
+ | - if: | ||
+ | condition: | ||
+ | switch.is_on: | ||
+ | then: | ||
+ | - switch.turn_off: | ||
+ | |||
+ | pin: | ||
+ | mcp23xxx: mcp23017_U1 | ||
+ | # Wyprowadzenie 1 układu czyli 8 (A0 = 0, A1 = 1 itd.) | ||
+ | number: 8 | ||
+ | # Ustawienie wejścia | ||
+ | mode: | ||
+ | input: True | ||
+ | pullup: True | ||
+ | # Jeżeli sterujemy minusem możemy ustawić - true | ||
+ | inverted: True | ||
+ | |||
+ | - platform: gpio | ||
+ | name: " | ||
+ | # Gdy naciśniesz to załącz " | ||
+ | # Automatyka z poziomu przycisków HA dla rolety G | ||
+ | on_press: | ||
+ | # toggle - każde naciśnięcie zmienia stan wyjścia | ||
+ | # turn_on - naciśnięcie zmienia stan na włączony, nie wyłączymy | ||
+ | # turn_off - naciśnięcie zmienia stan na wyłączony, | ||
+ | # switch.toggle: | ||
+ | then: | ||
+ | - if: | ||
+ | condition: | ||
+ | or: | ||
+ | - switch.is_on: | ||
+ | - switch.is_on: | ||
+ | then: | ||
+ | - switch.turn_off: | ||
+ | - switch.turn_off: | ||
+ | else: | ||
+ | - switch.turn_on: | ||
+ | - delay: 20s | ||
+ | - if: | ||
+ | condition: | ||
+ | switch.is_on: | ||
+ | then: | ||
+ | - switch.turn_off: | ||
+ | pin: | ||
+ | mcp23xxx: mcp23017_U2 | ||
+ | # Wyprowadzenie 1 układu czyli 8 (A0 = 0, A1 = 1 itd.) | ||
+ | number: 8 | ||
+ | # Ustawienie wejścia | ||
+ | mode: | ||
+ | input: True | ||
+ | pullup: True | ||
+ | # Jeżeli sterujemy minusem możemy ustawić - true | ||
+ | inverted: True | ||
</ | </ |
automatyka/homeassistant.1712746386.txt.gz · ostatnio zmienione: 2024/04/10 12:53 przez sindap