Integración domótica Tandoor Recipes, gratuita y de código abierto

El menú y la lista de la compra de Tandoor Recipes en Gladys: escenas y widgets.
Tandoor Recipes es un gestor de recetas autoalojado: sus recetas, un planificador de comidas y una lista de la compra compartida. Esta integración lo lleva a Gladys: un dispositivo muestra lo previsto hoy para cada comida, las comidas de mañana, las comidas previstas esta semana y los artículos que quedan por comprar; las escenas pueden empezar a la hora elegida con el menú del día, o cuando la lista de la compra cambia en Tandoor, añadir un artículo a la lista («se ha acabado la leche»), marcar uno, o enviar el menú o la lista; dos widgets del panel muestran el menú y la lista de la compra, con botones para añadir y marcar desde la tableta de pared.
Probada con un servidor real de Tandoor Recipes 2.6.15 (en Docker); todavía no en una instalación real de Gladys: sus comentarios son bienvenidos en las issues.
Lo que necesita
- Gladys Assistant 5.2.0 o posterior.
- Tandoor Recipes 2.x, accesible desde la máquina de Gladys: en la red local, o en Internet en HTTPS.
- Un token de acceso de un usuario de Tandoor, con el alcance
read write(readsolo basta para leer, no para añadir ni marcar un artículo). Actúa en nombre de ese usuario, en su espacio activo.
Primeros pasos
1. Crear un token de acceso
En Tandoor, abra Ajustes y luego API, y cree un token con el alcance
read write y una fecha de caducidad lejana. Copie el token (tda_…): Tandoor
solo lo muestra entero justo después de crearlo.
2. Configurar la integración
En Gladys, Integraciones → Tandoor Recipes → Configuración:
- Dirección de Tandoor: la dirección con la que abre Tandoor, puerto
incluido, por ejemplo
http://192.168.1.2:8080ohttps://recetas.example.com. Una dirección copiada del navegador (…/mealplan) también funciona. - Token de acceso: el token del paso 1.
- Aceptar certificados autofirmados: solo para una dirección
https://cuyo certificado tampoco reconoce su navegador. - Intervalo de actualización: la frecuencia de lectura de Tandoor, 5 minutos por defecto (de 1 a 15 minutos). Lo que haga desde Gladys se ve al instante.
- Idioma de los nombres y mensajes: el idioma de los nombres de las funciones y de los textos de las escenas (francés por defecto).
Guarde y haga clic en Probar la conexión: Tandoor responde con su versión, el espacio y lo que contiene.
3. Añadir el dispositivo
En Integraciones → Tandoor Recipes → Descubrir, añada el dispositivo Tandoor. Sus valores aparecen al instante. Cuando se crea un tipo de comida o una lista de la compra en Tandoor, el dispositivo propone Actualizar en la pestaña Descubrir: su función se añade entonces.
El dispositivo Tandoor
Un dispositivo por espacio de Tandoor (el espacio activo del usuario del token). Sus funciones:
| Función | Tipo | Valor |
|---|---|---|
<tipo de comida> de hoy | Texto | Una por tipo de comida de Tandoor: lo previsto, o «Nada previsto» |
Comidas de mañana | Texto | Las comidas de mañana, Cena: Lasaña, o «Nada previsto» |
Comidas previstas esta semana | Contador | Comidas previstas en los próximos 7 días, hoy incluido |
Artículos por comprar | Contador | Artículos aún por comprar en toda la lista de la compra |
Por comprar: <lista> | Contador | Artículos aún por comprar en cada lista de la compra de Tandoor |
Los tipos de comida son los de su Tandoor (Desayuno, Comida, Cena…, en su
orden del día, 10 como máximo), con los nombres que usted les dio. Una entrada
del planificador muestra su título, y si no, su receta; dos entradas para una
misma comida se muestran como Lasaña · Ensalada. Una entrada de varios días
cuenta en cada uno de ellos. Un artículo aplazado en Tandoor («retraso») no está
por comprar antes de su fecha. «Hoy» sigue la zona horaria de Gladys: justo
después de medianoche, las comidas de mañana pasan a ser las de hoy. Los nombres
se dan en el idioma de la configuración al añadir el dispositivo, y se quedan
así después (una regla de Gladys).
Widgets del panel
En Panel → Editar panel, añada un widget de la integración Tandoor Recipes.
Menú
- Periodo: Hoy: la fecha y una fila por tipo de comida previsto hoy.
- Periodo: Próximos 7 días: una fila por día, hoy y mañana señalados; toque un día para ver sus comidas.
- Actualizar vuelve a leer Tandoor.
- Abrir Tandoor abre el planificador, cuando Tandoor tiene una dirección
https://(Gladys no abre otros enlaces).
Lista de la compra
Los artículos aún por comprar (ajuste Lista de la compra: el nombre de una lista de Tandoor; vacío: toda la lista de la compra), con su cantidad y unidad.
- Añadir abre un formulario con un campo, Artículo, leído como una línea
escrita en Tandoor:
Leche,2 kg tomates. Un artículo que ya está en la lista (sin tener en cuenta mayúsculas, acentos ni plural) no se añade dos veces. - Marcar abre un formulario con los artículos: el elegido se marca en Tandoor, como en su app (desmarcarlo allí lo deshace).
- Actualizar vuelve a leer Tandoor.
- Abrir Tandoor abre la lista de la compra, cuando Tandoor tiene una
dirección
https://.
Escenas
Disparadores
| Disparador | Filtro | Variables |
|---|---|---|
| Comidas del día | Hora (0 a 23) | Todas las comidas del día, recetas, comidas previstas |
| Lista de la compra modificada | (ninguno) | Artículos añadidos, artículos marcados o quitados, sus números, por comprar |
- Comidas del día se activa a la hora elegida, un día con al menos una comida prevista en Tandoor: 17 para saber a las 17 h qué cocinar esta noche. Un día sin nada previsto no activa nada.
- Lista de la compra modificada se activa cuando se han añadido, marcado o quitado artículos en Tandoor (su app, otro usuario), vistos en la lectura siguiente. Lo que Gladys hizo ella misma (una escena, el widget) no activa nada: una escena ligada a este disparador no puede entrar en bucle.
Acciones
| Acción | Campos | Resultados |
|---|---|---|
| Añadir a la lista de la compra | Artículo, Lista de la compra (vacío: toda la lista) | Artículo añadido (sí/no), Artículo, lista, artículos por comprar |
| Marcar un artículo de la lista de la compra | Artículo, Lista de la compra | Artículo marcado (sí/no), Artículo, lista, artículos por comprar |
| Leer las comidas de un día | Día (hoy, mañana, pasado mañana) | Todas las comidas del día, recetas, comidas previstas |
| Leer una lista de la compra | Lista de la compra | Artículos por comprar (separados por comas), número, lista |
- Un artículo se escribe como en Tandoor:
2 kg tomatesda 2 kg del alimento «tomates» (el analizador de ingredientes de Tandoor, que crea un alimento o una unidad nuevos como lo haría escribirlo en Tandoor). - Un artículo se encuentra tal como usted lo dice:
oeufsencuentraŒufs,tomateencuentraTomates. Una lista se encuentra por su nombre, o por su comienzo (superparaSupermercado). - Un artículo que ya está en la lista no se añade de nuevo: el resultado Artículo añadido es entonces «no». Un artículo que no está en la lista no es un error: Artículo marcado es «no».
- Los resultados pasan a las acciones siguientes de la escena, por ejemplo un
mensaje
Esta noche: {{0.0.summary}}(0.0: la posición de la acción en la escena; el editor de mensajes lista los resultados).
Ideas de escenas
- ¿Qué cenamos esta noche?: disparador Comidas del día a las 17, luego
enviar
{{triggerEvent.data.meals}}por Telegram. - «Se ha acabado la leche»: un botón (o un asistente de voz) lanza Añadir
a la lista de la compra con
Leche. - Alguien completó la lista: disparador Lista de la compra modificada,
luego enviar
Añadido: {{triggerEvent.data.added}}a quien hace la compra. - De camino a las tiendas: cuando alguien sale del trabajo, Leer una lista de la compra, luego enviar sus artículos si los hay.
Actualización y uso de la API de Tandoor
La integración lee Tandoor con su propio temporizador (Gladys no lo consulta), al intervalo de la configuración, y justo después de medianoche. Una lectura son cuatro peticiones: los tipos de comida, el planificador de los próximos días, las listas de la compra y los artículos (más páginas a partir de 200 artículos); «quién soy» (versión y espacio) se vuelve a leer una vez por hora. Tandoor no impone ninguna cuota de API. Una acción de escena, un widget o una nueva hora vuelve a leer Tandoor cuando la última lectura tiene más de 30 segundos; lo que la integración cambia se vuelve a leer al instante.
Solo se envían a Gladys los valores que cambian, y todos los valores de nuevo cada 6 horas.
Solución de problemas
- «token de acceso rechazado»: el token se borró, caducó o pertenece a otro Tandoor. Cree uno nuevo (paso 1).
- «el token de acceso solo puede leer»: el token tiene el alcance
read; cree uno conread writepara añadir o marcar artículos. - «Tandoor no responde»: compruebe la dirección y el puerto desde la máquina
de Gladys (
http://<dirección>:8080/api/server-settings/current/debe responder). La insignia del dispositivo muestra entonces «inaccesible», y sus valores siguen siendo los últimos leídos. - «certificado rechazado»: marque Aceptar certificados autofirmados, o
use la dirección
http://en la red local. - «no hay ningún Tandoor Recipes 2 en esta dirección»: la dirección responde con otra página web (una página de inicio de sesión de un proxy inverso…), o Tandoor es una versión 1.x: use la dirección del propio Tandoor, y actualícelo.
- Un tipo de comida o una lista no tiene función: abra la pestaña Descubrir y haga clic en Actualizar en el dispositivo Tandoor.
- Más detalles: ponga la variable de entorno
LOG_LEVELendebug; los registros nunca contienen el token de acceso.
Límites
- Un solo espacio de Tandoor por integración: el espacio activo del usuario del token.
- El dispositivo sigue 10 tipos de comida y 20 listas de la compra como máximo; el resto de la semana está en el widget y en Leer las comidas de un día.
- Los artículos nunca se borran: los artículos marcados se quedan en Tandoor hasta que usted los quite allí. La integración no planifica recetas.
- Comidas del día se activa al principio de la hora; la hora ya empezada al arrancar la integración (una actualización, un reinicio) no se activa.
- Lista de la compra modificada ve los cambios en la lectura siguiente (5 minutos por defecto), y un cambio deshecho mientras tanto no se ve.
- El formulario Marcar lista los 50 primeros artículos; el widget muestra 7 artículos y el número de los demás.
- Abrir Tandoor solo aparece con una dirección
https://. - Todavía no probada en una instalación real de Gladys; probada con un servidor real de Tandoor Recipes 2.6.15.
Parámetros de configuración
Estos son los parámetros que Tandoor Recipes te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Su Tandoor | section | No | En Tandoor, abra Ajustes y luego API, cree un token con el alcance «read write» y péguelo abajo con la dirección de Tandoor. Después, añada el dispositivo Tandoor desde la pestaña Descubrir. |
| Dirección de Tandoor | string | Sí | La dirección con la que abre Tandoor, puerto incluido (a menudo 8080 con Docker). |
| Token de acceso | secret | Sí | Creado en Tandoor: Ajustes → API, alcance «read write» («read» solo: sin añadir ni marcar). Actúa en nombre de su usuario. |
| Aceptar certificados autofirmados | boolean | No | Solo para una dirección https:// cuyo certificado tampoco reconoce su navegador. |
| Intervalo de actualización | select | No | Frecuencia de lectura de Tandoor. Los cambios hechos desde Gladys se ven al instante. |
| Idioma de los nombres y mensajes | select | No | Nombres de las funciones (fijados al añadir el dispositivo) y textos de las escenas. |
Cómo instalar Tandoor Recipes en Gladys
- En Gladys, abre Integraciones: Tandoor Recipes aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
- Haz clic en Instalar. Gladys descarga la imagen Docker (
ghcr.io/guim31/gladys-tandoor:1.0.0), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración). - Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
- También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-tandoor.
Tandoor Recipes requiere Gladys >=5.2.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.
¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.
Sobre las integraciones externas
Tandoor Recipes es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.
- Explorar todas las integraciones, nativas y de la comunidad
- Crear y publicar tu propia integración externa
- Código fuente en GitHub — fuente de esta documentación