Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. BUG - sayit geht nicht mehr !

    NEWS

    • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    BUG - sayit geht nicht mehr !

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      JohnDenver0815 last edited by JohnDenver0815

      Hallo in die Runde...
      Ich klinke mich hier mal mit ein, da dies der aktuellste Thread ist.

      Der SayIt-Adapter reiht sich bei mir leider in eine Liste nicht nutzbarer Adapter ein (u.a. IQontrol, Vis, diverse Wetteradapter), da das Zusammenspiel mit HEOS zumindest bei mir nicht 100%ig gegeben ist.

      Getestet habe ich sowohl mit der aktuellen Stable 3.0.5 als auch mit der Beta 5.0.0

      Was wird alles benötigt, um den SayIt-Adapter in Kombination mit HEOS zu nutzen?

      Installiert ist der HEOS-Adapter, Geräte wurden auch erkannt (nach manuellem Hinzufügen einer Geräte-IP in den Adaptereinstellungen) und werden auch seit mehreren Wochen erfolgreich über Mediacards in Lovelace geschalten.

      Ich hätte erwartet, dass der SayIt-Adapter nach Einstellung auf HEOS im Feld "Geräte" auch alle am HEOS-Adapter angemeldeten Geräte anbietet, bei mir ist eine eventuell erwartete Liste leider leer. Auch ein händisches Eintragen der Player-ID (sofern der Adapter gestoppt ist) ändert nichts an der Gesamtsituation.

      Der Test-Button broadcastet auf alle HEOS-Devices, ebenso der Datenpunkt "text" in den SayIt-Objekten.

      Wähle ich im Adapter dann noch zusätzlich (z.B.) den Gong aus, dann taucht folgendes im Log auf:

      Cannot write file: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Object
      

      Edit: unter sayit.0.tts.userfiles sind zumindest bei mir auch keine Datenpunkte hinterlegt.

      Gehe ich recht in der Annahme, für jedes Device eine eigene SayIt-Instanz zu installieren? Wenn nicht, wie bekomme ich mehrere parallele, aber unterschiedliche "Ansagen" auf meine Devices im Smart-Home?

      Vielleicht findet sich jemand, der mir etwas Licht ans Rad macht. 😉

      apollon77 Meister Mopper 2 Replies Last reply Reply Quote 0
      • apollon77
        apollon77 @JohnDenver0815 last edited by

        @johndenver0815 sagte in BUG - sayit geht nicht mehr !:

        Hi,

        hm ich bin nicht sicher ob das hier ein sinnvoller Thread ist für so eine Frage. Hast Du mal in einem Thread spezieller zu Heos oder im GitHub bei dem Adapter gefragt?

        Der SayIt-Adapter reiht sich bei mir leider in eine Liste nicht nutzbarer Adapter ein (u.a. IQontrol, Vis, diverse Wetteradapter), da das Zusammenspiel mit HEOS zumindest bei mir nicht 100%ig gegeben ist.

        Solche Sätze, vor allem als Einstieg in einen Support-Wunsch, finde ich persönlich immer sehr schwierig, weil ich immer hin und hergerissen bin ob ich den Thread kapere ,um zu Fragen was genau damit gemeint ist, wo diese Probleme berichtet oder diskustiert wurden, das man Sie ggf fixen kann, oder ob ich darüber hinweg lese. Eine unverständliche negative Stimmung lassen Sie in jedem Fall bei mir aufkommen was ich schade finde...

        J 1 Reply Last reply Reply Quote 0
        • Meister Mopper
          Meister Mopper @JohnDenver0815 last edited by Meister Mopper

          @johndenver0815

          Ich habe mir das jetzt mal angeschaut, weil ich auch drei Heos-Geräte habe bisher aber die Notwendigkeit noch nicht gesehen habe, diese mit Sayit zu beschicken.

          Folgende Konstellation habe ich hergestellt:

          9cec538d-b7d7-4e8e-8961-03b23286b6e5-grafik.png

          8277424f-e13e-4dd4-a8ff-5d1806529772-grafik.png

          Neue Sayit-Instanz angelegt:

          c98b150a-9942-45b0-bbc4-e4ed82440685-grafik.png

          886577aa-0ca2-4576-8c1f-94e792f79c34-grafik.png

          Wenn ich den tts.text befülle und abfeuere, wird auf allen Heos-Geräten die Meldung ausgegeben.
          1eae9749-428c-485f-b0fe-441c272e581e-grafik.png

          Danach wird allerdings die letzte Musikszene fortgeführt obwohl die Geräte vorher aus waren.
          Will man also den status quo vor der Meldung wiederherstellen muss ein wenig programmiert werden.

          Fazit: Hier funktioniert es!

          1 Reply Last reply Reply Quote 1
          • J
            JohnDenver0815 @apollon77 last edited by JohnDenver0815

            @apollon77 sagte in BUG - sayit geht nicht mehr !:

            Solche Sätze, vor allem als Einstieg in einen Support-Wunsch

            Ich gebe zu, der Einstieg war suboptimal, sollte allerdings auch nicht triggern, den Thread zu kapern. Hier gibts evtl. auch ein Layer-8-Thema, wenns meinerseits drängelt werde ich die Themen rechtzeitig in den entsprechenden Threads platzieren. Solange knobel ich da noch selber dran. Sorry dafür 😉

            @meister-mopper sagte in BUG - sayit geht nicht mehr !:

            Wenn ich den tts.text befülle und abfeuere, wird auf allen Heos-Geräten die Meldung ausgegeben.

            Das funktioniert bei mir auch, keine Frage. Der Punkt war das "parallele Abspielen unterschiedlicher Texte bzw. das Abspielen nur auf einzelnen Geräten". Dafür gibts in den Adaptereinstellungen den Punkt "Gerät", der in meinen Augen genau dafür da ist. Drücke ich drauf kommt allerdings keine Auswahl.

            Was habe ich damit vor?
            Ich habe (wie wahrscheinlich der eine oder andere hier) Kinder im "schwerhörigen Alter" ;-), welche per Knopfdruck (z.B.) die Ansage "Essen ist fertig" oder "deine täglichen Aufgaben sind noch nicht erledigt" auf ihre Speaker bekommen sollen. Die Info brauche ich ja dann selbst in der Küche nicht, aber die Kids sollten das schon hören. 😉

            Edit: hier dudeln in Summe aktuell 10 Heos-Devices, die müssen nicht alle gleichzeitig "meckern".

            Meister Mopper 1 Reply Last reply Reply Quote 0
            • Meister Mopper
              Meister Mopper @JohnDenver0815 last edited by

              @johndenver0815 sagte in BUG - sayit geht nicht mehr !:

              Edit: hier dudeln in Summe aktuell 10 Heos-Devices, die müssen nicht alle gleichzeitig "meckern".

              Reicht es denn nicht aus, tts mit (null) zu beschicken, damit das Gerät stumm bleibt?

              b2d8e872-3dc7-4fcc-ae36-e6ca5907bd17-grafik.png

              J 2 Replies Last reply Reply Quote 0
              • J
                JohnDenver0815 @Meister Mopper last edited by JohnDenver0815

                @meister-mopper Wenn ich denn die Chance hätte, ein einzelnes Gerät auszuwählen, dann reicht es. Aber eben genau daran scheiterts…

                1 Reply Last reply Reply Quote 0
                • J
                  JohnDenver0815 @Meister Mopper last edited by

                  @meister-mopper sagte in BUG - sayit geht nicht mehr !:

                  @johndenver0815 sagte in BUG - sayit geht nicht mehr !:

                  Edit: hier dudeln in Summe aktuell 10 Heos-Devices, die müssen nicht alle gleichzeitig "meckern".

                  Reicht es denn nicht aus, tts mit (null) zu beschicken, damit das Gerät stumm bleibt?

                  b2d8e872-3dc7-4fcc-ae36-e6ca5907bd17-grafik.png

                  Grad nochmal nachgesehen, dein Screenshot ist ja vom Speaker, nicht von den SayIt-Objekten. Heisst das, ich müsste bei jeder getriggerten Ansage alle nicht erwünschten Player mit (null) beschicken? Klingt ein wenig wie "durch die Brust ins Auge". Von der Logik her wäre es doch vernünftiger, nur explizit die Player anzusteuern, die etwas ausgeben sollen.

                  Irgendwie entzieht sich mir auch noch der Zusammenhang zwischen der Sayit- und der Heos-Instanz. Für meine Begriffe generiert der Sayit-Adapter aus dem übergebenen Text ein mp3-File, welches dann wiederum vom Heos-Device abgespielt werden kann. Da ich letzteres im Sayit-Adapter aber nicht einstellen kann (oder ich habe wieder ein Syntaxthema) werden alle Heos-Devices getriggert. Daher auch die Frage, ob ich für jedes im Heimnetz eingebundene Heos-Device eine eigene Sayit-Instanz benötige... Zumindest ist hier dokutechnisch noch etwas Luft nach oben, intuitiv komme ich erstmal nicht weiter.

                  Danke und Grüße

                  1 Reply Last reply Reply Quote 0
                  • J
                    JohnDenver0815 last edited by

                    Über ein Jahr her, aber irgendwie will es immernoch nicht laufen. Hat jemand noch eine Idee oder eine Anleitung zur Hand, wie ich per SayIt-Adapter explizit einzelne Heos-Devices ansteuern kann?

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MCU @JohnDenver0815 last edited by MCU

                      @johndenver0815
                      ChatGPT

                      //sayIt
                      setState('sayit.0.tts.text', 'Guten Morgen im Wohnzimmer.');
                      
                      //Heos
                      const heosPlayer = 'heos.0.player.1234567890.command'; // Beispiel: Wohnzimmer
                      const ttsUrl = 'http://192.168.178.50:8082/state/sayit.0.tts.mp3';
                      
                      setTimeout(() => {
                          setState(heosPlayer, `play_stream,${ttsUrl}`);
                      }, 2000); // 2s warten, bis MP3 fertig ist
                      
                      
                      // mehrere
                      function sayToHeos(playerName, text) {
                          const sayIt = 'sayit.0.tts.text';
                          const base = 'heos.0.player.';
                          const players = {
                              wohnzimmer: '1234567890',
                              kueche: '9876543210',
                              bad: '5555555555'
                          };
                      
                          const heosCmd = base + players[playerName.toLowerCase()] + '.command';
                          setState(sayIt, text);
                      
                          setTimeout(() => {
                              const url = 'http://192.168.178.50:8082/state/sayit.0.tts.mp3';
                              setState(heosCmd, `play_stream,${url}`);
                          }, 2000);
                      }
                      
                      // Beispiele:
                      sayToHeos('Wohnzimmer', 'Die Waschmaschine ist fertig.');
                      sayToHeos('Bad', 'Das Wasser ist warm.');
                      
                      

                      Typische Stolperfallen

                      Problem	                        Ursache	                         Lösung
                      Alle Lautsprecher sprechen	HEOS-Gruppe aktiv	    Gruppe auflösen oder play_stream an Einzelgerät senden
                      Kein Ton	                MP3 nicht erreichbar	    Web-Adapter aktivieren (Port prüfen)
                      Erster Teil des Satzes fehlt	MP3 noch nicht fertig	    1–2 s Wartezeit nach SayIt hinzufügen
                      SayIt spielt gleichzeitig lokal ab	im SayIt-Adapter    „Ausgabe-Gerät“ auf „none“ oder „System“ stellen
                      
                      J 1 Reply Last reply Reply Quote 1
                      • J
                        JohnDenver0815 @MCU last edited by

                        @mcu Ich habe mir das Script anhand des ChatGPT-Outputs zurecht gebogen, aber dem SayIt-Adapter ist es herzlich egal, welche Speaker ich im Script per ID anspreche. Der Text kommt sofort, sobald der State sayit.0.tts.text gesetzt wird (das triggert die MP3-Erzeugung, welche anschließend abgespielt wird bevor ich überhaupt eingreifen kann). Habe einen Speaker testweise ins gleiche Netz gehangen, in der Hoffnung ihn dann in den Instanzeinstellungen als Gerät auswählen zu können: ebenfalls Fehlanzeige. Ich kann lediglich den Typ auf "Heos" setzen, mit oben beschriebenem Erfolg.

                        Entweder muss SayIt dazu gebracht werden, nur die Datei zu erzeugen, ohne sie abzuspielen, oder ich muss je Instanz den betroffenen Speaker auswählen können.

                        Bug oder Feature?

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          MCU @JohnDenver0815 last edited by MCU

                          @johndenver0815 Sayit auf System einstellen, dann wird nur die Datei erzeugt, oder?
                          Evtl. eine eigene Instanz dafür nutzen?

                          https://192.168.178.150:8081/files/sayit.0/tts.mp3
                          

                          Datei dann lesen lassen für Heos?

                          J 1 Reply Last reply Reply Quote 0
                          • J
                            JohnDenver0815 @MCU last edited by

                            @mcu Leider nicht, dann kommt folgender Fehler:

                            	Cannot play: Exit code: Error: Command failed: mplayer /opt/iobroker/cache/ba84793cac330a08436c98b1ba452175.mp3 -volume 30/bin/sh: 1: mplayer: not found
                            
                            M Homoran Thomas Braun 3 Replies Last reply Reply Quote 0
                            • M
                              MCU @JohnDenver0815 last edited by

                              @johndenver0815 Wurde denn die Datei erzeugt?
                              5c9a3e82-cf54-49dc-bb9e-64a00fc65f8f-image.png

                              1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @JohnDenver0815 last edited by

                                @mcu sagte in BUG - sayit geht nicht mehr !:

                                Wurde denn die Datei erzeugt?

                                ich glaube nicht, dass das die Ursache sein wird.

                                Due Meldung heisst ja:
                                @johndenver0815 sagte in BUG - sayit geht nicht mehr !:

                                mplayer: not found

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  MCU @Homoran last edited by MCU

                                  @homoran
                                  mplayer wird nicht benötigt, wenn man die Datei per https abruft (chatGPT)
                                  Aber vielleicht will der Heos-Adapter den mplayer nutzen?
                                  Kann es nicht testen, hab kein HEOS-System.

                                  Dann auf dem System

                                  sudo apt install mplayer -y
                                  

                                  b505fe52-9049-4b95-bd93-c110b10049a8-image.png

                                  1 Reply Last reply Reply Quote 0
                                  • Thomas Braun
                                    Thomas Braun Most Active @JohnDenver0815 last edited by

                                    @johndenver0815

                                    sudo apt update
                                    apt policy mplayer
                                    

                                    sagt?

                                    1 Reply Last reply Reply Quote 0
                                    • J
                                      JohnDenver0815 last edited by

                                      Wenn ich sayit.0.tts.text direkt in den Objekten mit Text befülle, dann generiert SayIt die Datei (ich kann sie auch über den Browser aufrufen). Ist in dem Moment der Typ in SayIt auf Heos gestellt, dann geben auch "alle" Heos-Devices die mp3 wieder. Bis dahin also alles gut. Ich würde nur entweder gern direkt im Adapter unter Gerät (Dropdown ist leider leer) ein spezifisches Ausgabedevice angeben, oder alternativ dazu irgendwo einen Haken setzen, dass lediglich die Datei erzeugt wird, ohne eine akustische Ausgabe zu triggern (um sie danach per Heos-Command inkl. Playerzuweisung aufzurufen).

                                      Heos ist da in meinen Augen noch aussen vor, ebenso die Geschichte mit mplayer (der ja nur vom Sayit-Adapter versucht wird zu starten, weil der Typ auf System umgestellt wurde. Für welches Testszenario sollte ich jetzt den mplayer installieren, wenn ich ihn eh nicht nutzen möchte?

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        MCU @JohnDenver0815 last edited by

                                        @johndenver0815
                                        Durch welche Anpassung kam dieser Fehler? Was wurde wo eingetragen?
                                        Wie wird im Heos Objekte der Aufruf für die Datei eingetragen?
                                        Welche Datei wurde von sayIt erstellt?
                                        Bitte entsprechende Bilder von den Objekten und Dateien.

                                        Cannot play: Exit code: Error: Command failed: mplayer /opt/iobroker/cache/ba84793cac330a08436c98b1ba452175.mp3 -volume 30/bin/sh: 1: mplayer: not found
                                        
                                        J 1 Reply Last reply Reply Quote 1
                                        • J
                                          JohnDenver0815 @MCU last edited by

                                          @mcu sagte in BUG - sayit geht nicht mehr !:

                                          Durch welche Anpassung kam dieser Fehler? Was wurde wo eingetragen?

                                          Durch die versuchsweise Umstellung des "Typ" (nach deinem Tipp) auf den Parameter "System" in den Adaptereinstellungen von SayIt. Richtig wäre hier der Parameter "Heos", der aber ausnahmslos alle Heos-Devices mit der Ausgabe befeuert.

                                          @mcu sagte in BUG - sayit geht nicht mehr !:

                                          Wie wird im Heos Objekte der Aufruf für die Datei eingetragen?

                                          Unter heos.0.player.12345678.command wurde
                                          play_stream,http://10.xxx.xxx.xxx:8082/sayit.0/tts.mp3 eingetragen
                                          (IP und ID anonymisiert)

                                          Die Datei wurde wie gesagt erzeugt, ich kann sie auch per Linkaufruf im Browser abspielen. Die Heos-Devices geben sie auch wieder, und zwar sofort nach manueller Eingabe meines Textes im Objekt sayit.0.tts.text

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            MCU @JohnDenver0815 last edited by MCU

                                            @johndenver0815 Nicht 8082 nutzen sondern 8081

                                            http://10.xxx.xxx.xxx:8081/sayit.0/tts.mp3
                                            
                                            J 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            551
                                            Online

                                            32.4k
                                            Users

                                            81.2k
                                            Topics

                                            1.3m
                                            Posts

                                            error sayit
                                            15
                                            116
                                            8753
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo