To jest stara wersja strony!
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 # 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" esp8266: board: esp01_1m # 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