Advertisement
Guest User

Window Opener

a guest
Jan 18th, 2025
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. esphome:
  2. name: abridor-ventana-bano
  3. platform: ESP8266
  4. board: nodemcuv2 # Ajustado para ESP8266
  5.  
  6. wifi:
  7. ssid: "yourwifi"
  8. password: "pass"
  9.  
  10. logger:
  11.  
  12. api:
  13.  
  14. ota:
  15. platform: esphome
  16.  
  17. # Pines para el motor (puente H L9110)
  18. output:
  19. - platform: gpio
  20. pin: D1 # GPIO5
  21. id: motor_forward
  22. - platform: gpio
  23. pin: D2 # GPIO4
  24. id: motor_backward
  25.  
  26. # Pines para los finales de carrera (configurados con pull-up interno)
  27. binary_sensor:
  28. - platform: gpio
  29. pin:
  30. number: GPIO0 # D3 en la placa
  31. mode: INPUT_PULLUP # Configuración de pull-up interno
  32. name: "Límite Abierto"
  33. id: limite_abierto
  34. filters:
  35. - lambda: return !x; # Invertir la lógica del sensor con una expresión lambda
  36. on_press:
  37. - output.turn_off: motor_forward # Detener motor al alcanzar el límite abierto
  38. - switch.turn_off: motor # Apagar el interruptor en HA
  39.  
  40. - platform: gpio
  41. pin:
  42. number: GPIO12 # GPIO12 para "Límite Cerrado"
  43. mode: INPUT_PULLUP # Configuración de pull-up interno
  44. name: "Límite Cerrado"
  45. id: limite_cerrado
  46. filters:
  47. - lambda: return !x; # Invertir la lógica del sensor con una expresión lambda
  48. on_press:
  49. - output.turn_off: motor_backward # Detener motor al alcanzar el límite cerrado
  50. - switch.turn_off: motor # Apagar el interruptor en HA
  51.  
  52. # Switches para controlar el motor
  53. switch:
  54. - platform: template
  55. name: "Abrir Ventana"
  56. turn_on_action:
  57. - lambda: |-
  58. if (id(limite_abierto).state) {
  59. ESP_LOGD("Abrir Ventana", "Límite abierto activado. No se puede abrir más.");
  60. } else {
  61. // Si no está en el límite cerrado, permitir abrir
  62. id(motor).turn_on();
  63. id(motor_forward).turn_on();
  64. }
  65. turn_off_action:
  66. - lambda: |-
  67. id(motor).turn_off();
  68. id(motor_forward).turn_off();
  69.  
  70. - platform: template
  71. name: "Cerrar Ventana"
  72. turn_on_action:
  73. - lambda: |-
  74. if (id(limite_cerrado).state) {
  75. ESP_LOGD("Cerrar Ventana", "Límite cerrado activado. No se puede cerrar más.");
  76. } else {
  77. // Si no está en el límite abierto, permitir cerrar
  78. id(motor).turn_on();
  79. id(motor_backward).turn_on();
  80. }
  81. turn_off_action:
  82. - lambda: |-
  83. id(motor).turn_off();
  84. id(motor_backward).turn_off();
  85.  
  86. - platform: template
  87. name: "Detener Motor"
  88. id: motor
  89. turn_on_action:
  90. - output.turn_off: motor_forward
  91. - output.turn_off: motor_backward
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement