Tabla de contenido:
- Paso 1: Paso 1: Necesito una forma de enviar los horarios desde Home Assistant
- Paso 2: Paso 2: se agregó el siguiente código a Configuration.yaml
- Paso 3: Paso 3: Ahora necesitamos obtener la información para la API de ESPHOME
- Paso 4: Paso 4: Entonces, la configuración de ESPHome del Plug Now
- Paso 5: Paso 5: la conexión del Asistente de hogar de ESPHome… Transmítame Scotty
- Paso 6: Paso 6: Agreguemos algo de tiempo
- Paso 7: Paso 7: Intervalo
- Paso 8: Paso 8: Entonces tenemos tiempo y dinero … ¿Qué sigue?
- Paso 9: Paso 9: Ahora para algunos guiones: 'Ser o no ser: esa es la pregunta'
- Paso 10: Paso 10: Algunos guiones de bonificación
- Paso 11: Paso 11: Algunos pensamientos finales
Video: ESPHOME SONOF S26 Luz temporizada: 11 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Buen día. Así que tengo una luz de pecera que quiero encender y apagar a cierta hora del día. Solo tenía que complicarme las cosas. Quiero poder cambiar la hora en que se enciende y apaga desde el panel de Home Assistant. Quizás incluso más.
Así que veamos cuánto más puedo meterme en la madriguera de un conejo.
Paso 1: Paso 1: Necesito una forma de enviar los horarios desde Home Assistant
Un poco de búsqueda en Google ayuda. Que te ayuden a arrancarte el pelo, si es que tienes alguno: P Abre mi complemento Visual Studio Code Editor. En la carpeta Config, busque el archivo configuration.yaml y copie y pegue algunas cosas que encontré ocultas en algún foro. Lo siento si lo recordara, le daría un reconocimiento. Se agregó el código y se reinició el asistente doméstico.
Paso 2: Paso 2: se agregó el siguiente código a Configuration.yaml
número de entrada:
ft_start_hr:
nombre: FT Light Start Hours
icono: mdi: inicio del reloj
min: 0
máx: 23
paso 1
# inicial: 13
La primera línea será el número de entrada ID de entidad.
A continuación, necesitamos algunos detalles para este pequeño tipo:
Un nombre será increíble: FT Light Start Hours para este P. S. FT es para Fish Tank… No es lo que estabas pensando, ¿verdad?
El siguiente es un icono opcional. Hay mucho para elegir, así que vuélvete loco… o no.
Luego podemos poner un valor mínimo, máximo y de paso. Como son horas, elegí 0 - 23 con pasos simples.
Inicialmente tenía un valor inicial y cuando el asistente doméstico se reiniciaba, lo cambiaba a este valor inicial. Decidí comentarlo porque quería que Home Assistant intentara recordar el último valor que le había establecido.
Puede poner en modo para elegir una caja. Pero, por defecto, elige un buen control deslizante para ti. Creo que un control deslizante servirá por ahora.
Tenga en cuenta las sangrías, ya que son muy importantes. Ver la imagen
Así que estos te darán entidades en asistente de hogar para poder ajustarte.
Aquí hay un enlace para obtener más información sobre los números de entrada:
www.home-assistant.io/integrations/input_n…
Paso 3: Paso 3: Ahora necesitamos obtener la información para la API de ESPHOME
sensor:
- plataforma: plantilla
sensores:
ft_start_hr:
value_template: '{{states.input_number.ft_start_hr.state | En t }}'
norte
Esto le dará a la API de ESPHome la conexión requerida, además de que ahora es un número entero en lugar de un control deslizante de texto elegante:-P
Aquí está tomando el estado del número de entrada y convirtiéndolo en un número entero y almacenándolo en un sensor.
Aquí hay más información sobre las plantillas:
www.home-assistant.io/integrations/templat…
Oh, cambié la extensión de archivo de mi archivo a texto para poder subirlo … Instructables pueden ser destructibles con un yaml …
Paso 4: Paso 4: Entonces, la configuración de ESPHome del Plug Now
Comencé con una configuración básica para el enchufe s-on-off y luego comencé a retocar.
No entraré en detalles sobre cómo actualizar el enchufe S26 con ESPHome, ya que Google tiene todas las respuestas.
Mi archivo de configuración completo estará disponible para descargar al final. Da Da Dah …
Así que comencemos con la parte vinculada a Home Assistant:
Tenemos que crear sensores que coincidan con los sensores del asistente doméstico para que puedan comunicarse entre sí.
Paso 5: Paso 5: la conexión del Asistente de hogar de ESPHome… Transmítame Scotty
sensor:
- plataforma: asistente de hogar
entity_id: sensor.ft_start_hr
id: id_ft_start_hr
Así que ahora creamos un sensor en ESPHome del tipo homeassistant. ¿Quién lo hubiera adivinado?
La identificación de la entidad deberá coincidir con la que configuró en su archivo configuration.yaml.
Configuré una identificación para que ESPHome pudiera hacer referencia a este sensor en su abundancia de pensamiento.
Paso 6: Paso 6: Agreguemos algo de tiempo
Entonces, siendo esto un enchufe cronometrado … Vamos a agregar algo de tiempo … ¿O es restar? ¿Está ahora en el pasado?
A continuación, se muestran algunos conceptos básicos del componente de tiempo. Podemos elegir algunos diferentes, pero elegí asistente de hogar. ¿Demasiado fácil?
esphome.io/components/time.html
Paso 7: Paso 7: Intervalo
No, no es un descanso, ¿o no?
intervalo:
- intervalo: 1 segundo
luego:
- lambda: | -
id (gl_ft_start_hr) = id (id_ft_start_hr).state;
Así que configuré un intervalo de 1 segundo para escribir el valor del sensor del asistente doméstico en la variable global.
Solo quiero hacer esto una vez por segundo mientras el tiempo corre … tic, tac
Paso 8: Paso 8: Entonces tenemos tiempo y dinero … ¿Qué sigue?
Así que decidí usar una plantilla de sensor binario para determinar si es hora de encender el interruptor interruptor interruptor … relé
Creé tres interruptores con los ID: start_time_valid, stop_time_valid y run_time_valid
start_time_valid es verdadero cuando ha pasado el tiempo configurado para encender el relé.
Usé declaraciones if anidadas para verificar si éramos mayores o iguales a los segundos requeridos, luego a los minutos y finalmente a las horas.
stop_time_valid es verdadero cuando es ahora antes de que sea el momento de configurar para apagar el interruptor. Esto se invierte para comprobar que ahora no ha pasado el tiempo requerido para apagar el relé
run_time_valid es verdadero cuando tanto start_time_valid como stop_time_valid son verdaderos. Supongo que podría haber usado una condición normal para este. Acabo de entrar en el ritmo de las cosas con lambdas.
- plataforma: plantilla
name: "Hora de inicio válida"
id: start_time_valid
lambda: | -
if (id (homeassistant_time).now (). hour> id (gl_ft_start_hr)) {
devuelve verdadero;
}
else if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&
id (homeassistant_time).now (). minute> id (gl_ft_start_mn)) {
devuelve verdadero;
}
else if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&
id (homeassistant_time).now (). minute == id (gl_ft_start_mn) &&
id (homeassistant_time).now (). second> = id (gl_ft_start_ss)) {
devuelve verdadero;
}
demás {
falso retorno;
}
Paso 9: Paso 9: Ahora para algunos guiones: 'Ser o no ser: esa es la pregunta'
¡Hmm, amigo del guión equivocado!
Entonces, si enchufaba el interruptor … o la energía de la casa se volvía a encender, quería que el interruptor supiera si debía estar encendido o apagado y actuar en consecuencia. (sí, todos vamos a tomar lecciones de actuación)
La primera identificación del script: checkstatuson, es verificar si estamos destinados a estar encendidos y actuar en consecuencia. También incluí una bandera global con el id: trackingon, para asegurar que este script se ejecute una sola vez y no impida que mis otros scripts hagan su parte en la obra.
Esto tiene 3 y condiciones: el relé está apagado, está destinado a estar encendido y aún no he hecho mi parte. Esto luego apagará cualquier otro script en ejecución, encenderá el relé y establecerá las banderas de seguimiento.
El segundo ID de secuencia de comandos: checkstatusoff, es justo lo opuesto al primero. Solo estamos comprobando si necesitamos cerrar las cortinas ahora. La bandera de seguimiento para este es trackingoff
Ejecuto estos dos scripts en el intervalo de 1 segundo para verificar cada segundo.
Paso 10: Paso 10: Algunos guiones de bonificación
Dos características más que quería agregar eran que si apagaba la luz en el tanque, se volverá a encender después de 5 segundos si la luz debe estar encendida en ese momento. Además, si la luz estaba apagada y quería encenderla para ver mis peces y estaba fuera de su horario programado, se encendería durante 5 minutos. Sí, 5 minutos es suficiente … Vuelve al trabajo.
El primer script id: relayisoff encenderá la luz durante 5 minutos si está apagada a la hora programada y luego se apagará.
El segundo script id: relayison está prácticamente al revés del primero y volverá a encender la luz 5 segundos más tarde si está destinado a estar encendido. ¿Quién dijo que puede apagar mi luz, señor?
Aquí hay más información sobre los scripts:
esphome.io/guides/automations.html
Alguna información adicional sobre los scripts es que no son bloqueantes. A menos que pongas un retraso en una lambda Uh No No No
Paso 11: Paso 11: Algunos pensamientos finales
Desde el asistente doméstico, quería que el interruptor actuara de la misma manera que el botón.
No puse un nombre para el interruptor local del sensor binario, ya que no necesitaba verlo en el asistente doméstico.
No puse un nombre para el interruptor de relé porque quería usar los scripts para hacer el cambio desde el asistente doméstico.
Creé un interruptor de plantilla con un nombre para poder usarlo para cambiar de asistente doméstico. Ejecutará mis scripts de la misma manera que el conmutador local en el enchufe.
No he probado si apago mi asistente doméstico si el enchufe sigue funcionando correctamente. Eso espero. He visto algunas publicaciones sobre algunos problemas al perder la conexión con la API de Home Assistant.
Realmente espero que este pequeño tutorial te ayude y no dudes en ayudarme a mejorarlo. No soy un experto y aprendo muy lentamente. Solo pensé que algunas cosas que aprendí a hacer podrían ayudar a alguien que está luchando por resolverlo.
Ahora para cambiar las horas en el asistente del hogar según el amanecer y el atardecer … + - algunos
Recomendado:
Luz LED de cobertizo temporizada con energía solar y batería: 4 pasos
Luz LED de cobertizo temporizada con energía solar y con pilas: en este Instructable le mostraré cómo hice una luz LED en mi cobertizo. Como no tengo conexión a la red, lo hice con batería. La batería se carga a través del panel solar. La luz LED se enciende mediante un interruptor de pulso y se apaga después de
Controle su puerta corredera automática con Home Assistant y ESPHome: 5 pasos (con imágenes)
Controle su puerta corredera automática con Home Assistant y ESPHome: El siguiente artículo es un comentario sobre mi experiencia personal al controlar la puerta corredera automática que había instalado en mi casa. Esta puerta, con la marca "V2 Alfariss", se proporcionó con algunos controles remotos Phox V2 para controlarla. Tambien tengo
Luz de bicicleta muy brillante con PCB de panel de luz personalizado: 8 pasos (con imágenes)
Luz de bicicleta muy brillante con PCB de panel de luz personalizado: si tiene una bicicleta, entonces sabe cuán desagradables pueden ser los baches en sus neumáticos y su cuerpo. Ya tuve suficiente de volar mis neumáticos, así que decidí diseñar mi propio panel LED con la intención de usarlo como luz de bicicleta. Uno que se enfoca en ser E
Interruptor de luz con control remoto Bluetooth - Actualización. El interruptor de luz sigue funcionando, sin escritura adicional: 9 pasos (con imágenes)
Interruptor de luz con control remoto Bluetooth - Actualización. El interruptor de luz sigue funcionando, sin escritura adicional: actualización del 25 de noviembre de 2017: para obtener una versión de alta potencia de este proyecto que puede controlar kilovatios de carga, consulte Adaptación del control BLE a cargas de alta potencia: no se requiere cableado adicional, actualizado el 15 de noviembre de 2017 - Algunas placas BLE / pilas de software deli
Luz nocturna con sensor de luz conmutable: 8 pasos (con imágenes)
Luz nocturna con sensor de luz conmutable: este instructivo muestra cómo pirateé un sensor de luz nocturna para que pueda apagarse manualmente. Lea atentamente, tenga cuidado con los circuitos abiertos y apague su área si es necesario antes de probar la unidad