|
Esp Home Home Assistant AddonEsp Home
|
|
|
Home Assistant OS |
Wi-Fi Garage Door Controller with Dual Sensor Integration
Key Capabilities:
1. Enhanced Door Status Monitoring:
• Open/Closed Sensors: The controller is equipped with two sensors:
• SEN2 (Open Sensor): Detects when the garage door is fully open.
• SEN1 (Closed Sensor): Detects when the garage door is fully closed.
• Real-Time Alerts: These sensors ensure the door does not get stuck in an unsafe position, providing peace of mind by preventing potential security issues or mechanical failures. You receive immediate notifications if the door is left open or if it encounters an obstruction during operation, allowing for quick corrective action.
2. Remote Control and Monitoring:
• Enhanced Signal Reliability: The controller uses an external Wi-Fi antenna, significantly increasing the reliability and range of the wireless signal. This ensures consistent and dependable connectivity, even in areas with weaker Wi-Fi signals.
• Status Updates: The system provides real-time updates on the door’s status, including whether it is open, closed, or partially open, directly to your mobile device or smart home system.
3. Wired Integration:
• COM and NC Terminals: The controller is designed to work seamlessly with existing garage door systems. The COM (Common) and NC (Normally Closed) terminals should be connected to the same output of the garage controller as a wired door opener button. This setup allows the system to operate the garage door opener just like a physical button, maintaining compatibility with your current hardware.
4. Optional Environmental Monitoring:
• Temperature Sensor (Optional): Monitor the temperature inside your garage. This data can be used to trigger automated actions, such as turning on ventilation fans if the temperature gets too high.
• Light Level Sensor (Optional): With the built-in illuminance sensor, the system can detect ambient light levels. This allows for intelligent control of lighting inside the garage, ensuring that lights are only on when needed, thus saving energy.
• Motion Sensor (Optional): A Passive Infrared (PIR) sensor can be integrated to detect motion within the garage, enhancing security by alerting you to any unauthorized access.
• Expandable I2C Interface: The controller features a connector that allows you to easily plug in external I2C sensors, such as a gas sensor, for additional environmental monitoring and safety features. This expandability makes it easy to customize the controller to meet specific needs or to upgrade it with new capabilities in the future.
5. Customizable and Adaptive:
• Temperature and Humidity Offsets: The controller allows you to adjust the temperature and humidity readings with offsets to ensure accuracy, tailored to your specific environment.
• Light Control: Customize the brightness of the garage status light via the controller, ensuring it’s always at the right level for easy visibility without being too bright or distracting.
6. Safety Features:
• Error Detection: The system can detect and alert you if both the open and closed sensors are triggered simultaneously or if neither is triggered, indicating a possible error with the garage door mechanism.
• Built-in Reset and Restart: Easily restart or reset the controller’s Wi-Fi connection with a simple button press, ensuring that your system stays online and functional.
Benefits:
• Safety and Security: The dual sensors (SEN1 and SEN2) ensure that the door operates correctly, reducing the risk of it getting stuck in an unsafe position. Real-time alerts keep you informed about the door’s status, allowing you to take immediate action if needed.
• Convenience: Remotely control your garage door from anywhere, and receive real-time updates on its status. The ability to monitor environmental conditions like temperature, humidity, and light levels (optional) adds an extra layer of functionality to your garage setup.
• Enhanced Connectivity: The external Wi-Fi antenna greatly improves the reliability of the wireless connection, ensuring that your garage controller remains connected even in areas with challenging Wi-Fi conditions.
• Expandability: With the I2C interface, you can easily expand the capabilities of your controller by adding external sensors, such as a gas sensor, for enhanced environmental monitoring.
• Energy Efficiency: The system’s ability to monitor and adjust based on environmental conditions helps reduce energy consumption, making your garage more eco-friendly.
• Smart Home Integration: Easily integrate the controller into your existing smart home system, allowing you to automate and streamline your home’s operations.
substitutions:
temperature_offset: "-3"
humidity_offset: "5"
temperature_update_interval: "60s"
illuminance_update_interval: "30s"
friendly_name: "Garage Controller"
log_level: NONE
external_components:
source: github://rednblkx/HAP-ESPHome@main
refresh: 0s
packages:
device_base: !include common/Status_LED.yaml
esphome:
name: garage-controller
# platform: ESP32
# board: esp32dev
esp32:
board: esp32dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
power_save_mode: none
fast_connect: true
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Garage Controller"
password: "password"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "someKey"
ota:
- platform: esphome
password: "password"
web_server:
port: 80
i2c:
sda: GPIO21
scl: GPIO22
scan: True
binary_sensor:
- platform: gpio
pin:
number: GPIO33
mode: INPUT_PULLUP
inverted: True
name: "Garage Door Closed Sensor"
id: garage_door_closed
device_class: garage_door
filters:
- delayed_on_off: 600ms
on_press:
- logger.log: "CLOSED"
- cover.template.publish:
id: garage_door
current_operation: IDLE
state: 'CLOSED'
- light.turn_on:
id: garage_door_status_light
red: 0%
green: 100%
blue: 0%
brightness: !lambda "return id(rgb_brightness).state / 100.0;"
- text_sensor.template.publish:
id: garage_door_status
state: "CLOSED"
on_release:
- logger.log: "IN BETWEEN"
- cover.template.publish:
id: garage_door
current_operation: OPENING
position: 0.5
- light.turn_on:
id: garage_door_status_light
red: 100%
green: 65%
blue: 0%
brightness: !lambda "return id(rgb_brightness).state / 100.0;"
- text_sensor.template.publish:
id: garage_door_status
state: "IN THE MIDDLE"
- platform: gpio
pin:
number: GPIO32
mode: INPUT_PULLUP
inverted: True
name: "Garage Door Open Sensor"
id: garage_door_open
device_class: garage_door
filters:
- delayed_on_off: 600ms
on_press:
- logger.log: "OPENED"
- cover.template.publish:
id: garage_door
current_operation: IDLE
state: 'OPEN'
- light.turn_on:
id: garage_door_status_light
red: 0%
green: 0%
blue: 100%
brightness: !lambda "return id(rgb_brightness).state / 100.0;"
- text_sensor.template.publish:
id: garage_door_status
state: "OPEN"
on_release:
- logger.log: "IN BETWEEN"
- cover.template.publish:
id: garage_door
current_operation: CLOSING
position: 0.5
- light.turn_on:
id: garage_door_status_light
red: 100%
green: 65%
blue: 0%
brightness: !lambda "return id(rgb_brightness).state / 100.0;"
- text_sensor.template.publish:
id: garage_door_status
state: "IN THE MIDDLE"
- platform: gpio
pin: GPIO26
name: "Garage Door Push Button"
on_press:
then:
- switch.turn_on: garage_door_trigger
- delay: 200ms
- switch.turn_off: garage_door_trigger
- platform: template
name: Garage Door Error
id: garage_door_error
device_class: problem
lambda: |-
return (id(garage_door_closed).state && id(garage_door_open).state) ||
(!id(garage_door_closed).state && !id(garage_door_open).state);
filters:
- delayed_on: 2min
on_press:
- light.turn_on:
id: garage_door_status_light
red: 100%
green: 0%
blue: 0%
brightness: !lambda "return id(rgb_brightness).state / 100.0;"
- text_sensor.template.publish:
id: garage_door_status
state: "ERROR"
cover:
- platform: template
name: "Garage Door"
id: garage_door
device_class: garage
stop_action:
then:
- switch.turn_on: garage_door_trigger
- delay: 200ms
- switch.turn_off: garage_door_trigger
open_action:
then:
- if:
condition:
binary_sensor.is_off: garage_door_open
then:
- switch.turn_on: garage_door_trigger
- delay: 200ms
- switch.turn_off: garage_door_trigger
close_action:
then:
- if:
condition:
binary_sensor.is_off: garage_door_closed
then:
- switch.turn_on: garage_door_trigger
- delay: 200ms
- switch.turn_off: garage_door_trigger
switch:
- platform: gpio
pin: GPIO12
id: garage_door_trigger
sensor:
- platform: sht4x
id: "shtc4_sensor"
address: 0x44
temperature:
name: "SHT40 Temperature"
id: temperature_sensor
filters:
- offset: ${temperature_offset}
- lambda: "return x + id(temperature_offset_ui).state;"
humidity:
name: "SHT40 Humidity"
id: humidity_sensor
filters:
- offset: ${humidity_offset}
- lambda: "return x + id(humidity_offset_ui).state;"
update_interval: ${temperature_update_interval}
- platform: scd4x
id: scd4x_sensor
co2:
name: "scd4x CO2"
temperature:
name: "scd4x Temperature"
humidity:
name: "scd4x Humidity"
- platform: tsl2591
name: "TSL2591 Illuminance"
id: "my_tls2591"
address: 0x29
update_interval: 10s
gain: auto
device_factor: 53
glass_attenuation_factor: 14.4
visible:
name: "TSL2591 visible light"
infrared:
name: "TSL2591 infrared light"
full_spectrum:
name: "TSL2591 full spectrum light"
calculated_lux:
id: i_lux
name: "TSL2591 Lux"
actual_gain:
id: "actual_gain"
name: "TSL2591 actual gain"
- platform: uptime
name: Uptime Raw
id: uptime_raw
internal: true
update_interval: 30s
- platform: wifi_signal
name: ${friendly_name} WiFi Signal Strength
update_interval: 600s
text_sensor:
- platform: version
name: "${friendly_name} ESPHome Version"
hide_timestamp: True
- platform: wifi_info
ip_address:
name: "${friendly_name} IP Address"
icon: mdi:ip
ssid:
name: "${friendly_name} SSID"
icon: mdi:access-point-network
mac_address:
name: "${friendly_name} MAC"
icon: mdi:folder-key-network
- platform: template
name: ${friendly_name} Uptime
lambda: |-
int seconds = (id(uptime_raw).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days > 3650 ) {
return { "Starting up" };
} else if ( days ) {
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( hours ) {
return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( minutes ) {
return { (String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else {
return { (String(seconds) +"s").c_str() };
}
icon: mdi:clock-start
update_interval: 600s
- platform: template
name: Garage Door Status
id: garage_door_status
icon: mdi:garage-variant
number:
- platform: template
name: "Temperature Offset"
id: temperature_offset_ui
unit_of_measurement: "°C"
min_value: -20
max_value: 20
step: 0.1
mode: box
update_interval: never
optimistic: true
restore_value: true
initial_value: 0
icon: "mdi:thermometer"
entity_category: config
on_value:
- lambda: 'id(shtc4_sensor).update();'
- platform: template
name: "Humidity Offset"
id: humidity_offset_ui
unit_of_measurement: "%"
min_value: -50
max_value: 50
step: 0.1
mode: box
update_interval: never
optimistic: true
restore_value: true
initial_value: 0
icon: "mdi:water-percent"
entity_category: config
on_value:
- lambda: 'id(shtc4_sensor).update();'
- platform: template
name: "RGB LED Brightness"
id: rgb_brightness
unit_of_measurement: "%"
min_value: 0
max_value: 100
step: 1
mode: slider
update_interval: never
optimistic: true
restore_value: true
initial_value: 40
icon: "mdi:mdi-brightness-2"
entity_category: config
on_value:
then:
- light.turn_on:
id: garage_door_status_light
brightness: !lambda "return x / 100.0;"
light:
- platform: esp32_rmt_led_strip
chipset: WS2812
pin: GPIO4
rmt_channel: 0
num_leds: 1
rgb_order: GRB
name: "${friendly_name} Status Light"
id: garage_door_status_light
button:
- platform: restart
name: ${friendly_name} Restart
- platform: template
name: ${friendly_name} Reset WiFi
on_press:
then:
- lambda: |-
WiFi.disconnect();
WiFi.begin();
#homekit:
# switch:
# - id: garage_door_trigger
Wi-Fi Garage Door Controller with Dual Sensor Integration
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(0)
- Likes(5)
- Well That Didn't Go to Plan Nov 27,2024
- micbanand Nov 09,2024
- Engineer Sep 11,2024
- Andres Ulloa Sep 03,2024
- Engineer Aug 26,2024
- 1 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
10design
-
10usability
-
10creativity
-
10content
More by dls dlsNet
- Wi-Fi Garage Door Controller with Dual Sensor Integration Key Capabilities:1. Enhanced Door Status Monitoring:• Open/Closed Sensors: The controller is equippe...
- aLed Controller v2 aLed Controller is an analog leds controller for the smart home. It was designed to run with Home As...
- ICS43434 Microphone Board ICS-43434 mic board. Created to use with audio-reactive WLED. Stencil is not needed but is recommend...
-
-
-
kmMiniSchield MIDI I/O - IN/OUT/THROUGH MIDI extension for kmMidiMini
109 0 0 -
DIY Laser Power Meter with Arduino
153 0 2 -
-
-
Box & Bolt, 3D Printed Cardboard Crafting Tools
152 0 2 -
-
A DIY Soldering Station Perfect for Learning (Floppy Soldering Station 3.0)
541 0 2