Narzędzia użytkownika

Narzędzia witryny


automatyka:homeassistant

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
automatyka:homeassistant [2024/04/10 12:54] – [Wyświetlacz na PCF8574, 1602, 16x2] sindapautomatyka:homeassistant [2024/04/20 14:36] (aktualna) – [Konfiguracja WiFi] sindap
Linia 1: Linia 1:
 ====== Home Assistant ====== ====== Home Assistant ======
  
 +===== Konfiguracja sieci =====
 +
 +[[https://github.com/home-assistant/operating-system/blob/dev/Documentation/network.md]]
 +
 +==== 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/laptopa z systemem linux. W terminalu wydajemy polecenie ''fdisk -l''.
 +
 +<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/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
 +</code>
 +
 +Interesuje nas partycja ''/dev/sdb1'' która ma system plików zgodny z ''Microsoft - zarezerwowana''. Montujemy ją tymczasowo do katalogu ''/mnt'' poleceniem:
 +
 +<code bash>
 +mount /dev/sdb1 /mnt/
 +</code>
 +
 +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
 +</code>
 +
 +W katalogu ''/mnt'' tworzymy katalog ''config''.
 +
 +<code bash>
 +mkdir /mnt/config
 +</code>
 +
 +W nim katalog ''network''.
 +
 +<code bash>
 +mkdir /mnt/config/network
 +</code>
 +
 +W katalogu ''network'' tworzymy plik ''my-network'' z zawartością:
 +
 +<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
 +#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
 +</code>
 +
 +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.
 +
 +<code bash>
 +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.
 +</code>
 +
 +Łą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.
 ===== Aplikacja Home Assistant na Android ===== ===== Aplikacja Home Assistant na Android =====
  
Linia 643: Linia 757:
 </code> </code>
  
-===== ESP32-S2 mini  =====+===== ESP32-S2 mini =====
 ==== Podstawowa konfiguracja ==== ==== Podstawowa konfiguracja ====
 <code yaml> <code yaml>
Linia 817: Linia 931:
       switch.toggle: przekaznik_wemos       switch.toggle: przekaznik_wemos
     device_class: connectivity     device_class: connectivity
 +</code>
 +
 +===== ESP-WROOM-32  =====
 +
 +^    GPIO  ^  PIN  ^      PIN  ^  GPIO  ^ FUNCTION   ^
 +|          |  1    |      38          | GND        |
 +|          |  2    |      37    23    | VSPI MOSI  |
 +|    36    |  3    |      36    22    | I2C A SCL  |
 +|    39    |  4    |      35    1     | UART TX    |
 +|    34    |  5    |      34    3     | UART RX    |
 +|    35    |  6    |      33    21    | I2C A SDA  |
 +|    32    |  7    |      32          | GND        |
 +|    33    |  8    |      31    19    | VSPI MISO  |
 +|    25    |  9    |      30    18    | VSPI SCK   |
 +|    26    |  10        29    5     | VSPI SS    |
 +|    27    |  11        28    17    | I2C B SCL  |
 +|    14    |  12        27    16    | I2C A SDA  |
 +|    12    |  13        26    4     | ADC 10     |
 +|          |  14        25    0     | ADC 11     |
 +|    13    |  15        24    2     | ADC 12     |
 +|    9      16        23    15    | ADC 13     |
 +|    10    |  17        22    8     | FLASH D1   |
 +|    11    |  18        21    7     | FLASH D0   |
 +|          |  19        20    6     | FLASH SCK  |
 +
 +==== Przykład konfiguracji ESP-WROOM-32 ====
 +
 +<code yaml>
 +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
 +</code>
 +
 +==== Obsługa rolety z poziomu aplikacji HA i przcisków ====
 +
 +<code yaml>
 +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
 </code> </code>
automatyka/homeassistant.1712746456.txt.gz · ostatnio zmienione: 2024/04/10 12:54 przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki