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!!
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
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
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.
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
Ich verwende dieses Prinzip, um Gladys kommunizieren zu lassen … Es ist etwas schmutzig, aber es erfüllt den gewünschten Zweck!
@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:
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?