Wie kann man Gladys zum Sprechen bringen / welche Umgehung ist dafür möglich?

Hallo zusammen,

etwas, das ich mir sehr spezifisch wünsche, ist, dass, wenn ich mein Zuhause in den „Überwachungsmodus“ versetze, etwas in meinem Haus mir sagt:

  • « Überwachung aktiviert in 30 Sek. »
  • bip bip bip bip
  • « Überwachung aktiviert »

Und das Gegenteil, wenn jemand hereinkommt:

  • « Präsenz erkannt »
  • bip bip bip bip
    → ich gebe meinen Code ein
  • « Überwachung deaktiviert »

Ich besitze einen Mini-Bluetooth-Verstärker / mehrere Rpi (1 und 3) / kleine Lautsprecher… ich könnte mir etwas zusammenbasteln, wenn jemand eine Methode kennt!! :wink:

Habt ihr Ideen, die ihr mir vorschlagen könnt?

Gute Idee, ich hatte gerade Lust auf diese Art von Audiofeedback bei einer Aktion. Wo gibst du deinen Code ein? Hast du eine Tastatur (welchen Typ)?

Hier ist die Idee, die mir in den Sinn kommt:

  • Auf einem dedizierten RPi, der einen Lautsprecher steuert, ein Skript erstellen, das als Client mit dem MQTT-Netzwerk verbunden ist
  • Dieser MQTT-Client kann mehrere Werte (z. B. 1, 2 und 3) empfangen, um die drei von dir aufgeführten Aktionen auszulösen

So kann Gladys in deiner Szene die Sätze oder Pieptöne abspielen, die du in deinem dedizierten RPi programmiert hast.

Es ist sehr simpel so, aber das wird die Arbeit im ersten Schritt erledigen.

Danke @lmilcent für deine Antwort!

Also, was den Code angeht… Ich habe nur geblufft, weil ich die Ausrüstung noch nicht habe, aber ich denke, ich werde etwas von dieser Liste kaufen: Zigbee2MQTT
Ich denke, dass ich über Node-red eine Verbindung zu gladys herstellen kann.

Ich gebe zu, ich hatte daran gedacht, einen RPi zu haben, der mit einem Lautsprecher verbunden ist. Aber « ein Skript erstellen, das als Client mit MQTT verbunden ist »… das übersteigt meine Fähigkeiten ^^

Ich werde versuchen, ein bisschen zu recherchieren, um zu sehen, was ich finde, und ich werde meine Entdeckungen hier teilen!

Falls du ein funktionierendes und günstiges Zigbee-Tastatur findest, bin ich interessiert. Aber aus meinen ersten Recherchen ist es seltsamerweise nicht einfach, eine neue zu finden.

Ich verstehe, in Python gibt es Bibliotheken, aber man muss zumindest ein bisschen programmieren können. Zögere nicht, deine Funde zu teilen, auf jeden Fall :slight_smile:

Hallo, ich erwähne @spenceur, weil er Node Red und seine Sonos-Geräte dafür verwendet.
Ich hatte keine Zeit, mich nochmal damit zu beschäftigen.
Ich wollte einen Tutorial basierend auf seinen Erklärungen machen, aber es ist ziemlich komplex, weil es viel zu meistern gibt und ich habe es noch nicht geschafft.

Guten Abend zusammen, ich habe am 5. August einen Feature-Request gestellt, damit Alexa das über Gladys machen kann. Bisher nur eine Stimme, meine. Also habe ich mich an Node Red und Alexa gewandt und jetzt kann ich Alexa einen Satz sagen lassen. Mir bleibt nur noch, diesen Satz über MQTT in einer Szene auszulösen.

Ich bestätige und möchte darauf hinweisen, dass die Lib ultimate-tts mit Bluetooth-Lautsprechern verwendet werden kann :wink:

Bei mir gibt es eine Nachricht auf meiner Sonos, die mir sagt: „Alarm aktiviert“, „Alarm deaktiviert“, die Infos aus meinen Kalendern (Gesundheit, Geburtstage usw.).
Und auf Gladys-Seite nutze ich REST, um auf Node Red zuzugreifen und die gewünschte Nachricht abzuspielen.

Ein Tutorial ein Tutorial! :grin::wink:

Hallo,

Ich habe in mehreren Räumen RPi 0W installiert, die über USB-Adapter mit Lautsprechern verbunden sind. Auf jedem läuft ein Pulse-Audio-Server, wodurch sie zu etwa 30€ pro Stück zu vernetzten Lautsprechern werden. Ein zentraler Server verfügt über ein Python-Skript mit Flask für den HTTP-Zugriff, picoTTS für die Text-zu-Sprache-Funktion und ist mit allen Lautsprechern verbunden (wobei bei Bedarf Zonen ausgewählt werden können …). Dieses Skript wird über eine HTTP-Anfrage aufgerufen, und der zu sprechende Text wird als Parameter der Anfrage übergeben. Und fertig :grin:

Ich verwende dieses Prinzip, um Gladys kommunizieren zu lassen … Es ist etwas schmutzig, aber es erfüllt den gewünschten Zweck!

Könntest du ein kleines Video machen, um sich das Ergebnis vorstellen zu können?

@guim31: Ich weiß nicht genau, wie man ein Video zum Thema machen soll, tut mir leid… Aber hier ist der Python-Code zum Starten, der auf Port 1337 hört (tut mir leid…), und an den man eine Anfrage wie folgt sendet: http://IP/text2speak?text=« Truc à dire… ». Man benötigt jedoch einen oder mehrere Pulse-Server, an den/die der Audiostream gesendet wird. Außerdem muss das Skript über die Python-Bibliothek « Flask » und das Paket « libttspico-utils » verfügen.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from flask import Flask, request, jsonify
import os

app = Flask(__name__)

@app.route('/text2speak', methods=['GET'])
def prononce_texte():
	texte = request.args.get('text')
	if texte:
		os.system('pico2wave -l fr-FR -w /tmp/temp.wav {}'.format(texte))
		os.system('paplay -v -s Pulse --volume 32000 /tmp/temp.wav')
		os.remove('/tmp/temp.wav')
		return jsonify({'return':'OK !'})
	else:
		return jsonify({'return':'Missing text to speak ?!'})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=1337)

Danach verwende ich einen « HTTP »-Block in einer Szene und rufe das Python-Skript auf:

Das ist natürlich zu optimieren, aber es erfüllt seinen Zweck :slight_smile:

Was der Python-Code ergibt:

In der Hoffnung, helfen zu können…

Frage im Zusammenhang mit unserem aktuellen Austausch: Ich wollte das etwas „sauberer“ machen, indem ich eine POST-Methode verwende, aber was muss ich dann in das Feld „Body“ des HTTP-Blocks der Szene einfügen? :confused: