Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @David G. last edited by mickym

      @david-g sagte in Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos:

      @mickym

      Vielen Dank.
      Cool wäre noch, wenn die Lautstärke noch aus einem anderen DP kommt.

      Hab ich schon berücksichtigt

      c551dd8c-2706-4c89-b51b-59dac81f57a4-image.png

      Einen Datenpunkt für den Text, den anderen für Volume

      David G. 1 Reply Last reply Reply Quote 0
      • David G.
        David G. @mickym last edited by

        @mickym

        Vielen lieben Dank
        Teste sobald der Export da ist.

        Falls die Schwiegereltern nicht wieder zu früh kommen 🤣

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @David G. last edited by mickym

          @david-g Ich hab den curl Befehl selbst in die exec Node verfrachtet - kann man aber auch in der Template Node belassen.

          Deshalb siehst Du ihn in der Debugausgabe nicht.

          552dfe43-f49a-4453-a794-b03ffbc1fc17-image.png

          Also der Befehl würde dann vollständig so heißen:

          curl -d \ <play_info><app_key>xxxxxxx</app_key><url>http://192.168.99.33:8083/proxy.0/nodetts/f47f65d4ae122e0003d1f51977b47d71.mp3</url><service>service text</service><reason>reason text</reason><message>message text</message><volume>50</volume></play_info>" http://192.168.99.24:8090/speaker
          

          Hier der Flow:
          2846193d-7cd0-4ccc-82be-6ac2c027f5a3-image.png

          und hier der Export:

          [
             {
                 "id": "ea4ec0a982311ad6",
                 "type": "ttsultimate",
                 "z": "fec1825aaae0effe",
                 "name": "TTS-Ultimate",
                 "voice": "de-DE",
                 "ssml": false,
                 "sonosipaddress": "",
                 "sonosvolume": "20",
                 "sonoshailing": "0",
                 "config": "35ab450e7c673246",
                 "property": "payload",
                 "propertyType": {},
                 "rules": [],
                 "playertype": "noplayer",
                 "speakingrate": "1",
                 "speakingpitch": "0",
                 "unmuteIfMuted": true,
                 "elevenlabsStability": "0.5",
                 "elevenlabsSimilarity_boost": "0.5",
                 "x": 390,
                 "y": 200,
                 "wires": [
                     [
                         "2806f509e602fe63",
                         "5e8ec1239a8adc51"
                     ],
                     []
                 ]
             },
             {
                 "id": "2806f509e602fe63",
                 "type": "debug",
                 "z": "fec1825aaae0effe",
                 "name": "tts output",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "true",
                 "targetType": "full",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 680,
                 "y": 100,
                 "wires": []
             },
             {
                 "id": "491be7923b8a7632",
                 "type": "debug",
                 "z": "fec1825aaae0effe",
                 "name": "Befehl",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1370,
                 "y": 100,
                 "wires": []
             },
             {
                 "id": "f33f16b8963a9bac",
                 "type": "template",
                 "z": "fec1825aaae0effe",
                 "name": "",
                 "field": "payload",
                 "fieldType": "msg",
                 "format": "handlebars",
                 "syntax": "mustache",
                 "template": "\"<play_info><app_key>xxxxxxx</app_key><url>http://192.168.99.33:8083/proxy.0/nodetts/{{payload}}</url><service>service text</service><reason>reason text</reason><message>message text</message><volume>{{volume}}</volume></play_info>\" http://192.168.99.24:8090/speaker",
                 "output": "str",
                 "x": 1200,
                 "y": 180,
                 "wires": [
                     [
                         "491be7923b8a7632",
                         "7aaa60cfd020f3ca"
                     ]
                 ]
             },
             {
                 "id": "28729562ca781877",
                 "type": "ioBroker in",
                 "z": "fec1825aaae0effe",
                 "name": "",
                 "attrname": "payload",
                 "topic": "0_userdata.0.tts",
                 "payloadType": "value",
                 "onlyack": "",
                 "func": "all",
                 "gap": "",
                 "fireOnStart": "false",
                 "outFormat": "MQTT",
                 "x": 180,
                 "y": 200,
                 "wires": [
                     [
                         "ea4ec0a982311ad6"
                     ]
                 ]
             },
             {
                 "id": "9828506682942416",
                 "type": "ioBroker get",
                 "z": "fec1825aaae0effe",
                 "name": "",
                 "topic": "0_userdata.0.vol",
                 "attrname": "volume",
                 "payloadType": "value",
                 "errOnInvalidState": "nothing",
                 "x": 760,
                 "y": 180,
                 "wires": [
                     [
                         "38820d3ffb950c33"
                     ]
                 ]
             },
             {
                 "id": "5e8ec1239a8adc51",
                 "type": "switch",
                 "z": "fec1825aaae0effe",
                 "name": "fertig ?",
                 "property": "payload",
                 "propertyType": "msg",
                 "rules": [
                     {
                         "t": "true"
                     }
                 ],
                 "checkall": "true",
                 "repair": false,
                 "outputs": 1,
                 "x": 590,
                 "y": 180,
                 "wires": [
                     [
                         "9828506682942416"
                     ]
                 ]
             },
             {
                 "id": "7aaa60cfd020f3ca",
                 "type": "exec",
                 "z": "fec1825aaae0effe",
                 "command": "curl -d \\ ",
                 "addpay": "payload",
                 "append": "",
                 "useSpawn": "false",
                 "timer": "5",
                 "winHide": false,
                 "oldrc": false,
                 "name": "",
                 "x": 1380,
                 "y": 180,
                 "wires": [
                     [
                         "9a11f7b2222a6304"
                     ],
                     [
                         "b24feb9e68406c99"
                     ],
                     []
                 ]
             },
             {
                 "id": "9a11f7b2222a6304",
                 "type": "debug",
                 "z": "fec1825aaae0effe",
                 "name": "stdout",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1530,
                 "y": 140,
                 "wires": []
             },
             {
                 "id": "38820d3ffb950c33",
                 "type": "change",
                 "z": "fec1825aaae0effe",
                 "name": "payload nur Dateiname",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "filesArray.0.file",
                         "tot": "msg"
                     },
                     {
                         "t": "change",
                         "p": "payload",
                         "pt": "msg",
                         "from": ".*/ttsfiles/(.*)$",
                         "fromt": "re",
                         "to": "$1",
                         "tot": "str"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 990,
                 "y": 180,
                 "wires": [
                     [
                         "f33f16b8963a9bac"
                     ]
                 ]
             },
             {
                 "id": "b24feb9e68406c99",
                 "type": "debug",
                 "z": "fec1825aaae0effe",
                 "name": "stderr",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1530,
                 "y": 180,
                 "wires": []
             },
             {
                 "id": "35ab450e7c673246",
                 "type": "ttsultimate-config",
                 "name": "TTS Service",
                 "noderedipaddress": "192.168.178.69",
                 "noderedport": "1980",
                 "purgediratrestart": "leave",
                 "ttsservice": "googletranslate",
                 "TTSRootFolderPath": "/home/iobroker/tts"
             }
          ]
          

          Die Debug Nodes kannst ja dann alle wieder entfernen bzw. deaktivieren.

          Wie gesagt, Du kannst die Ablage der mp3 s auch woanders hinlegen, Du musst das halt im Root tts Verzeichnis festlegen und der User iobroker muss halt Schreib- und Leserechte auf den Ordner haben.
          5df37843-b875-4060-adb1-060e3d11f77e-image.png

          Wenn Du diese Jingle also das Hailing noch davor haben willst - dann kann das nacheinander abgespielt werden, dann musst Du Deinen Proxy auf das Verzeichnis vorher definieren.

          4fa606bc-5c1e-405c-b387-ef01704bdebd-image.png

          Wenn das direkte Sonos Lautsprecher sind, kannst Du das aber doch auch direkt ausgeben, dann brauchst Du nicht mit curl arbeiten. Das ist doch viel eleganter?

          David G. 1 Reply Last reply Reply Quote 0
          • David G.
            David G. @mickym last edited by

            @mickym

            Passt auf Anhieb (bis ich dran gedacht habe den API-Key wieder einzutragen).

            Danke.
            Wenn ich vor und nach den Text der gesprochen werden soll mache ich das mit einer template Node an zweiter Stelle?

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @David G. last edited by

              @david-g Wie gesagt, ich versteh zwar nicht, warum Du Deine Lautsprecher nicht direkt über die Node ansteuerst?

              Wenn ich vor und nach den Text der gesprochen werden soll mache ich das mit einer template Node an zweiter Stelle?

              Nein Du nimmst ein Array - zum Beispiel mit dem Hailing und gibst halt dann mehrere mp3 in den Flow - oder in die Template Node ein.

              Aber wie gesagt, warum nutzt Du die Node nicht direkt zur Ausgabe?

              David G. 1 Reply Last reply Reply Quote 0
              • David G.
                David G. @mickym last edited by

                @mickym sagte in Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos:

                Wie gesagt, ich versteh zwar nicht, warum Du Deine Lautsprecher nicht direkt über die Node ansteuerst?

                Ich habe eine Bose Soundtouch.
                Da gibt es keinen Adapter bzw Node um diese anzusteuern. Über den curl Befehl kann man aber Dinge an die Box senden.

                @mickym sagte in Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos:

                Nein Du nimmst ein Array - zum Beispiel mit dem Hailing und gibst halt dann mehrere mp3 in den Flow - oder in die Template Node ein.

                Für vor und nach den Text geht es nicht um mp3s.
                Ich möchte vor den Text noch SSML Kommandos setzen.
                Hab das jetzt erfolgreich mit der template Node umgesetzt.

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @David G. last edited by

                  @david-g sagte in Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos:

                  Hab das jetzt erfolgreich mit der template Node umgesetzt.

                  ok

                  David G. 1 Reply Last reply Reply Quote 0
                  • David G.
                    David G. @mickym last edited by David G.

                    @mickym

                    Kann ich irgendwie rausfinden, was er in der Node zu bemängeln hat?
                    Habe alle Settings doppelt geprüft, klappt auch alles.

                    Screenshot_20240623_200509_Chrome.jpg Screenshot_20240623_200521_Chrome.jpg Screenshot_20240623_200928_Photos.jpg

                    Das erste popup kommt bei jedem Speichern.

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @David G. last edited by mickym

                      @david-g Na klick halt auf suche nach unbenutzen Konfigurationsnode und lösche diese. Also entweder hast Du meine Konfig übernommen TTS Service oder Deine - aber halt nur eine verwendest Du in Deiner tts node. Sieht aber so aus dass Du die TTS Service mit dem Import übernommen hast und nicht verwendest.

                      5f0703d7-591b-4e3c-b273-f2d54f5feeda-image.png

                      d4a0aa12-6b70-4ffa-8d98-254cfa0bea96-image.png

                      Also die TTS Service Node in den Konfigurationsnodes löschen.

                      1 Reply Last reply Reply Quote 0
                      • Feuersturm
                        Feuersturm last edited by

                        @surfer09 sagte in Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos:

                        Was mache ich denn, wenn er den Lautsprecher nicht findet? Ich habe den Symfonisk von IKEA, im Prinzip Sonos. Er sucht schon eine ganze Zeit und findet scheinbar nichts...

                        Hast du hierfür eine Lösung gefunden? Ich hab gerade node-red installiert und das Paket installiert und versuche auch gerade das System zu konfigurieren, sehe bei mir aber auch das "Discovering...waiting" und habe auch den IKEA Sonos Lautsprecher.

                        surfer09 1 Reply Last reply Reply Quote 0
                        • surfer09
                          surfer09 @Feuersturm last edited by

                          @feuersturm Nein, leider nicht. Ich nutze wieder die HTTP API Schnittstelle.

                          Feuersturm 1 Reply Last reply Reply Quote 0
                          • Feuersturm
                            Feuersturm @surfer09 last edited by

                            @surfer09 Nachdem ich zwischendurch mal auf "deploy" geklickt hatte und das Objekt dann nochmal geöffnet hatte kam danach ein grüner Punkt und der Lautsprecher wurde gefunden. Ich kann nur leider gerade nicht weiter testen, da ansonsten das Kind wach wir, da in dem Zimmer die Box steht 😉
                            ed7c2af4-da23-47f6-a75c-e799eda4946e-grafik.png

                            1 Reply Last reply Reply Quote 0
                            • K
                              kptkip @surfer09 last edited by kptkip

                              @surfer09
                              Ich hab hier schon lange nicht mehr reingeschaut, sorry dafür..😇

                              Meine Vermutung ist, dass da ein Netzwerk-Problem vorliegen könnte. Wenn der IOBroker - also auch der Node-Red im gleichen Netz wie die SONOS-Lautsprecher ist, dann sollte es klappen. Meine Ikea-Boxen werden wie der SONOS-Rest gleichermaßen gefunden.

                              Check vlt auch mal in der TTS-Ultimate-Config, ob die IOBroker-IP hier eingetragen ist:
                              Bildschirmfoto 2024-10-19 um 12.18.42.png

                              1 Reply Last reply Reply Quote 0
                              • K
                                kptkip @wendy2702 last edited by

                                @wendy2702
                                Ich glaube mich erinnern zu können, dass ich sowohl hier im sayIt-Thread im Forum als auch auf Github die Problem reportet habe.

                                Es kam entweder keine Antwort, oder dass ich irgendwelche Probleme in meiner IoBroker-Installation und nodejs-Versionskonflikte o.Ä. hätte und erstmal meine Installation prüfen sollte. Vor allem das Upload-der-Gong-Mp3s-Problem wurde völlig runter gespielt - auch das Nicht-Finden der SONOS-Geräte (waren von einem Tag auf den anderen weg) wurde mal wieder als "mein" Problem abgetan. Hilfe ist beim Maintainer des sayIt-Adapters nicht zu erwarten.

                                Ganz zu schweigen vom Feature, mehrere SONOS-Geräte anzusprechen. Das kann nur durch eine dementsprechende Anzahl von zu installierenden Adaptern gelöst werden mit dementsprechenden RAM-Verbrauch.🤦‍♂️

                                wendy2702 1 Reply Last reply Reply Quote 0
                                • wendy2702
                                  wendy2702 @kptkip last edited by

                                  @kptkip hi,

                                  Hast du mich oder den Thread vielleicht irgendwie verwechselt?

                                  K 1 Reply Last reply Reply Quote 0
                                  • K
                                    kptkip @wendy2702 last edited by kptkip

                                    @wendy2702

                                    1. Nein, da ich diesen thread eröffnet habe und andere Personen Off-Topic weiter geführt haben, ohne einen eigenen aufzumachen.

                                    2. Nein, da es eine direkte Antwort auf Deinen ersten Beitrag (Nr. 7 hier im Thread) ist.

                                    Im Gegensatz zu anderen Personen hier bin ich wieder beim Thema des Threads.

                                    Es wäre also schön, wenn für das Thema mit der "location von mp3 -Files" etc. ein eigener Thread aufgemacht würde. Dann könnten wir uns hier wieder ungestört über das Original-Thema unterhalten.

                                    1 Reply Last reply Reply Quote 0
                                    • wendy2702
                                      wendy2702 last edited by

                                      @kptkip mein Post ist von Juni und ich habe damals hauptsächlich auf die Github issues aufmerksam gemacht und gebeten diese zu unterstützen.

                                      In Summe gab es dann 4 Posts die „Off Topic“ waren.

                                      Weiß nicht wo jetzt aktuell dein Problem damit herkommt.

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        kptkip @wendy2702 last edited by

                                        @wendy2702
                                        Welches Problem? Du kontst etwas nicht zuordnen. Ob das nun ein halbes Jahr her ist oder gestern erfolgt ist, ist m.E. völlig irelevant.

                                        Ich habe lediglich eingeordnet, dass mein Post zu meinem Thread gehört, was du angezweifelt hast. Also von Problem weit entfernt.

                                        wendy2702 1 Reply Last reply Reply Quote 0
                                        • wendy2702
                                          wendy2702 @kptkip last edited by

                                          @kptkip Ich werde deinen Thread nicht weiter behelligen.

                                          Schönen Sonntag

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          604
                                          Online

                                          31.6k
                                          Users

                                          79.5k
                                          Topics

                                          1.3m
                                          Posts

                                          9
                                          40
                                          2258
                                          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