Hola, tengo entre manos varios proyectos en mi casa, como he puesto en mi presentación soy nuevo en esto y con solo dos meses que conozco homeassistant.
he adquirido varios esp8266-01s relay y estoy viendo el potencial que tienen.
Varios los modifique para utilizar el gpio2, que no se utiliza en la placa para utilizarlo de entrada con los pulsadores de las habitaciones y van muy bien.
Ahora estoy con la rejilla del aire acondicionado, he modificado la rejilla y le he puesto un servo motor modificado y controlado por dos reles que a su vez maneja un esp8266. Con dos finales de carrera para saber si las lamas están abiertas o cerradas.
El problema es el código:
Si le doy abrir, abre y cuando llega a su final de carrera para y igual con el cierre. Lo malo es que si esta ya en el final de carrera, por ejemplo abierta y le doy a abrir se activa el rele de abrir, (forzándose el motor y mas).
Lo que quiero hacer es que si un final de carrera esta activo como el ejemplo si le doy abrir no haga nada y solo se active si le doy a cerrar…
En el switch. Si lo pones en el binary y pulsas directamente en el switch, no hará caso del if. Si lo pones en el switch, cuando pulses en el binary este llamará al switch y se comprobará igualmente.
No me aclaro, lo siento…
He estado probando de todo, y no me deja ni compilar, ademas no se como implementar ese ejemplo, no tengo idea de donde poner los “id” de los finales de carrera, ni como hacer que se active un rele y luego el otro…
hace muchísimo tiempo que no hago nada de programación y me esta costando coger el tema.
Aquí tienes el código con los ifs. Poniéndolos en el binary te lo he simplificado. Simplemente, pones un if con la condición de solo abrir si está cerrada y solo cerrar si está abierta.
muchas gracias, eso ya lo probe y me daba error al validar por el “if”.
con el codigo que me has puesto me da este error:
INFO Reading configuration /config/esphome/control_entradas.yaml…
ERROR Error while reading config: Invalid YAML syntax. Please see YAML syntax reference or use an online YAML syntax validator:
while parsing a block mapping
in “/config/esphome/control_entradas.yaml”, line 38, column 9:
- if:
^
expected , but found ‘-’
in “/config/esphome/control_entradas.yaml”, line 41, column 9:
- switch.turn_off: rele_1
Lo he traducido y espera el final del if y no veo que poner.
igual es una tontería pero no caigo…
Gracias por todo de verdad…
El problema es que ahí has puesto la condición en «on_turn_on», vamos, que es «cuando se enciende haz esto», por tanto, si pones el if ahí, lo que harás es que se encenderá y no lo apagarás después.
Por eso lo he puesto en el binary, para evitar que lo enciendas.
Buenas Miguel Ángel…
De la manera que lo expones lo he probado y si el final de carrera está activo por ejem(abrir) y le das al switch de abrir, se activa el relé y igual pasa con cerrar…
Otra cosa es que este el final de carrera de abrir y le dé a cerrar, cuando llega a su final de carrera para y al revés también lo hace.
Mi idea es controlar la rejilla con una sonda de temperatura la cual abra y cierra la rejilla, con lo cual con esa configuración me valdría, lo que pasa es que quiero también tener los switch para que si una habitación está vacía cerrar la rejilla manualmente, lo que conlleva que alguno de la casa por error le dé a cerrar cuando ya esté cerrada… No sé si me he explicado…
He puesto “on_trun_on”, por que no se me ocurre que poner, lo ideal sería que si su final de carrera está activo, el switch aparezca desahabilitado o que si, se le da, no haga nada…
De todas maneras muchas gracias por tu ayuda…, por que ya le voy cogiendo un poco el hilo al tema, solo me faltan más conocimientos…jeje
Si, están ligados, el gpio1 y gpio3 los tengo conectados a unos micropulsadores normalmente cerrados, que me hacen de finales de carrera, el gpio0 y el gpio2 son las salidas a los relés…
Si te he entendido bien, es exactamente como dices.
Lo que ocurre es que si, la rejilla está abierta y le das abrir el relé de abrir se activa, se activa siempre que le des manualmente. Y no sé cómo evitar eso.
Ahh vale, ya te he entendido. Es que me he hecho un lío yo solo. Pensaba que los binary_sensor eran «botones» que pulsabas para abrir y cerrar, no que eran los finales de carrera en sí.
Entonces lo que se me ocurre es que crees un switch template que usaremos para «abrir y cerrar», y será este el que tengan las condiciones y llama a un switch u otro según si se abre y cierra.
De esta forma, tendrás solo un switch visible.
Para que los otros no sean visibles, le puedes añadir la propiedad internal, así el Home Assistant solo verá el que te interesa.
Estoy teniendo problemas con el para hacer funcionar el motor…
El caso es que si alguno de los GPIO están a negativo la placa no arranca, como te dije utilizo el 1 y el 3 para los finales de carrera y claro cuando esta abierta la rejilla o cerrada siempre hay uno a masa…
Otra cosa no se por que motivo se queda colgada la placa “esp”, las salidas se las puse a unos optocopladores y estos a su vez activan los relés correspondientes, lo que me pasa es que al darle por ejem, a cerrar, cierra y una vez llega al final de carrera se desconecta la placa, me da la sensación que es por que tiene una caída de tensión importante y se viene a bajo, pero no entiendo el motivo teóricamente se debe de parar cuando se pulse el final de carrera… lo probé con led en vez de los optocopladores y me funcionaban bien pero a sido montarlo con los optocopladores y el motor y ya no va. Seguiré probando cosas. Me he pillado este modulo para el motor estoy esperando que me llegue.
Aunque me gustaría saber si hay algún método para que si un pin de los gpio de el esp8266-01s esta a masa que me arranque la placa, igual por software hay algún método que desconozco…
Buffs… Es que estás usando el ESP8266 más simplón y con menos opciones de todos…
Ese está pensado para conectarlo a otro arduino y meramente ofrecerle WiFi… Cuando arranca seguramente entre en algún modo específico según tenga los valores de los GPIO’s.
Seguramente te quites muchos problemas si te pillas una placa más avanzada, tipo la wemo d1, que por 2-3€ la puedes encontrar.
Claro que el problema es que a saber cuando te llega a casa.
Buenas Miguel se que es el mas simplona, la cosa es que me pille unos cuantos de estos:
para ir probando y vi que son fáciles de programar y me valían para activar alguna cosa y al ver que el GPIO2 no lo utilizaba le coloque una resistencia y lo configure como entrada de un pulsador (lo que vendría a ser un sonoff mini pero a 5V), la verdad tengo tres puestos en unas habitaciones y van muy bien, lo malo es que tienen que funcionar con pulsadores, por que aunque podría programarlos como interruptores/conmutadores el problema lo tengo que si el GPIO2 esta a masa, si se va la luz y vuelve la placa no arranca, por eso la pregunta anterior.
Lo de la rejilla lo voy hacer con la placa que te puse
,
que lleva un L293D y un NodeMcu. Estoy a la espera de que venga…