Saltar al contenido principal

Integración domótica Google Sheets, gratuita y de código abierto

Integración Google Sheets para Gladys Assistant

Google Sheets en Gladys: registrar filas desde escenas, vigilar celdas y filas nuevas.

Presentación​

Esta integración conecta Gladys con tus hojas de cálculo de Google Sheets, en ambos sentidos: tus escenas escriben en ellas (registro de temperaturas, lecturas de contador, llegadas y salidas) y leen de ellas, y Gladys reacciona a lo que cambia en ellas (una respuesta de Google Forms, un estado escrito en el móvil).

  • Acciones de escena: añadir una fila (con la fecha y la hora si quieres), escribir celdas, leer celdas (para reutilizar un valor de la hoja en un mensaje o una condición) y borrar celdas, en cualquier hoja que tu cuenta de Google pueda editar.
  • Vigilancias: declaras, desde la pantalla de configuración, una celda o las filas nuevas de una pestaña. Cada vigilancia es un dispositivo: el valor de la celda (número, texto, temperatura, importe, índice de energía) o el número de filas, para los mosaicos del panel, el historial y las condiciones de escena.
  • Activadores de escena: celda cambiada (con un filtro sobre el nuevo valor, por ejemplo «Hecho») y fila añadida (cada respuesta de Google Forms, cada línea escrita a mano).
  • Widget: las últimas filas de una pestaña vigilada, con un formulario Añadir una fila cuyos campos llevan los nombres del encabezado de la hoja.
  • Nube: tus datos circulan entre los servidores de Google y tu Gladys, con tu propio cliente de Google y solo el permiso «hojas de cálculo» (ningún acceso al resto de tu Drive). Google Sheets no envía notificaciones: las vigilancias se leen cada 2 minutos (ajustable).

El widget «Filas de hoja» con su formulario «Añadir una fila» abierto, y un registro de temperaturas (ilustración generada, no una captura de pantalla)

Requisitos​

  • Gladys 5.2.0 o posterior (formularios de widget).
  • Una cuenta de Google (personal o Workspace) y las hojas que quieras usar: las tuyas, o compartidas contigo con permiso de edición (la lectura basta para las vigilancias y «leer celdas»).
  • Un proyecto de Google Cloud gratuito en el que creas tu propio cliente OAuth: Google no permite compartir una clave y la integración no incluye ninguna. Cuenta unos diez minutos, una sola vez.

Configuración​

1. Proyecto de Google Cloud y API​

  1. Abre la consola de Google Cloud y crea un proyecto (por ejemplo «Gladys»).
  2. En APIs y servicios → Biblioteca, busca Google Sheets API y pulsa Habilitar (enlace directo). La API de Drive no es necesaria.

2. Pantalla de consentimiento (Google Auth Platform)​

  1. Abre Google Auth Platform (enlace) y pulsa Comenzar: nombre de la aplicación («Gladys»), correo de asistencia, público Externo, correo de contacto, acepta la política y pulsa Crear.
  2. En Público, pulsa Publicar aplicación para pasarla En producción. Es importante: una aplicación que se queda en prueba recibe autorizaciones que caducan a los 7 días (tendrías que volver a conectarte cada semana), y solo las cuentas añadidas como usuarios de prueba pueden conectarse.
  3. No hace falta pedir la verificación a Google: la aplicación sigue «sin verificar», lo cual es normal para un uso personal. El permiso «hojas de cálculo» se considera sensible: Google solo muestra un aviso al conectar (ver el paso 4). Una aplicación sin verificar está limitada a 100 usuarios, más que suficiente para un hogar.

3. Cliente OAuth​

  1. En Google Auth Platform → Clientes, pulsa Crear cliente.

  2. Tipo de aplicación: Aplicación web, nombre: «Gladys».

  3. En URI de redireccionamiento autorizados, añade exactamente:

    https://my.gladysassistant.com/redirect/oauth

    Es la página HTTPS de Gladys que devuelve tu navegador a tu instancia, sea cual sea su dirección (Google rechaza las direcciones http:// y las direcciones IP como http://192.168.1.50). Es la misma para todos; la pantalla de configuración de Gladys también la muestra, con un botón para copiarla. Si accedes a Gladys por HTTPS y activas la opción avanzada «dirección de la instancia» de esa pantalla, declara en su lugar la dirección que muestra.

  4. Pulsa Crear y copia el Client ID y el Client secret (empieza por GOCSPX-). Copia el secreto enseguida: Google no siempre lo vuelve a mostrar.

  5. Si la consola propone añadir gladysassistant.com a los dominios autorizados (Google Auth Platform → Branding), acepta.

4. En Gladys​

  1. Abre la integración Google Sheets, pega el Client ID, el Client secret y, si quieres, la URL de tu hoja principal en Hoja de cálculo predeterminada, y guarda.
  2. Pulsa Conectar con Google y elige tu cuenta.
  3. Google avisa de que no ha verificado esta aplicación: es la tuya. Pulsa Configuración avanzada y luego Ir a Gladys (no seguro).
  4. Marca el permiso de Google Sheets («Ver, editar, crear y eliminar todas tus hojas de cálculo de Google Sheets») y pulsa Continuar. Vuelves a Gladys, conectado.
  5. Para vigilar una celda o una pestaña, usa los botones Vigilar una celda y Vigilar filas nuevas (más abajo), y añade los dispositivos en el descubrimiento y el widget a un panel.
CampoPor defectoFunción
Client ID—El Client ID de tu cliente OAuth (termina en .apps.googleusercontent.com).
Client secret—Su secreto (GOCSPX-…), nunca mostrado ni escrito en los registros.
Conectar con Google—El botón de conexión. Solo se pide el permiso de Google Sheets.
Hoja de cálculo predeterminada—La URL de una hoja (tal como aparece en el navegador) o su ID: la usan las acciones, vigilancias y widget que no indican otra.
Leer las vigilancias cada (minutos)2De 1 a 60. Cada lectura cuesta 2 o 3 solicitudes por hoja vigilada; Google permite 60 por minuto y cuenta, sin límite diario.
Idioma de los textosAutomáticoNombres de las funciones y mensajes de los botones. Automático: el idioma de tu panel en cuanto se haya mostrado un widget.

Botones de configuración (sin JSON que escribir):

  • Vigilar una celda: hoja de cálculo (vacío = la predeterminada; una URL pegada también da la pestaña gracias a su gid), pestaña (su nombre; vacío = la pestaña de la URL o la primera), celda (B2, o Hoja1!B2), cómo la muestra Gladys (número, texto, temperatura en °C, importe en euros o dólares, índice de contador de energía en kWh: no se puede cambiar después) y un nombre.
  • Vigilar filas nuevas: hoja de cálculo, pestaña, columnas (A:Z por defecto), si la primera fila es un encabezado, y un nombre.
  • Eliminar una vigilancia (por su número #2, su nombre o su identificador), Listar las vigilancias (con su último valor o el motivo por el que no se pueden leer), Probar la conexión, Diagnóstico, Desconectar de Google.

Una vigilancia sigue a su pestaña cuando se renombra (Gladys guarda su identificador, el gid, no su nombre). Los tokens se renuevan automáticamente. Si Google revoca el acceso (aplicación en prueba, acceso retirado desde tu cuenta de Google, secreto regenerado, seis meses sin uso), la integración deja de llamar a Google, lo indica en el estado de conexión y basta con volver a pulsar Conectar con Google. Tus vigilancias, dispositivos y escenas se conservan.

Uso​

Dispositivos​

Un dispositivo por vigilancia, con el nombre que elegiste, con una sola función de solo lectura:

VigilanciaFunciónMostrada como
Una celdaValorUn número (sensor genérico), un texto, una temperatura (°C), un importe (€ o $) o un índice de energía (kWh, cuenta en el consumo).
Filas nuevasFilasEl número de filas de datos de la pestaña (sin el encabezado): un contador.

Una vigilancia numérica toma el valor real de la celda: 0.5 para una celda que muestra «50 %», 1234.5 para «1.234,50 €». Una celda sin número no publica nada. Usa estos dispositivos en las condiciones de escena («cuando el stock escrito en la hoja baje de 5»), en los mosaicos y gráficos del panel. Se siguen editando en la hoja: los dispositivos son de solo lectura.

Widgets​

Filas de hoja: las últimas filas (1 a 8) de una vigilancia de filas nuevas, la más reciente primero. La primera columna es el título, las demás el subtítulo; al pulsar se ve cada columna con el nombre de su encabezado. Ajustes: la vigilancia, el número de filas y el botón Añadir una fila: en las 4 primeras columnas, o con la fecha y la hora en la primera columna y las 4 siguientes (como un formulario de Google). Además, Abrir la hoja y Actualizar. El widget no cuesta ninguna solicitud: muestra la última lectura.

Activadores de escena​

  • Google Sheets: celda cambiada: una celda vigilada cambió de valor. Filtros: la vigilancia, y Solo cuando pase a ser (el nuevo valor exactamente como se ve, por ejemplo Hecho). Variables: value, previous_value, number, previous_number, is_number, cell, watch_name, sheet_name, spreadsheet_name.
  • Google Sheets: fila añadida: apareció una fila nueva bajo una pestaña vigilada. Filtro: la vigilancia. Variables: row (su número), values (todos los valores separados por |), column_1 a column_10 (desde la primera columna vigilada), first_column, watch_name, sheet_name, spreadsheet_name.

La primera lectura tras un arranque sirve de referencia (ningún evento), y los cambios hechos por Gladys (acciones de escena, formulario del widget) nunca lanzan una escena, ni siquiera a través de una fórmula. Si se eliminan u ordenan filas por encima de la última fila conocida, la pestaña se vuelve a leer entera como nueva referencia, sin eventos.

Acciones de escena​

  • Google Sheets: añadir una fila: valores separados por | (se admiten variables de escena: {{...}}), fecha y hora en la primera columna opcional (zona horaria de Gladys). La fila se coloca bajo la tabla de la pestaña. Salidas: row, updated_range.
  • Google Sheets: escribir celdas: desde una celda (B2) hacia la derecha, o en una fila de celdas (B2:D2). Salidas: updated_range, updated_cells.
  • Google Sheets: leer celdas: una celda o un rango. Salidas: value (la primera celda tal como se ve), number e is_number (su valor real), values (cada fila en su propia línea, celdas separadas por |), cell_count, row_count.
  • Google Sheets: borrar celdas: vacía un rango (A2:D), el formato se conserva. Salida: cleared_range.

Cada acción toma una hoja de cálculo (vacío = la predeterminada) y una pestaña (vacío = la primera; Hoja1!B2 en el rango también funciona). Valores: «Como si se escribieran» (por defecto) deja que Google interprete números, fechas y fórmulas como si los escribieras en la hoja; «Texto sin formato» guarda el texto tal cual, nunca como fórmula (úsalo para un texto que viene de fuera, un mensaje por ejemplo).

Ejemplos de escenas​

  • Registro de temperaturas: cada hora → añadir una fila en la pestaña «Temperaturas» con la fecha y la hora y las dos temperaturas leídas antes en la escena, como variables de escena separadas por |; haz tus gráficos en Google Sheets.
  • Peticiones de la familia con Google Forms: un formulario vinculado a una hoja, una vigilancia de filas nuevas en la pestaña de respuestas → cuando se añade una fila → enviar al hogar {{triggerEvent.data.column_2}} pide: {{triggerEvent.data.column_3}}.
  • Ajustes en una hoja: una pestaña «Ajustes» cuya celda B2 contiene la temperatura de vacaciones → antes de calentar, leer celdas Ajustes!B2 y usar number; o vigilar B2 para que un cambio escrito en el móvil lance la escena enseguida.
  • Tarea escrita por Gladys, marcada por la familia: cuando termina la lavadora → escribir celdas Tareas!B5 = Pendiente; una vigilancia de B5 con Solo cuando pase a ser Hecho apaga la luz de aviso.

Solución de problemas​

  • «Error 400: redirect_uri_mismatch»: la URI de redireccionamiento declarada en el cliente OAuth no es idéntica a la de Gladys. Comprueba https://my.gladysassistant.com/redirect/oauth, sin barra final, en los URI de redireccionamiento autorizados del cliente Aplicación web (no en «Orígenes de JavaScript autorizados»), guarda y espera unos minutos.
  • «Error 403: access_denied» / la aplicación no ha completado el proceso de verificación: la aplicación sigue en prueba y tu cuenta no es usuario de prueba. Publícala (Público → Publicar aplicación) o añade tu cuenta como usuario de prueba.
  • «Google no ha verificado esta aplicación»: normal, es tu propia aplicación; Configuración avanzada → Ir a Gladys (no seguro).
  • «No se concedió el permiso de Google Sheets»: la casilla no se marcó en la pantalla de consentimiento. Vuelve a conectarte y márcala.
  • «Google revocó el acceso» cada semana: la aplicación se quedó en prueba (autorizaciones de 7 días). Publícala y vuelve a conectarte.
  • «La API de Google Sheets no está activada»: habilita Google Sheets API en el proyecto del cliente OAuth, espera unos minutos y pulsa Probar la conexión.
  • «Google rechaza esta hoja de cálculo»: URL errónea, hoja eliminada o no compartida con la cuenta de Google conectada. Ábrela en un navegador con esa cuenta. Un enlace de «Publicar en la web» (/d/e/2PACX-…) no sirve: copia la URL de la barra de direcciones al editar.
  • «No hay ninguna pestaña …»: revisa la ortografía del nombre de la pestaña (se ignoran mayúsculas si es única) o deja el campo vacío.
  • «Cuota de Google Sheets alcanzada»: más de 60 solicitudes en un minuto (acciones de escena frecuentes, muchas hojas vigiladas, otras herramientas con el mismo cliente OAuth). La integración espera y reintenta sola; espacia tus escenas o lee con menos frecuencia.
  • Una vigilancia numérica no muestra nada: la celda contiene un texto o una fecha (Google devuelve las fechas como texto). Elige «Texto» o pon el número en su propia celda.
  • Un cambio escrito en el móvil tarda unos minutos en aparecer: es el intervalo de lectura (2 minutos por defecto). El botón Actualizar del widget lee al instante.
  • Para un informe de error: pulsa Diagnóstico (resumen anonimizado en los registros, sin token, valores de celda ni nombres de hoja) y adjunta los registros de la integración, la versión de Gladys y la de la integración.

Limitaciones​

  • Ninguna notificación de Google: un cambio aparece como muy tarde tras el intervalo de lectura; una celda que cambia dos veces entre dos lecturas lanza un solo evento.
  • Las filas nuevas son las añadidas debajo de la última: una fila insertada en medio, o filas eliminadas a la vez que se añaden otras, no se señalan (la pestaña pasa a ser una nueva referencia).
  • Un cambio escrito por alguien pocos segundos después de una escritura de Gladys en la misma hoja puede tomarse como consecuencia de Gladys y no lanzar nada.
  • Si la integración está detenida cuando algo cambia (reinicio, actualización), el evento correspondiente no se recupera.
  • «Escribir celdas» escribe una sola fila; sin formato, sin creación de hojas ni pestañas, sin acceso a otros archivos de Drive.
  • 50 vigilancias como máximo, 52 columnas por vigilancia de filas nuevas, 10 columnas como variables de escena individuales (las demás están en values).
  • Una cuenta de Google por integración. Nunca probada con una cuenta real de Google en su publicación: se agradecen los comentarios.

Parámetros de configuración​

Estos son los parámetros que Google Sheets te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
1. Tu cliente OAuth de Google CloudsectionNoGoogle no ofrece una clave compartida: crea un proyecto gratuito en la consola de Google Cloud, activa la API de Google Sheets, configura la pantalla de consentimiento (Externo) y publícala «En producción», y crea un cliente OAuth de tipo «Aplicación web» cuyo URI de redireccionamiento autorizado sea exactamente https://my.gladysassistant.com/redirect/oauth. La documentación detalla cada paso.
Client IDstringSíTermina en .apps.googleusercontent.com.
Client secretsecretSíGoogle lo muestra al crear el cliente (empieza por GOCSPX-).
2. Conecta tu cuenta de GooglesectionNoGuarda primero y pulsa el botón. Google avisa de que «no ha verificado esta aplicación»: es tu propia aplicación, pulsa Configuración avanzada y luego Ir a… (no seguro), y marca el permiso de Google Sheets. Vuelve a conectarte si Gladys indica un acceso revocado.
Conectar con Googleoauth2NoGladys solo pide el permiso de Google Sheets (leer y editar tus hojas de cálculo), nunca Drive.
3. OpcionessectionNoGoogle Sheets no envía notificaciones: las celdas y filas vigiladas se leen a intervalos regulares. Decláralas con los botones de abajo («Vigilar una celda», «Vigilar filas nuevas») y crea sus dispositivos en el descubrimiento.
Hoja de cálculo predeterminadastringNoLa URL de la hoja de cálculo tal como aparece en el navegador (o su ID): la usan las acciones de escena, las vigilancias y el widget que no indican otra.
Leer las vigilancias cada (minutos)numberNoCada lectura cuesta 2 o 3 solicitudes por hoja vigilada; Google permite 60 por minuto y cuenta, sin límite diario.
Idioma de los textosselectNoNombres de las funciones y mensajes de los botones de configuración. Automático: el idioma de tu panel, en cuanto se haya mostrado un widget.

Cómo instalar Google Sheets en Gladys​

  1. En Gladys, abre Integraciones: Google Sheets aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/william-de71/gladys-google-sheets:0.1.0), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/William-De71/gladys-google-sheets.

Google Sheets 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​

Google Sheets 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 William-De71, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂