{"id":2351,"date":"2024-04-01T00:09:46","date_gmt":"2024-03-31T22:09:46","guid":{"rendered":"https:\/\/www.montybanse.eu\/?p=2351"},"modified":"2024-04-01T01:18:25","modified_gmt":"2024-03-31T23:18:25","slug":"elementor-2351","status":"publish","type":"post","link":"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/","title":{"rendered":"TTS (-Queue) mit Home Assistant und Alexa als Skript"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Alles auf einen Blick<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#TTS_-Queue_mit_Home_Assistant_und_Alexa_als_Skript\" >TTS (-Queue) mit Home Assistant und Alexa als Skript<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Welches_Problem_gilt_es_zu_loesen\" >Welches Problem gilt es zu l\u00f6sen?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Das_Skript\" >Das Skript<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Voraussetzungen\" >Voraussetzungen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Lass_knaggen_Das_Skript\" >Lass knaggen: Das Skript<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Das_komplette_Skript\" >Das komplette Skript<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Felder_und_Einstellungen_des_Skripts\" >Felder und Einstellungen des Skripts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Wir_brauchen_Variablen\" >Wir brauchen Variablen!<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Jetzt_red_mit_mir\" >Jetzt red mit mir!<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#TTS_auf_Steroiden\" >TTS auf Steroiden<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Ja_woher_wissen_wir_nun_wie_lange_Alexa_redet\" >Ja, woher wissen wir nun wie lange Alexa redet?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Die_Gedanken_sind_frei\" >Die Gedanken sind frei...<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.montybanse.eu\/index.php\/server-programmierung-co\/smarthome\/elementor-2351\/#Benutzung_im_Automatisierungsalltag\" >Benutzung im Automatisierungsalltag<\/a><\/li><\/ul><\/nav><\/div>\n\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2351\" class=\"elementor elementor-2351\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2a1f2bf elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"2a1f2bf\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1747a80\" data-id=\"1747a80\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b8a3d6c elementor-widget elementor-widget-heading\" data-id=\"b8a3d6c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"TTS_-Queue_mit_Home_Assistant_und_Alexa_als_Skript\"><\/span>TTS (-Queue) mit Home Assistant und Alexa als Skript<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-70d21eb elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"70d21eb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-91569a6\" data-id=\"91569a6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e4b0962 elementor-drop-cap-yes elementor-drop-cap-view-default elementor-widget elementor-widget-text-editor\" data-id=\"e4b0962\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;drop_cap&quot;:&quot;yes&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Mein Zuhause ist ja zu einem Gro\u00dfteil durch automatisiert. Dazu geh\u00f6rt auch die eine oder andere Information \u00fcber den Status bestimmter Sensoren. Um mich Audiovisuell auf Dinge hinweisen zu lassen, nutze ich seither Alexa in Kombination mit der Nabu-Casa Cloud. Es gibt hier nat\u00fcrlich noch viele weitere Wege (ohne, daf\u00fcr bezahlen zu m\u00fcssen), aber daf\u00fcr, dass Home Assistant grunds\u00e4tzlich schon kostenfrei ist (und w\u00f6chentlich weiter entwickelt wird), ist es mir ein wichtiges meinen j\u00e4hrlichen kleinen Beitrag zu leisten. Aber ich schweife ab.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c8da369 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"c8da369\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cf0a8b9\" data-id=\"cf0a8b9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9aebab8 elementor-widget elementor-widget-heading\" data-id=\"9aebab8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Welches_Problem_gilt_es_zu_loesen\"><\/span>Welches Problem gilt es zu l\u00f6sen?<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-479625b elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"479625b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1a78358\" data-id=\"1a78358\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-243290f elementor-widget elementor-widget-text-editor\" data-id=\"243290f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Jeder der sich \u00fcber Home Assistant Informationen \u00fcber Alexa (oder ggf. auch andere) schicken l\u00e4sst, kennt es eventuell: Wenn kurzzeitig zwei Ank\u00fcndigungen hintereinander einfliegen, wird die erste mitunter unterbrochen und Alexa erz\u00e4hlt die zweite, bevor die erste vollst\u00e4ndig herunter gerattert wurde. Je nachdem ob es wichtig oder weniger wichtig war, kann das bl\u00f6d sein.<\/p><p>Ich habe daher dar\u00fcber nachgedacht, dass die Nachrichten an Alexa gequeued, sprich in eine Warteschlange gelegt werden sollten, wenn die erste derzeitige Nachricht noch nicht fertig erz\u00e4hlt wurde.<\/p><p>Das war das eigentliche Problem, dass ich l\u00f6sen wollte. Daraus entstand jedoch noch etwas viel tolleres.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ca947be elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"ca947be\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2bb5302\" data-id=\"2bb5302\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b676a33 elementor-widget elementor-widget-heading\" data-id=\"b676a33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Das_Skript\"><\/span>Das Skript<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b5812dd elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"b5812dd\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5d182c4\" data-id=\"5d182c4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bb9aaa4 elementor-widget elementor-widget-heading\" data-id=\"bb9aaa4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Voraussetzungen\"><\/span>Voraussetzungen<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4868888 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"4868888\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b7f4a3b\" data-id=\"b7f4a3b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-842c04c elementor-widget elementor-widget-text-editor\" data-id=\"842c04c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Eigentlich keine. Eventuell wird noch ein Helfer ben\u00f6tigt um Alexa im Haus stumm zu schalten. Wobei Stumm sich nur auf die TTS Funktion bezieht, nicht eine stumme Alexa als solche.\u00a0<\/p><p>Sollte das nicht gebraucht oder gew\u00fcnscht sein, kann der Teil einfach ausgebaut werden. (Die Bedingung ob input_boolean.alexa_stumm &#8222;off&#8220; ist).<\/p><p>Auch muss nat\u00fcrlich die einzelnen Entit\u00e4ten ggf. angepasst werden um die Benachrichtigungen an das korrekte Handy \/ App zu schicken oder die Licht Entit\u00e4ten auf eure Gegebenheiten abzustimmen.<\/p><p>Hier gilt es dann: K\u00f6pfchen bem\u00fchen (oder schreib mir ^^).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e7d777f elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"e7d777f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5fbd6f6\" data-id=\"5fbd6f6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2e37c67 elementor-widget elementor-widget-heading\" data-id=\"2e37c67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Lass_knaggen_Das_Skript\"><\/span>Lass knaggen: Das Skript<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-62f609a elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"62f609a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-90959c9\" data-id=\"90959c9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-34fee14 elementor-widget elementor-widget-text-editor\" data-id=\"34fee14\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Hier gehe ich zun\u00e4chst ein wenig auf das Skript und den Ablauf ein um zu verstehen, wie das ganze \u00fcberhaupt funktioniert und gedacht ist.<\/p><p>Urspr\u00fcnglich bringt man Alexa mit diesem Snippet zum reden:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2662e02 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"2662e02\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0330910\" data-id=\"0330910\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fc5181d elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"fc5181d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>service: notify.alexa_media\ndata:\n  message: Heute wird ein sch&ouml;ner Tag\n  data:\n    type: tts\n  target:\n    - media_player.alexa_wohnzimmer\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-34842b1 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"34842b1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-026908c\" data-id=\"026908c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bc5d326 elementor-widget elementor-widget-text-editor\" data-id=\"bc5d326\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ruft man dieses Skript nun mehrfach hintereinander auf, wird Alexa also immer gen\u00f6tigt von vorne anzufangen.<\/p><p>Diesen Teil (das direkte Ansprechen via notify.alexa_media) ersetze ich mit einem Skript. Dieses Skript, nimmt verschiedene Parameter entgegen, errechnet ungef\u00e4hr die Sprechzeit die Alexa ben\u00f6tigt, setzt eine Verz\u00f6gerung und wird dann beendet.<\/p><p>Sollte nun der Fall eintreten, dass mehrere Informationen an Alexa gegeben werden sollten (z.B. &#8222;Waschmaschine ist fertig&#8220; und gleichzeitig &#8222;Geschirrsp\u00fcler ist fertig&#8220;) und das Skript ist in der Zeit noch aktiv (durch die Verz\u00f6gerung), startet das Skript nicht automatisch neu, sondern wird selbstst\u00e4ndig in eine Warteschlange versetzt.<\/p><p>Damit ist es also m\u00f6glich, das Skript mehrfach aufzurufen und es wird im Anschluss neu gestartet, sobald der vorherige Ablauf abgeschlossen ist.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-82c6576 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"82c6576\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-59dc0f0\" data-id=\"59dc0f0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-765ec56 elementor-widget elementor-widget-heading\" data-id=\"765ec56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Das_komplette_Skript\"><\/span>Das komplette Skript<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6748993 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"6748993\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3d4d7e9\" data-id=\"3d4d7e9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-75ea5e0 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"75ea5e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>alias: tts_queue\nsequence:\n  - variables:\n      alexa_tts_message: &gt;\n        {% if critical %} &lt;audio\n        src=&#039;soundbank:\/\/soundlibrary\/computers\/beeps_tones\/beeps_tones_08&#039;\/&gt; {%\n        elif doorbell %} &lt;audio\n        src=&#039;soundbank:\/\/soundlibrary\/home\/amzn_sfx_doorbell_chime_02&#039;\/&gt; {% elif\n        announce %} &lt;audio\n        src=&#039;soundbank:\/\/soundlibrary\/computers\/beeps_tones\/beeps_tones_12&#039;\/&gt;\n        {%endif %}\n\n        {% if whisper %} &lt;amazon:effect name=&#039;whispered&#039;&gt; {% endif %} \n\n        {% if excited %} &lt;amazon:emotion name=&#039;excited&#039; intensity=&#039;medium&#039;&gt; {%\n        elif disappointed %} &lt;amazon:emotion name=&#039;disappointed&#039;\n        intensity=&#039;medium&#039;&gt; {% endif %}\n\n        {{ message }}\n\n        {% if excited or disappointed %} &lt;\/amazon:emotion&gt; {% endif %} {% if\n        whisper %} &lt;\/amazon:effect&gt; {% endif %}\n  - alias: TTS Ambilight starten\n    if:\n      - condition: state\n        entity_id: switch.smart_plug_2303164168077351200348e1e9bfe6df_outlet\n        state: &quot;on&quot;\n    then:\n      - service: scene.create\n        metadata: {}\n        data:\n          scene_id: tmp_ttsambilight\n          snapshot_entities:\n            - light.philips_tv_ambilight\n      - service: light.turn_on\n        target:\n          entity_id: light.philips_tv_ambilight\n        data:\n          rgb_color:\n            - 255\n            - 38\n            - 0\n          effect: &quot;FOLLOW_AUDIO: KNIGHT_RIDER_ALTERNATING: Expert&quot;\n  - alias: Sideboard blinken lassen 1\n    if:\n      - condition: template\n        value_template: &quot;{{ blink_sideboard }}&quot;\n    then:\n      - service: light.turn_on\n        metadata: {}\n        data:\n          effect: blink\n        target:\n          entity_id:\n            - light.sideboard_links\n            - light.sideboard_rechts\n  - if:\n      - condition: or\n        conditions:\n          - condition: state\n            entity_id: input_boolean.alexa_stumm\n            state: &quot;off&quot;\n          - condition: template\n            value_template: &quot;{{ important }}&quot;\n          - condition: template\n            value_template: &quot;{{ critical }}&quot;\n      - condition: or\n        conditions:\n          - condition: numeric_state\n            entity_id: zone.home\n            above: 0\n          - condition: state\n            entity_id: input_boolean.niemand_zuhause_uberschreiben\n            state: &quot;on&quot;\n    then:\n      - service: notify.alexa_media\n        data:\n          message: &quot;{{ alexa_tts_message }}&quot;\n          data:\n            type: tts\n          target: &quot;{{ target }}&quot;\n      - delay:\n          seconds: &gt;\n            {% set l = message|length %} {% set speed = 75 %} {% set\n            duration_seconds = ((speed * l)\/1000)|round(0,method=&#039;ceil&#039;)|int %}\n\n            {% if announce %} {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {% if critical %}  {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {% if doorbell %}  {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {{ duration_seconds }}\n    alias: Alexa TTS\n  - alias: Notification an Mobile oder HA\n    if:\n      - condition: or\n        conditions:\n          - condition: state\n            entity_id: input_boolean.alexa_stumm\n            state: &quot;on&quot;\n          - condition: template\n            value_template: &quot;{{ notify }}&quot;\n    then:\n      - service: notify.mobile_app_iphone_monty\n        metadata: {}\n        data:\n          message: &quot;{{ message }}&quot;\n          title: Venush&uuml;gel Notify\n      - service: notify.persistent_notification\n        metadata: {}\n        data:\n          title: Venush&uuml;gel Notify\n          message: &quot;{{ message }}&quot;\n  - alias: TTS Ambilight beenden\n    if:\n      - condition: state\n        entity_id: switch.smart_plug_2303164168077351200348e1e9bfe6df_outlet\n        state: &quot;on&quot;\n    then:\n      - if:\n          - condition: state\n            entity_id: input_boolean.alexa_stumm\n            state: &quot;on&quot;\n        then:\n          - delay:\n              hours: 0\n              minutes: 0\n              seconds: 10\n              milliseconds: 0\n      - service: scene.turn_on\n        metadata: {}\n        target:\n          entity_id: scene.tmp_ttsambilight\n      - service: scene.delete\n        metadata: {}\n        data: {}\n        target:\n          entity_id: scene.tmp_ttsambilight\n  - alias: Sideboard blinken lassen 2\n    if:\n      - condition: template\n        value_template: &quot;{{ blink_sideboard }}&quot;\n    then:\n      - service: light.turn_on\n        metadata: {}\n        data:\n          effect: blink\n        target:\n          entity_id:\n            - light.sideboard_links\n            - light.sideboard_rechts\nmode: queued\nicon: mdi:account-voice\nmax: 100\nfields:\n  announce:\n    selector:\n      boolean: {}\n    name: announce\n    description: Sound zur Ank&uuml;ndigung spielen\n  important:\n    selector:\n      boolean: {}\n    name: important\n    description: Alexa stumm ignorieren\n  critical:\n    selector:\n      boolean: {}\n    name: critical\n    description: Alexa stumm ignorieren, critical Sound\n  doorbell:\n    selector:\n      boolean: {}\n    description: Alexa stumm ignorieren, T&uuml;rglocke Sound\n    name: doorbell\n  message:\n    selector:\n      text:\n        multiline: true\n        multiple: false\n    name: message\n    required: true\n    description: Das spricht Alexa\n  whisper:\n    selector:\n      boolean: {}\n    name: whisper\n    description: Alexa fl&uuml;stert\n  excited:\n    selector:\n      boolean: {}\n    name: excited\n    description: Alexa ist aufgeregt\n  disappointed:\n    selector:\n      boolean: {}\n    name: disappointed\n    description: Alexa ist traurig\n  target:\n    selector:\n      entity:\n        multiple: true\n    name: target\n    required: true\n    default:\n      - media_player.alexa_kuche\n      - media_player.alexa_arbeitszimmer\n      - media_player.alexa_flur\n      - media_player.alexa_schlafzimmer\n      - media_player.alexa_badezimmer\n      - media_player.alexa_wohnzimmer\n    description: Welche Alexa soll sprechen?\n  blink_sideboard:\n    selector:\n      boolean: {}\n    name: blink_sideboard\n  notify:\n    selector:\n      boolean: {}\n    name: notify\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-48662e3 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"48662e3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8323657\" data-id=\"8323657\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8ab925c elementor-widget elementor-widget-text-editor\" data-id=\"8ab925c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ja Moin. Das ist ein ganzer Batzen. Aber schauen wir uns die einzelnen Bereiche doch einmal im Detail an und arbeiten uns von unten nach oben durch (fand ich an der Stelle recht sinnvoll):<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3af3cda elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"3af3cda\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ddd2a3a\" data-id=\"ddd2a3a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-efa2a8b elementor-widget elementor-widget-heading\" data-id=\"efa2a8b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Felder_und_Einstellungen_des_Skripts\"><\/span>Felder und Einstellungen des Skripts<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-be59bbb elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"be59bbb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-36c8369\" data-id=\"36c8369\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-916f273 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"916f273\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>mode: queued\nicon: mdi:account-voice\nmax: 100\nfields:\n  announce:\n    selector:\n      boolean: {}\n    name: announce\n    description: Sound zur Ank&uuml;ndigung spielen\n  important:\n    selector:\n      boolean: {}\n    name: important\n    description: Alexa stumm ignorieren\n  critical:\n    selector:\n      boolean: {}\n    name: critical\n    description: Alexa stumm ignorieren, critical Sound\n  doorbell:\n    selector:\n      boolean: {}\n    description: Alexa stumm ignorieren, T&uuml;rglocke Sound\n    name: doorbell\n  message:\n    selector:\n      text:\n        multiline: true\n        multiple: false\n    name: message\n    required: true\n    description: Das spricht Alexa\n  whisper:\n    selector:\n      boolean: {}\n    name: whisper\n    description: Alexa fl&uuml;stert\n  excited:\n    selector:\n      boolean: {}\n    name: excited\n    description: Alexa ist aufgeregt\n  disappointed:\n    selector:\n      boolean: {}\n    name: disappointed\n    description: Alexa ist traurig\n  target:\n    selector:\n      entity:\n        multiple: true\n    name: target\n    required: true\n    default:\n      - media_player.alexa_kuche\n      - media_player.alexa_arbeitszimmer\n      - media_player.alexa_flur\n      - media_player.alexa_schlafzimmer\n      - media_player.alexa_badezimmer\n      - media_player.alexa_wohnzimmer\n    description: Welche Alexa soll sprechen?\n  blink_sideboard:\n    selector:\n      boolean: {}\n    name: blink_sideboard\n  notify:\n    selector:\n      boolean: {}\n    name: notify<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b5e81b6 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"b5e81b6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-92f534f\" data-id=\"92f534f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f06e89f elementor-widget elementor-widget-text-editor\" data-id=\"f06e89f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>mode<\/strong><\/p><p>Hiermit wird der Modus definiert, in dem das Skript arbeitet. Da das Skript nur einmal zur gleichen Zeit laufen soll (sonst w\u00fcrde Alexa mehrfach reden bzw. dabei unterbrechen) wird der Modus <em>queued<\/em> gew\u00e4hlt, sprich: Warteschlange.<\/p><p><strong>icon<\/strong><\/p><p>Das Frei w\u00e4hlbare Icon f\u00fcr das Skript.<\/p><p><strong>max<\/strong><\/p><p>Wie oft darf das Skript aktiv sein (bzw. in dem Fall wie lang w\u00e4re die Warteschlange). 100 gleichzeitige TTS Nachrichten habe ich eigentlich nicht zu erwarten, aber bisschen mehr Luft nach oben ist ja auch nicht verkehrt.<\/p><p><strong>fields<\/strong><\/p><p>Die Felder hier sind das spannende. Durch das Definieren von Feldern, k\u00f6nnen wir dem Skript z.B. verschiedene Booleans mitgeben, auf die es dann reagieren soll.<\/p><p>Schauen wir uns Beispielsweise mal das Feld\u00a0<em>critical<\/em> an. Critical ist hier als Boolean definiert, es gibt also nur true oder false (an oder aus). Wird critical im Skript also als &#8222;true&#8220; \u00fcbergeben, k\u00f6nnen wir diesen Boolean in einem Template auswerten und darauf reagieren.<\/p><p>In meinem Fall werden dann z.B. verschiedene andere Sounds gespielt, Alexa fl\u00fcstert, Alexa schreit oder ist gelangweilt. Ein paar nette Spielereien.\u00a0<\/p><p>Um bei aber bei critical zu bleiben: Ist critical aktiv, wird es gleichzeitig ignoriert, wenn ich Alexa eigentlich Stumm geschalten habe (auch das sehen wir gleich noch &#8211; daf\u00fcr nutze ich einen weiteren Boolean namens alexa_stumm, den ich je nach Tageszeit oder Stimmung automatisch oder \u00fcber mein Dashboard aktivieren kann &#8211; in dem Fall redet Alexa nicht mehr). Gibt es nun aber eine kritische und wichtige Information \u00fcber die ich mich <span style=\"text-decoration: underline;\">unbedingt und immer<\/span> benachrichtigen m\u00f6chte (bei mir ist das z.B. sowas wie &#8222;Steckdose K\u00fchlschrank ist aus&#8220; kann ich dem Skript critical als true \u00fcbergeben und Alexa ignoriert den stummen Modus. Zus\u00e4tzlich wird ein bestimmter Ton als Sound gespielt, von dem ich wei\u00df &#8222;Oh, da folgt jetzt was was ich wissen sollte&#8220;.<\/p><p><strong>Weitere Felder\u00a0<\/strong><\/p><p>Nebenbei habe ich noch weitere Felder eingebaut, hier z.B. notify. Wird notify als Boolean true an das Skript \u00fcbergeben, bekomme ich den Alexa Text als Benachrichtigung aufs Handy und gleichzeitig als Permanente Benachrichtigung in das Home Assistant Dashboard. Das ist mega praktisch, da ich somit die Texte, die Alexa vorlesen sollte, noch einmal nachlesen kann.\u00a0<\/p><p>Beispiel aus dem Alltag: Ich schaue einen Film und hab Alexa (in Home Assistant) stumm. \u00dcblicherweise w\u00fcrde ich eine Benachrichtigung per Sprache erhalten, dass die Waschmaschine fertig ist. Nun spricht Alexa dies aber nicht und ich bekomme diese Information automatisch aufs Handy bzw. sehe sie im Dashboard. Sonst w\u00e4re sie mir einfach entgangen.<\/p><p>Oder auch noch: blink_sideboard. Ist dieser Boolean true, wird mein Sideboard im Wohnzimmer blinken. Somit kann ich mich auch optisch auf einen Hinweis bzw. eine Ank\u00fcndigung hinweisen lassen, wenn das Geplapper von Alexa nicht gew\u00fcnscht ist.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d4b4712 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"d4b4712\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b429561\" data-id=\"b429561\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-73af3d2 elementor-widget elementor-widget-heading\" data-id=\"73af3d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Wir_brauchen_Variablen\"><\/span>Wir brauchen Variablen!<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4bd44f6 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"4bd44f6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7ed6b87\" data-id=\"7ed6b87\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7d5cb20 elementor-widget elementor-widget-text-editor\" data-id=\"7d5cb20\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Damit wir nun mit dem ganzen Zeugs auch im Skript arbeiten k\u00f6nnen, k\u00f6nnen wir auf die einzelnen Felder (die am Ende nur eine Variable im Skript sind) zugreifen. Mit einfachen if\u2019s (die Praktischerweise im Vornherein true oder false auswerten k\u00f6nnen), braucht es dazu nicht einmal besonderes Hexenwerk:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-91fb657 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"91fb657\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2f47975\" data-id=\"2f47975\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b6def6d elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"b6def6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>variables:\n  alexa_tts_message: &gt;\n    {% if critical %} &lt;audio\n    src=&#039;soundbank:\/\/soundlibrary\/computers\/beeps_tones\/beeps_tones_08&#039;\/&gt; {%\n    elif doorbell %} &lt;audio\n    src=&#039;soundbank:\/\/soundlibrary\/home\/amzn_sfx_doorbell_chime_02&#039;\/&gt; {% elif\n    announce %} &lt;audio\n    src=&#039;soundbank:\/\/soundlibrary\/computers\/beeps_tones\/beeps_tones_12&#039;\/&gt;\n    {%endif %}\n\n    {% if whisper %} &lt;amazon:effect name=&#039;whispered&#039;&gt; {% endif %} \n\n    {% if excited %} &lt;amazon:emotion name=&#039;excited&#039; intensity=&#039;medium&#039;&gt; {% elif\n    disappointed %} &lt;amazon:emotion name=&#039;disappointed&#039; intensity=&#039;medium&#039;&gt; {%\n    endif %}\n\n    {{ message }}\n\n    {% if excited or disappointed %} &lt;\/amazon:emotion&gt; {% endif %} {% if whisper\n    %} &lt;\/amazon:effect&gt; {% endif %}<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fb16d86 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"fb16d86\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-625cfd1\" data-id=\"625cfd1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-49c945a elementor-widget elementor-widget-text-editor\" data-id=\"49c945a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Hier sieht man z.B. im ersten Bereich ({% if critical %} w\u00fcrde ein zus\u00e4tzlicher Text in die eigentliche Nachricht in Alexa eingebaut werden um einen Sound zu erzeugen. Dabei greife ich einfach auf die Audio-Bibliothek von Amazon zur\u00fcck. Die kann man einfach im TTS von Alexa einbauen und Alexa macht dann ein bisschen Ton. W\u00e4re z.B. das Feld <em>doorbell<\/em> true, dann w\u00fcrde der Sound\u00a0<i>amzn_sfx_doorbell_chime_02<\/i> gespielt werden.<\/p><p>Die ganzen Sachen lassen sich kombinieren (wobei ich bei den Sounds if und elif verwende, womit nur ein Sound abgespielt wird und das in der Priorit\u00e4t: critical, doorbell und announce. W\u00e4ren also critical und announce im Skript auf true, g\u00e4be es nur einen Sound vom critical.<\/p><p>Danach folgen noch whipser und exicited um die Stimmlage von Alexa zu beeinflussen und danach kommt in\u00a0<em>{{\u00a0<\/em><i>Message }}<\/i> das gleichnamige Feld, dass dem Skript ebenfalls \u00fcbergeben wird (das w\u00e4re das, was Alexa wirklich sprechen soll).<\/p><p>Als letztes werden die Emotionen noch beendet.<\/p><p>Das ganze (nun fertig zusammengesetzte Konstrukt) wandert nun in die Variable\u00a0<em>alexa_tts_message<\/em>.<\/p><p>Und das ist am Ende nun die, die wir alexa im\u00a0<em>notify.alexa_media<\/em> \u00fcbergeben werden:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cca11e3 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"cca11e3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a6bf9d9\" data-id=\"a6bf9d9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9055ec2 elementor-widget elementor-widget-heading\" data-id=\"9055ec2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Jetzt_red_mit_mir\"><\/span>Jetzt red mit mir!<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9bad004 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"9bad004\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-baea8c7\" data-id=\"baea8c7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6869f43 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"6869f43\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>service: notify.alexa_media\ndata:\n  message: &quot;{{ alexa_tts_message }}&quot;\n  data:\n    type: tts\n  target: &quot;{{ target }}&quot;\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-96803ac elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"96803ac\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-65c0f46\" data-id=\"65c0f46\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-273af0d elementor-widget elementor-widget-text-editor\" data-id=\"273af0d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Bei\u00a0<em>message<\/em> wird nun die vorher definierte Variable \u00fcbergeben, dass was Alexa nun sprechen soll.<\/p><p><em>target<\/em> ist ebenfalls als Feld definiert und hier \u00fcbergeben wir dann eine Liste, sodass wir sogar w\u00e4hlen k\u00f6nnen, welche Alexas reden sollen (sollte es mehrere geben &#8211; ich hab eine in jedem Raum).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-603c23a elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"603c23a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7d788bc\" data-id=\"7d788bc\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-17eaa02 elementor-widget elementor-widget-heading\" data-id=\"17eaa02\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"TTS_auf_Steroiden\"><\/span>TTS auf Steroiden<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c9c3495 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"c9c3495\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2aec0ae\" data-id=\"2aec0ae\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-072d20d elementor-widget elementor-widget-text-editor\" data-id=\"072d20d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Jetzt machen wir das ganze aber noch ein wenig geiler:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5bfaf1b elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"5bfaf1b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6d6fadd\" data-id=\"6d6fadd\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-808a1a0 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"808a1a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>sequence:\n  - variables:\n      alexa_tts_message: &gt;\n        {% if critical %} &lt;audio\n        src=&#039;soundbank:\/\/soundlibrary\/computers\/beeps_tones\/beeps_tones_08&#039;\/&gt; {%\n        elif doorbell %} &lt;audio\n        src=&#039;soundbank:\/\/soundlibrary\/home\/amzn_sfx_doorbell_chime_02&#039;\/&gt; {% elif\n        announce %} &lt;audio\n        src=&#039;soundbank:\/\/soundlibrary\/computers\/beeps_tones\/beeps_tones_12&#039;\/&gt;\n        {%endif %}\n\n        {% if whisper %} &lt;amazon:effect name=&#039;whispered&#039;&gt; {% endif %} \n\n        {% if excited %} &lt;amazon:emotion name=&#039;excited&#039; intensity=&#039;medium&#039;&gt; {%\n        elif disappointed %} &lt;amazon:emotion name=&#039;disappointed&#039;\n        intensity=&#039;medium&#039;&gt; {% endif %}\n\n        {{ message }}\n\n        {% if excited or disappointed %} &lt;\/amazon:emotion&gt; {% endif %} {% if\n        whisper %} &lt;\/amazon:effect&gt; {% endif %}\n  - alias: TTS Ambilight starten\n    if:\n      - condition: state\n        entity_id: switch.smart_plug_2303164168077351200348e1e9bfe6df_outlet\n        state: &quot;on&quot;\n    then:\n      - service: scene.create\n        metadata: {}\n        data:\n          scene_id: tmp_ttsambilight\n          snapshot_entities:\n            - light.philips_tv_ambilight\n      - service: light.turn_on\n        target:\n          entity_id: light.philips_tv_ambilight\n        data:\n          rgb_color:\n            - 255\n            - 38\n            - 0\n          effect: &quot;FOLLOW_AUDIO: KNIGHT_RIDER_ALTERNATING: Expert&quot;\n  - alias: Sideboard blinken lassen 1\n    if:\n      - condition: template\n        value_template: &quot;{{ blink_sideboard }}&quot;\n    then:\n      - service: light.turn_on\n        metadata: {}\n        data:\n          effect: blink\n        target:\n          entity_id:\n            - light.sideboard_links\n            - light.sideboard_rechts\n  - if:\n      - condition: or\n        conditions:\n          - condition: state\n            entity_id: input_boolean.alexa_stumm\n            state: &quot;off&quot;\n          - condition: template\n            value_template: &quot;{{ important }}&quot;\n          - condition: template\n            value_template: &quot;{{ critical }}&quot;\n      - condition: or\n        conditions:\n          - condition: numeric_state\n            entity_id: zone.home\n            above: 0\n          - condition: state\n            entity_id: input_boolean.niemand_zuhause_uberschreiben\n            state: &quot;on&quot;\n    then:\n      - service: notify.alexa_media\n        data:\n          message: &quot;{{ alexa_tts_message }}&quot;\n          data:\n            type: tts\n          target: &quot;{{ target }}&quot;\n      - delay:\n          seconds: &gt;\n            {% set l = message|length %} {% set speed = 75 %} {% set\n            duration_seconds = ((speed * l)\/1000)|round(0,method=&#039;ceil&#039;)|int %}\n\n            {% if announce %} {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {% if critical %}  {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {% if doorbell %}  {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {{ duration_seconds }}\n    alias: Alexa TTS\n  - alias: Notification an Mobile oder HA\n    if:\n      - condition: or\n        conditions:\n          - condition: state\n            entity_id: input_boolean.alexa_stumm\n            state: &quot;on&quot;\n          - condition: template\n            value_template: &quot;{{ notify }}&quot;\n    then:\n      - service: notify.mobile_app_iphone_monty\n        metadata: {}\n        data:\n          message: &quot;{{ message }}&quot;\n          title: Venush&uuml;gel Notify\n      - service: notify.persistent_notification\n        metadata: {}\n        data:\n          title: Venush&uuml;gel Notify\n          message: &quot;{{ message }}&quot;\n  - alias: TTS Ambilight beenden\n    if:\n      - condition: state\n        entity_id: switch.smart_plug_2303164168077351200348e1e9bfe6df_outlet\n        state: &quot;on&quot;\n    then:\n      - if:\n          - condition: state\n            entity_id: input_boolean.alexa_stumm\n            state: &quot;on&quot;\n        then:\n          - delay:\n              hours: 0\n              minutes: 0\n              seconds: 10\n              milliseconds: 0\n      - service: scene.turn_on\n        metadata: {}\n        target:\n          entity_id: scene.tmp_ttsambilight\n      - service: scene.delete\n        metadata: {}\n        data: {}\n        target:\n          entity_id: scene.tmp_ttsambilight\n  - alias: Sideboard blinken lassen 2\n    if:\n      - condition: template\n        value_template: &quot;{{ blink_sideboard }}&quot;\n    then:\n      - service: light.turn_on\n        metadata: {}\n        data:\n          effect: blink\n        target:\n          entity_id:\n            - light.sideboard_links\n            - light.sideboard_rechts<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d88b532 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"d88b532\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8598a06\" data-id=\"8598a06\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1f0e1ca elementor-widget elementor-widget-text-editor\" data-id=\"1f0e1ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Hier haben wir nun einen Haufen an zus\u00e4tzlichen IFs, die je nachdem noch andere Dinge tun (k\u00f6nnen).<\/p><p>Zum Beispiel: Immer wenn Alexa spricht und mein Fernseher aktiv ist (ein Philips mit Ambilight) erstelle ich eine Szene um den vorherigen Ambilight-Status zu sichern. Dann wird ein Ambilight Modus\u00a0<em>follow_audio: knight_rider_alternating\u2026&#8220;<\/em> aktiviert und ich hab nen nettes rotes Blinkelauflicht hinter dem Fernseher.<\/p><p>Das blinkende Sideboard habe ich ja schon kurz erkl\u00e4rt: Hier startet wenn das Feld\u00a0<em>blink_sideboard<\/em> true ist nur ein kurzer Lichteffekt auf meine Hue-Play-Bars.<\/p><p>Damit Alexa auch wirklich spricht, pr\u00fcfe ich noch auf den Helfer\u00a0<em>input_boolean.alexa_stumm<\/em> und ob \u00fcberhaupt jemand zuhause ist (<i>Zone.home gr\u00f6\u00dfer als 0<\/i>) &#8211; ist ja sonst auch Quatsch, wobei es au\u00dfer meinen Katzen auch niemanden interessiert, wenn Alexa mit sich selber reden w\u00fcrde.<\/p><p>(Das Sideboard blinkt \u00fcbrigens zweimal, einmal zu beginn und einmal zum Ende ^^).<\/p><p>Nachdem Alexa fertig ist mit dem Reden (wie wir das ungef\u00e4hr herausfinden, erkl\u00e4re ich gleich), wird die tempor\u00e4re Szene vom Ambiligt wieder aktiviert (also der Ursprungszustand) und anschlie\u00dfend gel\u00f6scht (5 Bytes sparen &#8211; habs ausgerechnet &#8211; \u2026 nicht).<\/p><p>\u00dcbrigens: Wenn alexa_stumm aktiv ist, habe ich noch eine extra Verz\u00f6gerung von 10 Sekunden eingebaut. Das ist daf\u00fcr da, damit das Ambilight 10 Sekunden Knight Rider spielt, da die &#8211; gleich nachfolgend erkl\u00e4rte Verz\u00f6gerung &#8211; ja \u00fcbergangen wird.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-18eb8d2 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"18eb8d2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9f89a93\" data-id=\"9f89a93\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2f271c2 elementor-widget elementor-widget-heading\" data-id=\"2f271c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Ja_woher_wissen_wir_nun_wie_lange_Alexa_redet\"><\/span>Ja, woher wissen wir nun wie lange Alexa redet?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d637beb elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"d637beb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a59b7c5\" data-id=\"a59b7c5\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-abf6d71 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"abf6d71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>delay:\n          seconds: &gt;\n            {% set l = message|length %} {% set speed = 75 %} {% set\n            duration_seconds = ((speed * l)\/1000)|round(0,method=&#039;ceil&#039;)|int %}\n\n            {% if announce %} {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {% if critical %}  {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {% if doorbell %}  {% set duration_seconds = duration_seconds + 2\n            |round(0,method=&#039;ceil&#039;)|int %} {% endif %}\n\n            {{ duration_seconds }}<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e84a5bf elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"e84a5bf\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-14b1e74\" data-id=\"14b1e74\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6f92c42 elementor-widget elementor-widget-text-editor\" data-id=\"6f92c42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Darum k\u00fcmmert sich dieser putzige Teil.<\/p><p>Ich bin ehrlich: Das ist nicht auf meinem Mist gewachsen. Ich habe dieses Snippet (bzw. den ersten Teil davon) in irgend einem Thread im Home Assistant Forum gefunden. Ich habe es leider auch nicht mehr wiedergefunden, vermutlich suche ich jetzt einfach nicht mehr nach den richtigen Buzzwords.\u00a0<\/p><p><span style=\"text-decoration: underline;\"><em>Solltest du deinen Code hier wieder erkennen, schreib mir kurz, dann verlinke ich dich gerne!<\/em><\/span><\/p><p>Das ganze berechnet nun anhand der l\u00e4nge der Zeichen die ungef\u00e4hre Zeit, die zum Sprechen gebraucht wird. Und es haut sogar sehr gut hin. Ich habe noch die anderen Teile erg\u00e4nzt und addiere f\u00fcr einen Sound jeweils 2 Sekunden.<\/p><p>Sprich, Home Assistant errechnet hier jetzt ein bisschen anhand der Zeichen und der Sounds die Zeit, die f\u00fcr die Nachricht gebraucht wird und gibt Alexa damit die M\u00f6glichkeit zu erz\u00e4hlen, bevor das Skript weiterl\u00e4uft.<\/p><p>Mega geil.<\/p><p>Und zack, haben wir am Ende eigentlich auch schon unsere fertige Warteschlange:<\/p><p>Rufen wir das Skript auf, legt Alexa los, das Skript wird um xx Sekunden verz\u00f6gert. Startet das Skript ein weiteres mal, wird es eingereiht und ausgef\u00fchrt sobald der vorherige Durchlauf fertig ist. Schlussendlich spricht Alexa damit zu Ende und dann startet die zweite Nachricht.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-508ddd2 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"508ddd2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fbe3792\" data-id=\"fbe3792\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5909865 elementor-widget elementor-widget-heading\" data-id=\"5909865\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Die_Gedanken_sind_frei\"><\/span>Die Gedanken sind frei...<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2409854 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"2409854\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-72b14f4\" data-id=\"72b14f4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bd80f60 elementor-widget elementor-widget-text-editor\" data-id=\"bd80f60\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Nun ist nur noch deiner Fantasie eine Grenze gesetzt. Drumherum kannst du nun Lampen wild blinken lassen oder auch deine Garage \u00f6ffnen, wenn Alexa spricht. xD<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-54098f8 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"54098f8\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8c4b31b\" data-id=\"8c4b31b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ff6b20d elementor-widget elementor-widget-heading\" data-id=\"ff6b20d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Benutzung_im_Automatisierungsalltag\"><\/span>Benutzung im Automatisierungsalltag<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8dbd3b1 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"8dbd3b1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a7d0c19\" data-id=\"a7d0c19\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f0a4c01 elementor-widget elementor-widget-text-editor\" data-id=\"f0a4c01\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Lustig wurde es, da ich nun jede Automatisierung durchforsten musste, in der ich Alexa nutzen m\u00f6chte.<\/p><p>Aus:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd1395c elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"dd1395c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e4ff3ef\" data-id=\"e4ff3ef\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f3cc217 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"f3cc217\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>service: notify.alexa_media\ndata:\n  message: Die Waschmaschine ist fertig.\n  data:\n    type: tts\n  target:\n    - media_player.alexa_wohnzimmer\n    - media_player.alexa_schlafzimmer\n    - media_player.alexa_badezimmer\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f41dc4f elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"f41dc4f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c45f50c\" data-id=\"c45f50c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-29d4120 elementor-widget elementor-widget-text-editor\" data-id=\"29d4120\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>wird nun:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4cd8384 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"4cd8384\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe9da12\" data-id=\"fe9da12\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e3263fd elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"e3263fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>service: script.tts_queue\ndata:\n  target:\n    - media_player.alexa_schlafzimmer\n    - media_player.alexa_badezimmer\n    - media_player.alexa_wohnzimmer\n  message: Die Waschmaschine ist fertig<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-00780c8 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"00780c8\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b283ace\" data-id=\"b283ace\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9f1968e elementor-widget elementor-widget-text-editor\" data-id=\"9f1968e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Eigentlich kein nennenswerter Unterschied. Aber spannend wird es nun, da sich einfach die zus\u00e4tzlichen Aktionen erg\u00e4nzen lassen:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e3efed0 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"e3efed0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f41f880\" data-id=\"f41f880\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-867fc08 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"867fc08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-yaml'>service: script.tts_queue\ndata:\n  target:\n    - media_player.alexa_schlafzimmer\n    - media_player.alexa_badezimmer\n    - media_player.alexa_wohnzimmer\n  message: Die Waschmaschine ist fertig\n  critical: true\n  blink_sideboard: true\n  notify: true\n  excited: true\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d1e35e3 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"d1e35e3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f01422e\" data-id=\"f01422e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ffce44d elementor-widget elementor-widget-text-editor\" data-id=\"ffce44d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Und schwupp: Habe ich eine Alexa, die mir\u00a0<strong>immer<\/strong> sagen wird, dass die Waschmaschine fertig ist, obwohl ich sie eigentlich stumm geschaltet habe, gleichzeitig blinkt mein Sideboard, ich bekomme ne Info aufs Handy und sie erz\u00e4hlt es mir sogar noch freudig erregt.<\/p><p>Und ich muss nicht jedes mal den Audio-Sound aus der Amazon-Bibliothek neu kopieren.<\/p><p>Gleichzeitig ergibt sich nat\u00fcrlich eine einfache Art der Wartung: M\u00f6chte ich den Critical-Sound \u00e4ndern: Mache ich das nur einmal im Skript und nicht in 10 Automatisierungen. Genauso wenn ich m\u00f6chte, dass statt dem Sideboard meine Sofa-LED blinkt. Dann \u00e4ndere ich das einmal im Skript.<\/p><p>So sieht das ganze \u00fcbrigens in den Entwicklertools aus, falls man damit herumspielen m\u00f6chte.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-544b23a elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no\" data-id=\"544b23a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8201f66\" data-id=\"8201f66\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7ff2324 elementor-widget elementor-widget-image\" data-id=\"7ff2324\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"750\" height=\"766\" src=\"https:\/\/www.montybanse.eu\/wp-content\/uploads\/2024\/04\/CleanShot-2024-04-01-at-00.56.39-1002x1024.png\" class=\"attachment-large size-large wp-image-2358\" alt=\"TTS Queue Skript Entwicklertools Home Assistant\" srcset=\"https:\/\/www.montybanse.eu\/wp-content\/uploads\/2024\/04\/CleanShot-2024-04-01-at-00.56.39-1002x1024.png 1002w, https:\/\/www.montybanse.eu\/wp-content\/uploads\/2024\/04\/CleanShot-2024-04-01-at-00.56.39-294x300.png 294w, https:\/\/www.montybanse.eu\/wp-content\/uploads\/2024\/04\/CleanShot-2024-04-01-at-00.56.39-768x785.png 768w, https:\/\/www.montybanse.eu\/wp-content\/uploads\/2024\/04\/CleanShot-2024-04-01-at-00.56.39-1503x1536.png 1503w, https:\/\/www.montybanse.eu\/wp-content\/uploads\/2024\/04\/CleanShot-2024-04-01-at-00.56.39.png 1545w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>TTS (-Queue) mit Home Assistant und Alexa als Skript Mein Zuhause ist ja zu einem Gro\u00dfteil durch automatisiert. Dazu geh\u00f6rt auch die eine oder andere Information \u00fcber den Status bestimmter Sensoren. Um mich Audiovisuell auf Dinge hinweisen zu lassen, nutze ich seither Alexa in Kombination mit der Nabu-Casa Cloud. Es<\/p>\n","protected":false},"author":1,"featured_media":2369,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[20],"tags":[],"class_list":["post-2351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-smarthome"],"_links":{"self":[{"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/posts\/2351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/comments?post=2351"}],"version-history":[{"count":15,"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/posts\/2351\/revisions"}],"predecessor-version":[{"id":2368,"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/posts\/2351\/revisions\/2368"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/media\/2369"}],"wp:attachment":[{"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/media?parent=2351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/categories?post=2351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.montybanse.eu\/index.php\/wp-json\/wp\/v2\/tags?post=2351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}