NEWS
TTS mit HomePod
-
@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
-
Hi,
kann mir einer von euch @Wildbill @M-A-Hueb @bloop bitte helfen. Ich kann nach einer Netzhaut OP aktuell nur schwer lesen und kann mich deshalb in HA nicht einlesen.
Habe HA OS in einer VM installiert und scheitere am anlegen des scriptes:
Was mache ich denn falsch oder kann mir jemand seine YAML exportieren, dann kann ich selber verusuchen was zu erkennen.
Danke
-
@wendy2702 So sieht der Export meines Script aus.
service: tts.speak data: media_player_entity_id: media_player.wohnzimmer_homepods message: "{{ states('input_text.tts_text') }}" target: entity_id: tts.google_de_de
Eventuell liegt es bei Dir an zu vielen Leerzeichen/Einrückungen. YAML ist da sehr pedantisch.
Und Dein Homepod muss im Homeassistant natürlich auch genau so heissen, wie Du ihn im Script auch aufrufst.
P.S.: Homeassistant einzurichten oder zu verwenden, wenn man nie damit zu tun hatte und das jetzt mit eingescränkter Sicht zu versuchen, ist in meinen Augen zum Scheitern verurteilt. Das ist auch ein System, bei dem man sich die Grundlager erarbeiten muss. Out of the box mal schnell installieren und irgendwas nachklicken wird da nicht klappen. Sage ich mal so als jemand, der da recht schnell lernt und auch seine zeit gebraucht hat, da durchzusteigen!Gruss, Jürgen
-
@wildbill Danke für deine schnelle Antwort.
Das es mit aktueller Leseschwäche nicht einfach ist/wird gebe ich dir recht. Allerdings darf ich aktuell ausser hin und wieder mal was lesen mit XXL Schrift nichts machen und mir fällt nach 2 1/2 Wochen langsam die Decke auf den Kopf.
Ich mache immer so 10-15 Minuten lesen bevor die Kopfschmerzen beginnen und dann länger pause. Das ist zum einarbeiten natürlich ungeeignet.
-
@m-a-hueb
Tut mir leid war die letzten Tage unterwegs.
Die Datenpunkte hab ich mir selbst angelegt und dann via Yahka als Switch in Homekit eingebunden. Eine Apple Automation schaltet mir diese dann auch wie gewünscht.Anbei der Code, allerdings einfach nur Copy-Paste wird nicht funktionieren.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="!y7`@#n+=[(Q-|EZ;8:k" x="-462" y="-37"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="E2j7B1.^p9*9kUYNS8JD"> <field name="oid">0_userdata.0.Systeme.Texttospeech_trigger</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="?Kz$y7OooLMA[T=9ec:i"> <value name="IF0"> <block type="logic_operation" id="uW%b3T*~vjac-vF1`0U:" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="X(r4^B.9Z6z`HvQ2mS/)"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="a_=XQTw%mE`j0~b[281@"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="gsEPr=I=t37K^/,3$t{P"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="c2/ei6.)HTg{28ZVy.7u"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="4T%LB;d0ufy99Z;9WBm]"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Systeme.Homepod_Kombi</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Bjt!xC{s0pIjRAA%ev*f"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="oS[.L`.v*Yb?tgy+F[?D"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Systeme.Homepod_Kombi</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Y]1u):1=|XOpZ+z0YEQf"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="mI!;M#SkwR/S/ufPILg["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">hass.0.entities.input_text.input_text.set_value</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="get_value" id="o6fHE{B,Z/^-QX-/Q{a("> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Systeme.Texttospeech_Homepod</field> </block> </value> <next> <block type="control" id="frMwj@LQ?1jneZ.Ylk=B"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Systeme.Texttospeech_trigger</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="s2FpT!=MKY0ucbzGduQ7"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="-YgM}_6QHq6cR~hxK^R="> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="iEX^m6b^f)UGZz,7II7x"> <field name="oid">hass.0.entities.media_player.kuche.state</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="*,Dxpg4A;S3D8{PbFFKg"> <value name="IF0"> <block type="logic_operation" id="M}*}(:*vuTGYPP5=91]=" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="T%TbC|K#lG{)rm8^WYB," inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="`[NCzpH4:sJ4z/Q~HDj0"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="Dg4}0`clexDWj$qK]dEI"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="=80c_.3*SbRub2plUoH="> <field name="TEXT">paused</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="wnP:[q-t{pYYFJz%Vkr}"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="8Yka^Nc.gWs(h):7.#O*"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#68C63AF96046#1.Relay0.Switch</field> </block> </value> <value name="B"> <block type="logic_boolean" id="`#NJMJt)L.~@8?9xQ/``"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="=)K1ORztIb+Ce![0TxB0"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="#5#OkW9gRp|qq2@)28(~"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Systeme.Homepod_Kombi</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";l~[#SE-:K:Qi62]S.mG"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="UMhmY2hoO^]u`8RF-7P]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Systeme.Homepod_Kombi</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="9cTiMX*-[lXWXGuJ7b#e"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </xml>