NEWS
TTS mit HomePod
-
@dodi666
Apple ist da ziemlich restriktiv, was die Veröffentlichung und Freigabe seiner Schnittstellen für externe angeht.
Das kann man kritisch sehen ... oder eben auch nicht, weil damit zu viel "Wildwuchs" verhindert wird.Die haben ihr System lieber stabil als da eine "eierlegende Wollmilchsau" anzubieten.
Mir persönlich ist das lieber. -
Ich habe noch etwas rumgespielt: Ich habe jetzt in Homeassistant ein kleines Script und eine Automation erstellt, welches bei Änderung eines Text-helper dessen Textinhalt einliest und auf einem Homepod mit deutscher Sprache vorliest. Den Text-helper habe ich mittels Hass-Adapter in iobroker. Wenn ich dort den zugehörigen Datenpunkt set_value mit Text befülle, so wird der Text auf dem Homepod vorgelesen. Das funktioniert also nun analog zu Alexas mit dem Alexa-Adapter. Lautstärke lässt sich vorher auch in iobroker anpassen, die Homepods sind dort in der Hass-Struktur unter media_player. Dort gibt es einen Datenpunkt volume_set.
Also funktioniert eigentlich alles, mit den o.g. Einschränkungen halt. Keine gleichzeitige Wiedergabe auf Stereopaaren und kein automatisiertes Fortsetzen, falls gerade eine Wiedergabe erfolgt.
Das zweite liesse sich bestimmt irgendwie automatisieren, aber die gleichzeitige Wiedergabe klappt so aufs Erste nicht. Wenn ich das Script für den linken und rechten Homepod erweitere, so laufen die nacheinander. Erst gibt der linke den text aus, dann kurze Pause, dann der rechte.Wenn man aber damit leben kann, dann ja, es funktioniert.
Gruss, Jürgen
-
@wildbill Hallo Jürgen,
Ich scheitere bereits daran meinen HomePod Mini in HomeAssistent zu integrieren...
Würdest du mir eventuell weiterhelfen und mir beschreiben wie das Skript bzw. die Automation auszusehen haben?Herzliche Dank
Martin -
@bloop Der Homepod tauchte bei mir in Home assistant automatisch auf. Über die Integration „Apple TV“. Der wird dann als media player angezeigt.
Als Script dann so:
Die Automatisierung dazu sieht so aus:
Die ruft das Cript auf, sobald der Datenpunkt „ input_text.tts_text“ geöndert wird. Das ist ein selbst erstellter Helper in Homeassistant mit Typ Text. Der taucht in iobroker auf. Text, der in iobroker dorthin geschrieben wird, wird dann auf den Homepods ausgegeben.Gruss, Jürgen
-
@wildbill Kannst ja schreiben, ob es dann geklappt hat. Kann aber erst im Laufe des Tages antworten morgen. Soeben Stromausfall und mekrwürdige Effekte an einer Steckdose. Vermutlich irgendwo der Nullleiter abgerissen. Das hat morgen oberste Prio. Hab erstmal die Sicherung raus und Kabeltrommeln gelegt, damit wenigstens das Nötigste da wieder läuft…
Gruss, Jürgen
-
@wildbill Herzlichen Dank für deine Hilfe!
Ich bin immer noch am einrichten, funktioniert leider noch nicht. Ich verzweifle echt an Home Assistent...
Dir viel Erfolg beim finden des Problems! -
@bloop Ich habe mein Problem behoben. Eine Phase war aus einer Verdrahtung gerutscht. Zum Glück die, die zur fehlerhaften Dose weiterführt und zum Glück komplett. Sonst wäre mir da das wohl heiss geworden, bis hin zum Kokeln.
woran klemmt es denn noch? Hast Du den Homepod in Homeassistant unter der Integration Apple TV sichtbar? Falls nicht, sind HA und Homepod im gleichen Netzwerk? Falls Du mit VLANS (mehreren getrennten Subnetzen) arbeitest, musst Du dafür sorgen, dass die Bonjour-Nachrichten ins andere Netz geroutet werden, sonst findet HA den Homepod nicht.
Gruss, Jürgen
-
@wildbill In Home Assistent funktionierts. Danke nochmal!
Jetzt habe ich einen Weg gefunden um die Wiedergabe nach TTS wieder fortzusetzen.Vorab: Ich höre in meinem HomePod Verbund meist lediglich Radio. Damit die auch alle schön Synchron laufen habe ich mir eine Automation angelegt welche mir bei umlegen eines Fiktiven Schalters alle Pods startet. Dieser wird zb. unter anderem durch einschalten des Lichtes eingeschaltet. So sind die Pods nicht direkt ans Licht gekoppelt und lassen sich entsprechend der unterschiedlichen Umständen Ein / Ausschalten.
Mit folgendem Blockly starten die Pods wieder nach der TTS Wiedergabe:
LG
-
@wildbill Ich habe mir mal Home-Assistant in ne VM installiert. Kannst du mir bitte sagen an welcher Stelle du das Script usw erstellt hast?
Gerne auch per PM wenn das hier nix verloren hat. -
@m-a-hueb Wenn, dann hat es schon hier was verloren, damit alle was davon haben. Aber, wo man in Homeassistant Scripte und Automationen einstellt, sollte eigentlich zum Grundwissen gehören, wenn man Homeassistant einsetzt?! Ganz grobe Richtung: „Einstellungen“ -> „Automatisierungen & Szenen“. Unter Skripte erstellt man dann das oben von mir erstgenannte Skript und unter Automatisierung eben die zugehörige Automatisierung. Der Helfer (Text) wird unter „Einstellungen“ -> „Geräte & Dienste“ -> „Helfer“ erstellt. Je nachdem, wie der Helfer und das Skript benamt werden, muss das halt im Skript und der Automatisierung umbenannt werden. Gleiches gilt für den Namen des Geräts (Homepod).
Gruss, Jürgen
-
@wildbill danke schonmal für die flotte Antwort. Hatte bisher noch garnix mit Home-Assistant am Hut, bitte entschuldige meine Unwissenheit.
Bin schon länger auf der Suche wie man die Homepods dazu nutzen kann um zBsp mitzuteilen wenn die Waschmaschine fertig ist. Hab es jetzt soweit hinbekommen.
Zumindest auf einem. Jetzt muss ich das noch auf den anderen 3en hinbekommen -
@m-a-hueb Homeassistant ist halt so quasi ganz anders als iobroker. Aber auch bei iobroker sitzt man ganz zu anfangs davor wie der "Ochs vor'm Berg" und weiss erstmal gar nicht, wo man hinlangen muss. Aber auch Homeassistant kann man lernen und es lohnt sich, wenn man es parallel zu iobroker betreiben will. Lohnt sich auch, es gibt da einige Dinge/Integrationen, die es für iobroker gar nicht gibt. Deshalb läuft bei mir zudem noch FHEM, was wiederum Dinge kann, die die anderen zwei nicht können und wieder komplett anders bedient wird. Lernt man nicht an einem Tag, wie so ein System läuft, aber man lernt es schnell, wenn man sich damit auseinandersetzt.
Für Fragen zu Homeassistant direkt würde ich deren Support-Seiten empfehlen. Zwar meist auf englisch, aber da wirst Du dann eher fündig als hier im Forum.Gruss, Jürgen
-
@wildbill Danke für die Infos. Das schau ich mir mal an.
-
@bloop könntest du das Blockly evtl exportieren und hier einstellen? dann sieht man direkt wie die einzelnen Datenpunkte heissen.
-
@m-a-hueb Welches Blockly meinst Du? Ich habe da in iobroker nichts laufen Es gibt einen Datenpunkt in iobroker, der heisst bei mir
hass.0.entities.input_text.tts_text
Der hat eben den Namen, wie ich den Helfer in Homeassistant benannt habe. Wenn ich den in iobroker beschreibe (manuell oder aus einem Skript heraus) dann erkennt die Automatisierung in Homeassistant das, startet das Skript in Homeassistant, welches dann eben diesen Text zur Sprachausgabe an meine Homepods weiterleitet. Mehr ist da nicht.
Gruss, Jürgen
EDIT: So sieht der Helfer in Homeassistant aus:
Wenn Du den so anlegst und den HASS-Adapter in iobroker mal neu startest, müsste der so in iobroker auftauchen.
-
@wildbill Ich meinte das Blockly, dass dasfür sorgt das nach dem TTS die Musik weiter geht
-
-
@wildbill Ich nochmal: das ganze Funktioniert wenn man den Datenpunkt des Helfers manuell editiiert. Sobald das ganze aus dem Blockly heraus verändert wird greift die Automation in Home-Assistant nicht. Kennst du das Problem?
-
@m-a-hueb Vermutlich verwendest Du im Blockly „Aktualisiere“ anstatt „Steuere“ und sagst damit dem HASS-Adapter, dass der Wert sich zwar geändert hat, Du aber bereits bestätigst, dass das so passt. Das kannst bzw. musst Du nur bei eigenen Datenpunkten unter userdata oder javascript verwenden.
In diesem Fall willst Du ja etwas steuern, nämlich eben Homeassistant anweisen, diesen Datenpunkt bei sich auszulesen und damit dann zu tun, was immer vorgesehen ist. Also musst Du das unbestätigt senden, ACK-flag false, was eben der Steuere-Befehl ist und nicht Aktualisiere.Gilt generell für alles in iobroker: Eigene Datenpunkte mit Aktualisiere, Datenpunkte aus Adaptern, mit denen Du etwas steuern, auslösen oder so willst, eben Steuere.
Gruss, Jürgen
-
@wildbill Dank dir. Hatte es auf steuere. das problem lies sich durch einen Reboot beheben