https://github.com/home-assistant/operating-system/blob/dev/Documentation/network.md
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/laptopa z systemem linux. W terminalu wydajemy polecenie fdisk -l.
fdisk -l
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/fizyczny) w bajtach: 512 / 512 Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512 Typ etykiety dysku: gpt Identyfikator dysku: 96A160B5-D519-482C-8AD5-11DD21BDD2DB Urządzenie Początek Koniec Sektory Rozmiar Typ /dev/sdb1 2048 67583 65536 32M Microsoft - zarezerwowana /dev/sdb2 67584 116735 49152 24M Linux - system plików /dev/sdb3 116736 641023 524288 256M Linux - system plików /dev/sdb4 641024 690175 49152 24M Linux - system plików /dev/sdb5 690176 1214463 524288 256M Linux - system plików /dev/sdb6 1214464 1230847 16384 8M Linux - system plików /dev/sdb7 1230848 1427455 196608 96M Linux - system plików /dev/sdb8 1427456 15564766 14137311 6,7G Linux - system plików
Interesuje nas partycja /dev/sdb1 która ma system plików zgodny z Microsoft - zarezerwowana. Montujemy ją tymczasowo do katalogu /mnt poleceniem:
/dev/sdb1
Microsoft - zarezerwowana
/mnt
mount /dev/sdb1 /mnt/
Na partycji widzimy:
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 /mnt tworzymy katalog config.
config
mkdir /mnt/config
W nim katalog network.
network
mkdir /mnt/config/network
W katalogu network tworzymy plik my-network z zawartością:
my-network
[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 #hidden=true [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://www.uuidgenerator.net/
Po zapisaniu kartę umieszczamy w RPi i uruchamiamy. Poleceniem arp-scan sprawdzamy czy nasze RPi uzyskało adres IP.
arp-scan
arp-scan -l --interface=wlp3s0 Interface: wlp3s0, type: EN10MB, MAC: 60:67:20:66:78:80, IPv4: 192.168.84.69 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.84.185 fe:20:b5:13:76:27 (Unknown: locally administered) 192.168.84.147 b8:27:eb:54:c3:26 Raspberry Pi Foundation 192.168.84.186 10:b2:32:22:4b:06 Qingdao Intelligent&Precise Electronics Co.,Ltd.
Łączymy się http://192.168.84.147:8123
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.
Czasami po instalacji aplikacji jest problem z zalogowaniem się do naszego serwera HA. Najczęściej pojawia się biały ekran i nic więcej się nie dzieje. Po pierwsze możemy sprawdzić czy wpisując ten sam adres URL do zwykłej przeglądarki Chrome naszego telefonu. Jeżeli nie działa lub nie dochodzi do autoryzacji to możemy spróbować wykonać aktualizację Chrome. Jeśli po aktualizacji możemy się połączyć to aplikacja również powinna działać prawidłowo. Najwidoczniej aplikacja HA wykorzystuje cześć zasobów Chroma.
Po instalacji dodatku przejść na zakładkę Konfiguracja. Zaznaczyć Pokaż nieużywane opcjonalne opcje konfiguracji. W polu credential_secret ustalić hasło. Wyłączyć opcję ssl. Zapisać. Można uruchomić dodatek. Dodatkowo uaktywnić Uruchamianie przy starcie, Obserwator oraz Pokaż na pasku bocznym.
Konfiguracja
Pokaż nieużywane opcjonalne opcje konfiguracji
credential_secret
ssl
Uruchamianie przy starcie
Obserwator
Pokaż na pasku bocznym
Tworzenie kopii
dd bs=4M if=/dev/mmcblk0 of=/home/user/HomeAssistant/obraz_8GB.img status=progress
Przywracanie kopii
dd bs=4M if=/home/user/HomeAssistant/obraz_8GB.img of=/dev/mmcblk0 status=progress
Użyć serwisu https://www.ovhcloud.com/
W panelu OVH zmieniamy jedynie w zakładce Serwery DNS. Ich adresy odczytujemy z panelu Cloudflare. Przechodzimy do nasza_domena.ovh → DNS → Records i kopiujemy oba gabe.ns.cloudflare.com i sydney.ns.cloudflare.com do panelu OVH.
Serwery DNS
gabe.ns.cloudflare.com
sydney.ns.cloudflare.com
Po zmianie trzeba zaczekać na aktualizację.
https://www.cloudflare.com/
moja_domena.ovh
Dokumentacja
http: use_x_forwarded_for: true trusted_proxies: - 172.30.33.0/24
configuration.yaml
File editor
Logi
Logując się zdalnie do HomeAssistant wpisujemy https://moja_domena.ovh pamiętając o https.
https
Jeżeli jest problem z kompilacją to w konfiguracji dodatku ESPHome ustawienie compile_process_limit na wartość 1 powinno pomóc.
compile_process_limit
1
Jeżeli to nie pomaga a uzywamy RPi 3B+ lub niższy to prawdopodobnie mamy problem z małą ilością pamięci RAM. Możemy dodać swap.
init_commands: - if [ ! -f /backup/_swap.swap ]; then fallocate -l 2G /backup/_swap.swap && mkswap /backup/_swap.swap && chmod 0600 /backup/_swap.swap && swapon /backup/_swap.swap && echo SWAP_NEW_FILE_CREATED_USED ; elif [[ ! $(dmesg|grep _swap.swap) = *swap\ on* ]] ; then swapon /backup/_swap.swap && echo SWAP_USING_OLD_FILE ; else swapoff /backup/_swap.swap && swapon /backup/_swap.swap && echo SWAP_FINAL_ELSE_STATEMENT ; fi
Po przeładowaniu systemu możemy się zalogować przez SSH i sprawdzić poleceniem htop zasoby systemu. Plik swap powinien pracować prawidłowo a kompilacja powinna się powieźć. Ponadto możemy usunąć wcześniej ustalony limit w opcji compile_process_limit. Również ponownie możemy uruchomić tryb ochrony.
htop
tryb ochrony
Należy zwrócić, że karta SD o pojemności 8GB to jest mało. Utworzenie pliku swap o wielkości 2GB praktycznie zajmie nam całą kartę. Do testów można utworzyć plik 1GB ale zalecane jest użycie karty SD minimum 16GB.
swap
Przykład:
esphome: # To jest nazwa węzła. Powinien być zawsze unikalny w Twojej sieci ESPHome. # Może zawierać tylko małe litery, cyfry i łączniki i może mieć domyślnie # maksymalnie 24 znaki lub 31 znaków, jeśli name_add_mac_suffix # ma wartość false. Nazwa ta odpowiada nazwie pliku yaml. name: "esp8266plytka" # Przyjazna nazwa. Można uzywać spacji. Jest używana przez # Home Assistant jako nazwa integracji, nazwa urządzenia # i w razie potrzeby jest automatycznie poprzedzany elementami. friendly_name: Wemos D1 # Dodatkowe informacje tekstowe o tym węźle. # Tylko do wyświetlania w interfejsie użytkownika. comment: Płytka testowa z Wemos D1. # w postaci <nazwa> -aabbcc. Domyślnie jest to fałsz. # Zobacz Dodawanie adresu MAC jako przyrostka do nazwy urządzenia. name_add_mac_suffix: False esp8266: board: esp01_1m framework: version: recommended # Enable logging logger: # Enable Home Assistant API api: ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password #manual_ip: # static_ip: 192.168.3.21 # gateway: 192.168.3.1 # subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "PLYTKA_TESTOWA" password: "skomplikowanehaslo" captive_portal: # Uruchomienie interfejsu i2c i2c: sda: GPIO4 scl: GPIO5 scan: true # frequency: 100kHz # Załadowanie obsługi ekspandera mcp23017 mcp23017: - id: 'mcp23017_U1' address: 0x20 - id: 'mcp23017_U2' address: 0x21 # Wyjścia do sterowania switch: - platform: gpio name: "Przekaźnik U1" id: przekaznik_u1 # icon: mdi:globe-light-outline 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: "Przekaźnik U2" id: przekaznik_u2 # icon: mdi:globe-light-outline 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 - platform: gpio name: "Przekaźnik WeMos" id: przekaznik_wemos pin: number: GPIO12 inverted: false # Wejścia przycisków binary_sensor: - platform: gpio name: "Przycisk pin 1 układu MCP U1" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u1 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: "Przycisk pin 1 układu MCP U2" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u2 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 - platform: gpio name: "Przycisk pin D7 WeMos" pin: number: GPIO13 inverted: True on_press: switch.toggle: przekaznik_wemos device_class: connectivity
Maksymalnie do jednej linii I²C możemy podłączyć do ośmiu układów co da nam do dyspozycji 128 portów.
8 połączonych dodatkowo MCP23017 daje nam 128 portów GPIO. Jeżeli będzie mało możemy zwiększyć ilość magistral I2C. Użycie układu da nam 8 kanałów I2C. Łącząc to z kolejnymi układami MCP23017 daje nam to teoretycznie 1024 porty. Ponadto możemy połączyć 8 układów TCA9548A a do nich po 64 układy MCP23017. Daje nam to 8192 porty. To jednak tylko teoria. Trzeba uwzględnić opóźnienia, zakłócenia i takie tam.
Poniżej przykład konfiguracji:
esphome: name: "esp8266plytka" friendly_name: Wemos D1 comment: Płytka testowa z Wemos D1. name_add_mac_suffix: False esp8266: board: esp01_1m framework: version: recommended # Enable logging logger: # Enable Home Assistant API api: ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password #manual_ip: # static_ip: 192.168.3.21 # gateway: 192.168.3.1 # subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "PLYTKA_TESTOWA" password: "skomplikowanehaslo" captive_portal: # Uruchomienie interfejsu i2c i2c: - id: bus_a sda: GPIO4 scl: GPIO5 scan: true # Maksymalna częstotliwość pracy TCA9548A to 400kHz # Domyślna 50kHz # frequency: 400kHz tca9548a: # Adresowanie od 0x70, 0x71... do 0x77 - address: 0x70 id: multiplex0 i2c_id: bus_a channels: - bus_id: tca_can0 channel: 0 - bus_id: tca_can1 channel: 1 # Załadowanie obsługi ekspandera mcp23017 mcp23017: - id: 'mcp23017_U1' address: 0x20 i2c_id: tca_can0 - id: 'mcp23017_U2' address: 0x21 i2c_id: tca_can1 # Wyjścia do sterowania switch: - platform: gpio name: "Przekaźnik U1" id: przekaznik_u1 # icon: mdi:globe-light-outline 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: "Przekaźnik U2" id: przekaznik_u2 # icon: mdi:globe-light-outline 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 - platform: gpio name: "Przekaźnik WeMos" id: przekaznik_wemos pin: number: GPIO12 inverted: false # Wejścia przycisków binary_sensor: - platform: gpio name: "Przycisk pin 1 układu MCP U1" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u1 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: "Przycisk pin 1 układu MCP U2" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u2 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 - platform: gpio name: "Przycisk pin D7 WeMos" pin: number: GPIO13 inverted: True on_press: switch.toggle: przekaznik_wemos device_class: connectivity
http://domoticx.com/module-tca9548a-i2c-multiplexer/
esphome: name: "esp8266plytka" friendly_name: Wemos D1 comment: Płytka testowa z Wemos D1. name_add_mac_suffix: False esp8266: board: esp01_1m framework: version: recommended # Enable logging logger: # Enable Home Assistant API api: ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password #manual_ip: # static_ip: 192.168.3.21 # gateway: 192.168.3.1 # subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "PLYTKA_TESTOWA" password: "skomplikowanehaslo" captive_portal: # Uruchomienie interfejsu i2c i2c: - id: bus_a sda: GPIO4 scl: GPIO5 scan: true # Maksymalna częstotliwość pracy TCA9548A to 400kHz # Domyślna 50kHz # frequency: 100kHz tca9548a: # Adresowanie od 0x70, 0x71... do 0x77 - address: 0x70 id: multiplex0 i2c_id: bus_a channels: - bus_id: tca_can0 channel: 0 - bus_id: tca_can1 channel: 1 # Załadowanie obsługi ekspandera mcp23017 mcp23017: - id: 'mcp23017_U1' address: 0x22 i2c_id: tca_can0 - id: 'mcp23017_U2' address: 0x20 i2c_id: tca_can1 display: - platform: lcd_pcf8574 dimensions: 16x2 i2c_id: tca_can0 address: 0x27 id: lcd update_interval: 10s lambda: |- it.strftime(0, 0, "Godzina: %H:%M", id(my_time).now()); it.strftime(0, 1, "Data: %d.%m.%Y", id(my_time).now()); # it.printf(0, 1, "Hello Line2!"); # it.strftime("Czas: %H:%M Data: %d.%m.%Y", id(my_time).now()); time: - platform: homeassistant id: my_time # Wyjścia do sterowania switch: - platform: gpio name: "Przekaźnik U1" id: przekaznik_u1 # icon: mdi:globe-light-outline 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: "Przekaźnik U2" id: przekaznik_u2 # icon: mdi:globe-light-outline 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 - platform: gpio name: "Przekaźnik WeMos" id: przekaznik_wemos pin: number: GPIO12 inverted: false # Wejścia przycisków binary_sensor: - platform: gpio name: "Przycisk pin 1 układu MCP U1" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u1 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: "Przycisk pin 1 układu MCP U2" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u2 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 - platform: gpio name: "Przycisk pin D7 WeMos" pin: number: GPIO13 inverted: True on_press: switch.toggle: przekaznik_wemos device_class: connectivity
esphome: name: esp32-mini01 friendly_name: esp32-mini01 comment: Smart Dunny Lolin S2 Mini esp32: board: lolin_s2_mini variant: ESP32S2 framework: type: esp-idf version: recommended # Custom sdkconfig options sdkconfig_options: CONFIG_COMPILER_OPTIMIZATION_PERF: y
esphome: name: esp32-mini01 friendly_name: esp32-mini01 comment: Smart Dunny Lolin S2 Mini esp32: board: lolin_s2_mini variant: ESP32S2 framework: type: esp-idf version: recommended # Optymalizacja kompliacji pod kątem wydajności. sdkconfig_options: CONFIG_COMPILER_OPTIMIZATION_PERF: y # Enable logging logger: # logs: # component: ERROR # Enable Home Assistant API api: ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "PLYTKA_TESTOWA" password: "skomplikowanehaslo" captive_portal: # Konfiguracja portów i2c. # Domyślnie porty pracują z taktowaniem 50kHz. # Do prawidłowej pracy z układami MCP23017 częstotliwość # trzeba podwyższyc do minimum 800kHz. # Dalsze swiekszenie częstoptliwości będzie wymagać podniesienia napięcia zasilania # układów MCP23017 z 3,3V do 5V. i2c: - id: bus_a sda: 33 # SDA scl: 35 # SCL scan: False frequency: 800kHz - id: bus_b sda: 36 # SDA scl: 34 # SCL scan: False frequency: 800kHz # Załadowanie obsługi ekspandera mcp23017. # Do kazdego z portów bus_a i bus_b możemy podłączyć # po 8 układów MCP23017 mcp23017: - id: 'mcp23017_U1' address: 0x22 i2c_id: bus_a - id: 'mcp23017_U2' address: 0x20 i2c_id: bus_b # Wyjścia do sterowania switch: - platform: gpio name: "Przekaźnik U1" id: przekaznik_u1 # icon: mdi:globe-light-outline 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: "Przekaźnik U2" id: przekaznik_u2 # icon: mdi:globe-light-outline 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 - platform: gpio name: "Przekaźnik WeMos S2 mini" id: przekaznik_wemos restore_mode: ALWAYS_OFF pin: number: GPIO1 inverted: false # Wejścia przycisków binary_sensor: - platform: gpio name: "Przycisk pin 1 układu MCP U1" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u1 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: "Przycisk pin 1 układu MCP U2" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u2 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 - platform: gpio name: "Przycisk pin 2 Wemos" pin: number: GPIO2 inverted: True on_press: switch.toggle: przekaznik_wemos device_class: connectivity
esphome: name: esp-wroom-32 friendly_name: ESP WROOM 32, 38 pins 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: '192.168.3.173' fast_connect: True domain: '.local' # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "TEST" password: "tajnehaslo" 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: 'mcp23017_U1' address: 0x20 i2c_id: m_bus_a - id: 'mcp23017_U2' address: 0x20 i2c_id: m_bus_b # Wyjścia do sterowania switch: - platform: gpio name: "Przekaźnik U1" id: przekaznik_u1 # icon: mdi:globe-light-outline 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: "Przekaźnik U2" id: przekaznik_u2 # icon: mdi:globe-light-outline 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: "Przycisk pin 1 układu MCP U1" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u1 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: "Przycisk pin 1 układu MCP U2" # Gdy naciśniesz to załącz "przekaznik" 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, nie włączymy switch.toggle: przekaznik_u2 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
esphome: name: esp-wroom-32 friendly_name: ESP WROOM 32, 38 pins 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: '192.168.3.175' fast_connect: True domain: '.local' # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp-Wroom-32 Fallback Hotspot" password: "tajnehaslo" 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: 'mcp23017_U1' address: 0x20 i2c_id: m_bus_a - id: 'mcp23017_U2' address: 0x20 i2c_id: m_bus_b # Wyjścia do sterowania switch: - platform: gpio name: "Opuść roletę" id: roleta_d # Automatyka z poziomu aplikacji HA dla rolety D on_turn_on: - if: condition: switch.is_on: roleta_g then: - switch.turn_off: roleta_g - logger.log: "Polecenie za then dla rolety_d" - delay: 10ms - switch.turn_off: roleta_d else: # - switch.turn_on: roleta_d - delay: 20s - if: condition: switch.is_on: roleta_d then: - switch.turn_off: roleta_d # icon: mdi:globe-light-outline 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: "Podnieś roletę" id: roleta_g # Automatyka z poziomu aplikacji HA dla rolety G on_turn_on: - if: condition: switch.is_on: roleta_d then: - switch.turn_off: roleta_d - logger.log: "Polecenie za then dla rolety_g" - delay: 10ms - switch.turn_off: roleta_g else: # - switch.turn_on: roleta_g - delay: 20s - if: condition: switch.is_on: roleta_g then: - switch.turn_off: roleta_g # icon: mdi:globe-light-outline 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: "Opuść roletę" # Gdy naciśniesz to załącz "przekaznik" # 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, nie włączymy # switch.toggle: roleta_d then: - if: condition: or: - switch.is_on: roleta_d - switch.is_on: roleta_g then: - switch.turn_off: roleta_d - switch.turn_off: roleta_g else: - switch.turn_on: roleta_d - delay: 20s - if: condition: switch.is_on: roleta_d then: - switch.turn_off: roleta_d 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: "Podnieś roletę" # Gdy naciśniesz to załącz "przekaznik" # 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, nie włączymy # switch.toggle: roleta_g then: - if: condition: or: - switch.is_on: roleta_d - switch.is_on: roleta_g then: - switch.turn_off: roleta_d - switch.turn_off: roleta_g else: - switch.turn_on: roleta_g - delay: 20s - if: condition: switch.is_on: roleta_g then: - switch.turn_off: roleta_g 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