From b7b869b0058ff266ad7d80ae9a541ebae0f45f99 Mon Sep 17 00:00:00 2001 From: Victor Alexandrovich Tsyrenschikov <77172321+tsyrenschikov@users.noreply.github.com> Date: Wed, 1 Apr 2026 22:28:42 +0500 Subject: [PATCH] 2 --- config/.gitignore | 182 ++++++++++++++++++++ config/esp32-c3-mini.yaml | 115 +++++++++++++ config/esp8266.yaml | 67 ++++++++ config/small-home.yaml | 342 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 706 insertions(+) create mode 100644 config/.gitignore create mode 100644 config/esp32-c3-mini.yaml create mode 100644 config/esp8266.yaml create mode 100644 config/small-home.yaml diff --git a/config/.gitignore b/config/.gitignore new file mode 100644 index 0000000..c4046d3 --- /dev/null +++ b/config/.gitignore @@ -0,0 +1,182 @@ +# Gitignore settings for ESPHome +# This is an example and may include too much for your use-case. +# You can modify this file to suit your needs. +/.esphome/ +/secrets.yaml +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +#uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc + +/.idea/ diff --git a/config/esp32-c3-mini.yaml b/config/esp32-c3-mini.yaml new file mode 100644 index 0000000..e5e8f5d --- /dev/null +++ b/config/esp32-c3-mini.yaml @@ -0,0 +1,115 @@ +esphome: + name: esp32-c3-mini + friendly_name: ESP32-c3-mini + platformio_options: + board_build.flash_mode: dio + +esp32: + board: esp32-c3-devkitm-1 + variant: ESP32C3 + framework: + type: esp-idf + + +# Enable logging +logger: + +# Enable Home Assistant API +api: + encryption: + key: "zGWryIToSQYigPSiZBa1ljP7QNV+f1wM/jX+k1/9J6k=" + +ota: + - platform: esphome + password: "3f84a14ae6ed33fc29cddfd8c3cfe5bf" + +wifi: + ssid: 'SmartHome' + password: '' + use_address: 192.168.88.29 + + manual_ip: + static_ip: 192.168.88.29 + gateway: 192.168.88.1 + subnet: 255.255.255.0 + power_save_mode: none + + # Enable fallback hotspot (captive portal) in case wifi connection fails + # ap: + # ssid: "Esp32-C3-Mini Fallback Hotspot" + # password: "wuMGlIsDXN19" + +one_wire: + - platform: gpio + pin: GPIO4 + id: bus1 + +i2c: + - id: bus_a + sda: GPIO6 + scl: GPIO7 + scan: true + + + +captive_portal: + +sensor: + - platform: ina219 + address: 0x40 + shunt_resistance: 0.1 ohm + current: + name: "INA219 Current" + unit_of_measurement: "A" + power: + name: "INA219 Power" + unit_of_measurement: "W" + filters: + - multiply: 10 + bus_voltage: + name: "INA219 Bus Voltage" + unit_of_measurement: "V" + shunt_voltage: + name: "INA219 Shunt Voltage" + unit_of_measurement: "V" + max_voltage: 32.0V + max_current: 3.2A + update_interval: 1s + + - platform: dallas_temp + one_wire_id: bus1 + name: "DS18B20" + update_interval: 2s + + - platform: bme680 + i2c_id: bus_a + address: 0x76 + update_interval: 1s + +# - platform: gpio +# id: switch_output1 +# name: "a8-output1" +# pin: +# pcf8574: pcf8574_hub_out_1 +# number: 0 +# mode: OUTPUT +# inverted: true + + +switch: + - platform: gpio + id: switch_output1 + pin: GPIO5 + inverted: True + + +binary_sensor: + - platform: gpio + name: "Pin GPIO21" + pin: GPIO21 + +web_server: + port: 80 + auth: + username: "silver" + password: "cbvgcjy0" \ No newline at end of file diff --git a/config/esp8266.yaml b/config/esp8266.yaml new file mode 100644 index 0000000..d5938af --- /dev/null +++ b/config/esp8266.yaml @@ -0,0 +1,67 @@ +esphome: + name: komp_vitya + friendly_name: esp8266 + +esp8266: + board: esp12e + +# Enable logging +logger: + +# Enable Home Assistant API +api: + encryption: + key: "DLO/jlbPutpVyTwKB5fP7oO36K58yiLzU0Fpw0ZN/hM=" + +ota: + - platform: esphome + password: "f98db3b86ae6f19b2d1aec85ee5f5bcd" + +wifi: + ssid: 'SmartHome' + password: '' + use_address: 192.168.88.39 + + manual_ip: + static_ip: 192.168.88.39 + gateway: 192.168.88.1 + subnet: 255.255.255.0 + power_save_mode: none + +captive_portal: + +status_led: + pin: + number: GPIO16 + inverted: True + +switch: + - platform: gpio + pin: GPIO5 + name: Relay_komp + id: relay + on_turn_off: + then: + - wait_until: + condition: + for: + time: 2s + condition: + lambda: |- + return id(relay).state == true; + - lambda: |- + id(relay).turn_off(); + + +mqtt: + broker: 192.168.88.4 + username: 'miroca' + password: 'cbvgcjy0' + discovery: False # disable entity discovery + discover_ip: True # enable device discovery + +web_server: + port: 80 + auth: + username: "silver" + password: "cbvgcjy0" \ No newline at end of file diff --git a/config/small-home.yaml b/config/small-home.yaml new file mode 100644 index 0000000..b11d525 --- /dev/null +++ b/config/small-home.yaml @@ -0,0 +1,342 @@ +esphome: + name: small-home + friendly_name: Small-home + +esp32: + board: esp32dev + framework: + type: esp-idf + +# Enable logging +logger: + +# Enable Home Assistant API +api: + encryption: + key: "/EFz4JsOw/FQu2RGJEmHg9+xm5/UdBeNbTd6mQbDN/U=" + +ota: + - platform: esphome + password: "0dac1ac3f1bae5208cc8ea81356da792" + +wifi: + ssid: "SmartHome" + password: "" + use_address: 192.168.88.27 + # Enable fallback hotspot (captive portal) in case wifi connection fails + # ap: + # ssid: "Kc868-A8 Fallback Hotspot" + # password: "gCJlyJ5kec3y" + + manual_ip: + static_ip: 192.168.88.27 + gateway: 192.168.88.1 + subnet: 255.255.255.0 + +remote_receiver: + pin: 15 + dump: + - rc_switch + tolerance: 100% + filter: 250us + idle: 4ms + buffer_size: 4kb + +remote_transmitter: + pin: 2 + # RF uses a 100% carrier signal + carrier_duty_percent: 100% + + + +i2c: + sda: 4 + scl: 5 + scan: true + id: bus_a + +# ethernet: +# type: LAN8720 +# mdc_pin: GPIO23 +# mdio_pin: GPIO18 +# clk_mode: GPIO17_OUT +# phy_addr: 0 +# use_address: 192.168.88.27 + +# manual_ip: +# static_ip: 192.168.88.27 +# gateway: 192.168.88.1 +# subnet: 255.255.255.0 +# dns1: 192.168.88.1 + +pcf8574: + - id: 'pcf8574_hub_out_1' # for output channel 1-8 + address: 0x24 + + - id: 'pcf8574_hub_in_1' # for input channel 1-8 + address: 0x22 + + +# Individual outputs +switch: + - platform: gpio + name: "a8-output1" + id: switch_output1 + pin: + pcf8574: pcf8574_hub_out_1 + number: 0 + mode: OUTPUT + inverted: true + + + - platform: gpio + name: "a8-output2" + id: switch_output2 + pin: + pcf8574: pcf8574_hub_out_1 + number: 1 + mode: OUTPUT + inverted: true + + - platform: gpio + name: "a8-output3" + id: switch_output3 + pin: + pcf8574: pcf8574_hub_out_1 + number: 2 + mode: OUTPUT + inverted: true + + - platform: gpio + name: "a8-output4" + id: switch_output4 + pin: + pcf8574: pcf8574_hub_out_1 + number: 3 + mode: OUTPUT + inverted: true + + - platform: gpio + name: "a8-output5" + id: switch_output5 + pin: + pcf8574: pcf8574_hub_out_1 + number: 4 + mode: OUTPUT + inverted: true + + - platform: gpio + name: "a8-output6" + id: switch_output6 + pin: + pcf8574: pcf8574_hub_out_1 + number: 5 + mode: OUTPUT + inverted: true + + - platform: gpio + name: "a8-output7" + id: switch_output7 + pin: + pcf8574: pcf8574_hub_out_1 + number: 6 + mode: OUTPUT + inverted: true + + - platform: gpio + name: "a8-output8" + id: switch_output8 + pin: + pcf8574: pcf8574_hub_out_1 + number: 7 + mode: OUTPUT + inverted: true + +binary_sensor: + - platform: remote_receiver + name: "remoter1" + rc_switch_raw: + protocol: 3 + code: '000000111110110100001' + on_press: + - switch.turn_off: switch_output7 + - switch.turn_on: switch_output6 + filters: + - delayed_off: 20ms + + - platform: remote_receiver + name: "remoter2" + rc_switch_raw: + protocol: 3 + code: '000000111110110100010' + + on_press: + - switch.turn_off: switch_output6 + - switch.turn_on: switch_output7 + filters: + - delayed_off: 20ms + + - platform: gpio + name: "a8-input1" + pin: + pcf8574: pcf8574_hub_in_1 + number: 0 + mode: INPUT + inverted: true + on_press: + - switch.toggle: switch_output1 + on_release: + - switch.toggle: switch_output1 + + - platform: gpio + name: "a8-input2" + pin: + pcf8574: pcf8574_hub_in_1 + number: 1 + mode: INPUT + inverted: true + on_press: + - switch.toggle: switch_output2 + on_release: + - switch.toggle: switch_output2 + + - platform: gpio + name: "a8-input3" + pin: + pcf8574: pcf8574_hub_in_1 + number: 2 + mode: INPUT + inverted: true + on_press: + - switch.toggle: switch_output3 + on_release: + - switch.toggle: switch_output3 + + - platform: gpio + name: "a8-input4" + pin: + pcf8574: pcf8574_hub_in_1 + number: 3 + mode: INPUT + inverted: true + on_press: + - switch.toggle: switch_output4 + on_release: + - switch.toggle: switch_output4 + + - platform: gpio + name: "a8-input5" + pin: + pcf8574: pcf8574_hub_in_1 + number: 4 + mode: INPUT + inverted: true + on_press: + - switch.toggle: switch_output5 + on_release: + - switch.toggle: switch_output5 + + - platform: gpio + name: "a8-input6" + pin: + pcf8574: pcf8574_hub_in_1 + number: 5 + mode: INPUT + inverted: true + on_press: + - switch.toggle: switch_output6 + on_release: + - switch.toggle: switch_output6 + + - platform: gpio + name: "a8-input7" + pin: + pcf8574: pcf8574_hub_in_1 + number: 6 + mode: INPUT + inverted: true + on_press: + - switch.toggle: switch_output7 + on_release: + - switch.toggle: switch_output7 + + - platform: gpio + name: "a8-input8" + pin: + pcf8574: pcf8574_hub_in_1 + number: 7 + mode: INPUT + inverted: true + on_press: + - switch.toggle: switch_output8 + on_release: + - switch.toggle: switch_output8 + + - platform: gpio + name: "a8-s3" + pin: + number: 32 + inverted: true + + - platform: gpio + name: "a8-s4" + pin: + number: 33 + inverted: true + + +one_wire: + - platform: gpio + pin: GPIO14 + id: bus14 + +sensor: + - platform: ina219 + address: 0x40 + shunt_resistance: 0.1 ohm + current: + name: "INA219 Current" + unit_of_measurement: "A" + power: + name: "INA219 Power" + unit_of_measurement: "W" + filters: + - multiply: 10 + bus_voltage: + name: "INA219 Bus Voltage" + unit_of_measurement: "V" + shunt_voltage: + name: "INA219 Shunt Voltage" + unit_of_measurement: "V" + max_voltage: 32.0V + max_current: 3.2A + update_interval: 1s + + - platform: dallas_temp + one_wire_id: bus14 + name: "DS18B20" + update_interval: 2s + on_value_range: + - above: 27.0 + then: + - delay: 10s + - switch.turn_on: switch_output8 + - below: 26.5 + then: + - delay: 10s + - switch.turn_off: switch_output8 + + +# web_server: +# port: 80 +# auth: +# username: "silver" +# password: "cbvgcjy0" + + +mqtt: + broker: 192.168.88.4 + username: 'miroca' + password: 'cbvgcjy0' + discovery: False # disable entity discovery + discover_ip: True # enable device discovery \ No newline at end of file