乐闻世界logo
搜索文章和话题

How to make a Google Home (Mini) publish what it listens to a MQTT topic (and broker)?

1个答案

1

To enable Google Home Mini to play content from the MQTT topics it listens to, we need to use a middleware to bridge MQTT messages and Google Home devices, as Google Home natively does not support the MQTT protocol. Here, we can leverage Node.js and related libraries to achieve this. Below is a step-by-step, detailed implementation guide:

Step 1: Set up the MQTT server

First, ensure you have a running MQTT server. Mosquitto is a popular choice.

bash
sudo apt-get install mosquitto sudo apt-get install mosquitto-clients

Step 2: Install and configure Node.js

Install the Node.js environment.

bash
sudo apt-get install nodejs sudo apt-get install npm

Step 3: Create a Node.js project

Create a new Node.js project on your machine.

bash
mkdir my-google-home-project cd my-google-home-project npm init -y

Step 4: Install necessary npm packages

Install the mqtt and google-home-notifier libraries.

bash
npm install mqtt google-home-notifier

Step 5: Write a script to listen to MQTT messages and play through Google Home

Create a JavaScript file, such as mqtt-to-google-home.js, and fill it with the following code:

javascript
const mqtt = require('mqtt'); const googlehome = require('google-home-notifier'); const language = 'zh'; // Choose the language you need googlehome.device('Google Home', language); // Configure Google Home device name and language const client = mqtt.connect('mqtt://localhost'); // MQTT server address client.on('connect', () => { client.subscribe('your/topic'); // Subscribe to the topic you want to listen to }); client.on('message', (topic, message) => { console.log(`Received message: ${message.toString()} on topic: ${topic}`); googlehome.notify(message.toString(), (res) => { console.log(res); // Output Google Home's response }); });

Step 6: Run your Node.js script

Run your script using Node.js.

bash
node mqtt-to-google-home.js

Step 7: Test

Send a message to your MQTT topic and verify that Google Home correctly receives and plays the message.

bash
mosquitto_pub -t 'your/topic' -m '你好,这是一个测试消息'

By following these steps, your Google Home Mini should be able to listen to messages from the specified MQTT topics and play the message content through its speaker. This solution is particularly suitable for home automation, personal projects, or any IoT application requiring voice feedback.

2024年8月16日 21:28 回复

你的答案