esphome: name: aa-16 friendly_name: AA-16 esp32: board: esp32dev framework: type: esp-idf # Enable logging logger: wifi: ssid: BMW password: E34m50b25 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Aa-16 Fallback Hotspot" password: "auXMNh5pqvOA" captive_portal: i2c: sda: 4 scl: 5 scan: true id: bus_a # Example configuration entry pcf8574: - id: 'pcf8574_hub_out_1' # for output channel 1-8 address: 0x24 - id: 'pcf8574_hub_out_2' # for output channel 9-16 address: 0x25 - id: 'pcf8574_hub_in_1' # for input channel 1-8 address: 0x21 - id: 'pcf8574_hub_in_2' # for input channel 9-16 address: 0x22 # Individual outputs switch: # Выход 1 - platform: gpio name: "output_1" id: output_1 pin: pcf8574: pcf8574_hub_out_1 number: 0 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_15 on_turn_off: - lambda: |- if (!id(output_1).state && !id(output_2).state && !id(output_3).state && !id(output_4).state && !id(output_5).state && !id(output_6).state && !id(output_7).state) { id(output_15).turn_off(); } # Выход 2 - platform: gpio name: "output_2" id: output_2 pin: pcf8574: pcf8574_hub_out_1 number: 1 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_15 on_turn_off: - lambda: |- if (!id(output_1).state && !id(output_2).state && !id(output_3).state && !id(output_4).state && !id(output_5).state && !id(output_6).state && !id(output_7).state) { id(output_15).turn_off(); } # Выход 3 - platform: gpio name: "output_3" id: output_3 pin: pcf8574: pcf8574_hub_out_1 number: 2 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_15 on_turn_off: - lambda: |- if (!id(output_1).state && !id(output_2).state && !id(output_3).state && !id(output_4).state && !id(output_5).state && !id(output_6).state && !id(output_7).state) { id(output_15).turn_off(); } # Выход 4 - platform: gpio name: "output_4" id: output_4 pin: pcf8574: pcf8574_hub_out_1 number: 3 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_15 on_turn_off: - lambda: |- if (!id(output_1).state && !id(output_2).state && !id(output_3).state && !id(output_4).state && !id(output_5).state && !id(output_6).state && !id(output_7).state) { id(output_15).turn_off(); } # Выход 5 - platform: gpio name: "output_5" id: output_5 pin: pcf8574: pcf8574_hub_out_1 number: 4 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_15 on_turn_off: - lambda: |- if (!id(output_1).state && !id(output_2).state && !id(output_3).state && !id(output_4).state && !id(output_5).state && !id(output_6).state && !id(output_7).state) { id(output_15).turn_off(); } # Выход 6 - platform: gpio name: "output_6" id: output_6 pin: pcf8574: pcf8574_hub_out_1 number: 5 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_15 on_turn_off: - lambda: |- if (!id(output_1).state && !id(output_2).state && !id(output_3).state && !id(output_4).state && !id(output_5).state && !id(output_6).state && !id(output_7).state) { id(output_15).turn_off(); } # Выход 7 - platform: gpio name: "output_7" id: output_7 pin: pcf8574: pcf8574_hub_out_1 number: 6 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_15 on_turn_off: - lambda: |- if (!id(output_1).state && !id(output_2).state && !id(output_3).state && !id(output_4).state && !id(output_5).state && !id(output_6).state && !id(output_7).state) { id(output_15).turn_off(); } - platform: gpio name: "output_8" id: output_8 pin: pcf8574: pcf8574_hub_out_1 number: 7 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_14 on_turn_off: - lambda: |- if (!id(output_8).state && !id(output_9).state && !id(output_10).state) { id(output_14).turn_off(); } - platform: gpio name: "output_9" id: output_9 pin: pcf8574: pcf8574_hub_out_2 number: 0 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_14 on_turn_off: - lambda: |- if (!id(output_8).state && !id(output_9).state && !id(output_10).state) { id(output_14).turn_off(); } - platform: gpio name: "output_10" id: output_10 pin: pcf8574: pcf8574_hub_out_2 number: 1 mode: OUTPUT inverted: true icon: mdi:valve on_turn_on: - delay: 3min - switch.turn_on: output_14 on_turn_off: - lambda: |- if (!id(output_8).state && !id(output_9).state && !id(output_10).state) { id(output_14).turn_off(); } - platform: gpio name: "output_11" id: output_11 pin: pcf8574: pcf8574_hub_out_2 # Use pin number 2 number: 2 # One of INPUT or OUTPUT mode: OUTPUT inverted: true icon: mdi:valve - platform: gpio name: "output_12" id: output_12 pin: pcf8574: pcf8574_hub_out_2 # Use pin number number: 3 # One of INPUT or OUTPUT mode: OUTPUT inverted: true icon: mdi:valve - platform: gpio name: "output_13" id: output_13 pin: pcf8574: pcf8574_hub_out_2 # Use pin number 6 number: 4 # One of INPUT or OUTPUT mode: OUTPUT inverted: true icon: mdi:pump on_turn_on: - delay: 100ms - switch.turn_on: output_16 on_turn_off: - lambda: |- if (!id(output_13).state && !id(output_14).state && !id(output_15).state) { id(output_16).turn_off(); } - platform: gpio name: "output_14" id: output_14 pin: pcf8574: pcf8574_hub_out_2 # Use pin number number: 5 # One of INPUT or OUTPUT mode: OUTPUT inverted: true icon: mdi:pump on_turn_on: - delay: 100ms - switch.turn_on: output_16 on_turn_off: - lambda: |- if (!id(output_13).state && !id(output_14).state && !id(output_15).state) { id(output_16).turn_off(); } - platform: gpio name: "output_15" id: output_15 pin: pcf8574: pcf8574_hub_out_2 # Use pin number 6 number: 6 # One of INPUT or OUTPUT mode: OUTPUT inverted: true icon: mdi:pump on_turn_on: - delay: 100ms - switch.turn_on: output_16 on_turn_off: - lambda: |- if (!id(output_13).state && !id(output_14).state && !id(output_15).state) { id(output_16).turn_off(); } - platform: gpio name: "output_16" id: output_16 pin: pcf8574: pcf8574_hub_out_2 # Use pin number number: 7 # One of INPUT or OUTPUT mode: OUTPUT inverted: true icon: mdi:gas-burner # Enable Home Assistant API api: encryption: key: "jc8QsTkM8zIZLY6R4ClH7ea4zhG7lcdyfnJO0aK1zY8=" ota: - platform: esphome password: "2fda9f37d85a02cd577b8afc92b6b70e"