> ## Content Index
> Fetch the complete content index at: https://blog.xavigonzalez.net/llms.txt
> Use this file to discover other available public pages before exploring further.

# Google Home + Raspberry Pi : Domotizando tu casa
- URL: https://blog.xavigonzalez.net/google-home-raspberry-pi/
- Published: 2018-12-12T13:26:46.000Z
- Updated: 2026-10-29T15:01:44.000Z
- Author: Xavi Gonzalez
- Tags: GNU/Linux, Informatica, Raspberry Pi, asistente google, conectar google home raspberry, git, google, google assistant, google home, ifttt, led, pin, raspbian, rele mecanico, router, sincronizar google home raspberry, terminal, voz, #wordpress, #Import 2026-10-27 20:56

Si tienes un **Google Home y una Raspberry**, o simplemente quieres poder realizar acciones en tu Raspi con la voz y Google Assistant, este post te interesa. De una manera sencilla, podremos encender luces o cualquier cosa que nos ocurra con la voz, utilizando el asistente de Google. **¿Empezamos?**

## Que necesitamos?

- Una Raspberry 2+ con Raspbian instalado.
- Unos leds para conectar al GPIO (o un relé y una bombilla)
- Un dispositivo con Google Assistant, o Google Home.
- Acceso a router de tu casa

## Empezamos

Si tienes tu Raspberry con **[Raspbian](https://www.raspberrypi.org/downloads/raspbian/?ref=blog.xavigonzalez.net)** instalado, perfecto.   
Instalaremos algunos paquetes que necesitamos:

\[terminal\]sudo apt-get install git\[/terminal\]

Ahora, en la misma home, podemos clonar el siguiente proyecto:

\[terminal\]sudo git clone https://github.com/krpeacock/google\_home\_starter.git\[/terminal\]

Esto descargará la ultima versión del código publicado por **krpeacock**, con el que podemos lanzar un **servidor con una API** en nuestra Raspi, con el que aceptaremos peticiones HTTP que activarán los GPIO que queramos.

## Archivos a modificar

Primero, crearemos un fichero .env

\[terminal\]sudo nano .env\[/terminal\] 

y dentro de le pegaremos el siguiente codigo, modificando con los datos que queramos:

\[terminal\]DEV = TRUE  
PORT = 80  
PASS = Contraseña\[/terminal\]

Ahora editaremos el fichero **saveState**.**json**. Lo tenemos en la raiz del proyecto. En este fichero definiremos los diferentes Switchers que utilizaremos. Es decir, los diferentes **GPIO** que se podrán activar o desactivar con las peticiones HTTP.

\[terminal\]nano saveState.json\[/terminal\]

Y el fichero de ejemplo contiene esto:

| \[terminal\]{«switches»:\[{«id»:»sw1″,»state»:»off»,»name»:»Kyle’s Lamp»}\]}\[/terminal\] |
| ----------------------------------------------------------------------------------------- |

Podemos añadir nuevas lineas en el array, con el numero o nombre del sw (switch) que queramos. Luego habria que crear los ficheros a los que llamaría.

Ahora veremos los switch. Se encuentran en la carpeta: **public/python/.** Por ejemplo el fichero **sw01\_on.py**, que contiene lo siguiente:

\[terminal\] import RPi.GPIO as GPIO GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(23, GPIO.OUT)\[/terminal\] 

Como vemos, configura el modo del **GPIO**, y lo activa (**OUT**): Si creamos otros switches, solo tenemos que copiar el contenido y modificarlo con el numero del **GPIO** que vamos a activar.

## Conexiones

Si nunca has conectado nada a GPIO de tu Raspberry, ahora es el momento. La manera sencilla de probar este tutorial, seria conectar cualquier LED simple, conectado con un cable al PIN que hayamos asignado. En el ejemplo es el GPIO23\. En la siguiente imagen podemos reconocer cual es cada uno de los pines en la Raspi:

![](https://blog.xavigonzalez.net/content/images/wordpress/2018/12/rp2_pinout.png)

**Vemos, que el GPIO23 es el pin 16.**

Si quieres conectar **una bombilla normal, o un enchufe**, necesitaras un **relé**. En este link podeis encontrar más info de como conectar un Relé mecánico en la Raspberry -> [http://rsppi.blogspot.com/2013/07/control-de-rele-mecanico.html](http://rsppi.blogspot.com/2013/07/control-de-rele-mecanico.html?ref=blog.xavigonzalez.net)

## Puesta en marcha

Una vez modificados estos ficheros, ya podemos arrancar el servidor desde el directorio del proyecto:

\[terminal\] sudo npm start\[/terminal\]

Aparecerá un mensaje: **Listening on port**, donde aparecerá el puerto configurado.

Para que funcione correctamente desde Google Assistant, **necesitas tener el puerto abierto en tu router, apuntando a la IP local de tu Raspberry**. Si no sabes de que te estoy hablando, mirate este blog: [https://www.prometec.net/raspberry-servidor-internet/](https://www.prometec.net/raspberry-servidor-internet/?ref=blog.xavigonzalez.net)

Ahora, puedes hacer una petición por POST (puedes probar [POSTMAN](https://www.getpostman.com/?ref=blog.xavigonzalez.net)) a la siguiente dirección, poniendo tu IP y tu contraseña (si has puerto otro puerto que no sea el 80, indicalo después de la IP y 2 puntos:

> http://tudirecciónIP/API/switches/sw1?password=contraseña

Al realizar la petición, se cambiará el valor del Switch que has indicado (en esta url el sw1)de on a off o al revés. Puedes comprobar el estado de la GPIO con este comando (si el pin esta en IN o en OUT)

\[terminal\] gpio readall \[/terminal\]

## IFTTT

Ahora entraremos a [ifttt.com](http://ifttt.com/?ref=blog.xavigonzalez.net), y si no tenemos cuenta crearemos una (**puedes loguearte con Google**).

Una vez dentro, crearemos un applet: En la esquina superior derecha seleccionaremos **New Applet.**

![](https://blog.xavigonzalez.net/content/images/wordpress/2018/12/image.png)

Ahora en haremos click en **if THIS**, y buscaremos **Google Assistant**. Dentro de las opciones que nos da, seleccionaremos la primera (un comando básico).  
Ahora tendremos que indicar que le queremos decir a Google Home o Assistant, hasta de 3 maneras diferentes, su respuesta, y el Idioma.

Una vez realizado esto, haremos click en el **THEN THAT**. Aqui añadiremos un **Webhook**, y le diremos que haga una petición **POST** con la URL anterior:  
  
http://tudirecciónIP/API/switches/sw1?password=contraseña

Y esto es todo! Te aparecera el applet así:

![](https://blog.xavigonzalez.net/content/images/wordpress/2018/12/image-1.png)

Guarda, y ahora, cada vez que utilices tu Asistente de Google y le lances la frase que le has indicado, hara un **Toggle** del estado del **GPIO** que has indicado en los ficheros. Y esto puedes replicarlo con los pines que quieras, o las acciones que te pasen por la cabeza: hacer un wake on lan, emitir un sonido, etc.

Espero que os haya servido, mis fuentes han sido las siguientes:

https://www.instructables.com/id/Google-Home-Raspberry-Pi-Power-Strip/ https://github.com/krpeacock/google\_home\_starter https://www.instructables.com/id/How-to-Control-You-Room-With-Your-Voice-and-Google/