Mit Hilfe von @spenceur erkläre ich Ihnen, wie Sie Ihre Sonos-Lautsprecher über node-red und eine Szene zum Sprechen bringen.
Ich werde nicht erklären, wie man NODE-RED einrichtet, @pierre-gilles hat bereits ein Video-Tutorial dazu gemacht. https://www.youtube.com/watch?v=bpmHzR8_S5g.
Allerdings müssen Sie in Node-RED eine externe API aufrufen, die « node-red–contrib-tts-ultimate » ist.
Dazu erklärt @pierre-gilles es bei 38:55 Minuten.
Hier ist der Node-red-Flow:
Erste Funktion: http in
Nichts Kompliziertes
Zweite Funktion: Globale Einstellungen
// Globale Einstellungen
global.set("defaultVolume", 30);
global.set("home", {
salon: '192.168.1.58'
chambre: 'ip-chambre'
})
return msg;
Dritte Funktion: Authentifizierung prüfen
msg.statusCode = 401;
if (
typeof msg.payload.room != 'undefined'
&& msg.payload.user === 'clef uuid' à renseigner
) {
msg.statusCode = 200;
msg.room = msg.payload.room || 'all';
msg.volume = msg.payload.volume || global.get("defaultVolume");
msg.payload = msg.payload.msg;
msg.test = global.get("home")[msg.room];
msg.setConfig = {};
if (msg.room === 'all') {
msg.setConfig = {
setMainPlayerIP: global.get("home")['salon'],
setPlayerGroupArray: [
global.get("home")['salon']
],
}
} else {
msg.setConfig.setMainPlayerIP = global.get("home")[msg.room];
}
}
return msg;
Sie müssen einen UUID-Schlüssel generieren, damit nur Sie über einen Schlüsselgenerator auf Ihren Lautsprechern senden können: uuidgenerator.net.
Vierte Funktion: TTS-Ultimate
Sie können die Parameter wählen, die Sie in dieser Funktion möchten.
In « main Sonos Player » die Lautsprecher oder die Gruppe von Lautsprechern auswählen.
Fünfte Funktion: http response
Darin gibt es nichts zu tun.
Sechste Funktion: debug
Denken Sie daran, alles richtig zu verbinden und Ihren Flow zu deployen.
Wenn alles gut geht, sollten Sie unter der Funktion TTs-Ultilmate « Sonos is connected » haben.
Jetzt erstellen wir eine Szene in Gladys.
Wählen Sie einen Auslöser entsprechend dem, was Sie tun möchten.
Dann eine Aktion « HTTP-Anfrage senden » hinzufügen.
In dieser Anfrage:
- Methode: POST
- URL: http://ip_de_votre_instance:1880/tts
- Body:
{
"user":"clef uuid",
"msg":"il faut sortir la poubelle",
"room":"salon",
"volume": 15
}
Jetzt können Sie mit Ihren Szenen spielen und Ihre Nachrichten senden.
Sobald ich verstanden habe, wie man eine Audiodatei hinzufügt, damit sie abgespielt werden kann, werde ich sie zum Tutorial hinzufügen.
Zum Beispiel ein Alarmsignal bei einem Einbruch.
Wenn Sie wissen, wie man das macht, bin ich für Informationen dankbar, ich bin weit davon entfernt, ein Experte in node-red zu sein.
Vielen Dank an @spenceur für seine Hilfe.



