Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    668

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Ersatz für sayit-Adapter zur Sprachausgabe auf Sonos

Scheduled Pinned Locked Moved ioBroker Allgemein
40 Posts 9 Posters 5.4k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mickymM mickym

    @david-g Nun - ich hab mir mal die Node runtergeladen, ich habe allerdings kein Sonos.

    So und den Rest habe ich ausprobiert. Das was in Deinem Blockly machst ist kein Problem im Prinzip.

    bei dem mp3 im Netzwerk bereitstellen, weiss ich nicht - der Pfad ist in der Regel nur auf auf das lokale Datensystem beschränkt. Den Curl Befehl mit dem Pfad zur mp3 ist kein Problem - aber der ist halt relativ fix.

    Das Einzige, wenn man keine Lautsprecher dran hat, ist wohl dass man mit dieser Warnmeldung leben muss.
    1bfc689a-e7c7-44e9-b04e-e40d75c19cd2-image.png

    Aber ansonsten ist das kein Problem.

    Du triggerst einfach mit Deinem Datenpunkt den Text den Du ausgeben willst, dann bekommst Du den Pfad zu dem mp3 und kannst dann noch die Lautstärke abholen und den Befehlstext erstellen.

    David G.D Online
    David G.D Online
    David G.
    wrote on last edited by
    #13

    @mickym

    Auch wenn ich bei Blockly den Leuten immer sage "Testet erstmal selber.... ", könntest du mir den Aufbau mal zeigen (ggf eine Export ^^)?

    Ich schaffe es einfach nicht......

    Bereitgestellt bekomme ich die mp3s bestimmt über den proxy Adapter.

    Zeigt eure Lovelace-Visualisierung klick
    (Auch ideal um sich Anregungen zu holen)

    Meine Tabellen für eure Visualisierung klick

    mickymM 1 Reply Last reply
    0
    • David G.D David G.

      @mickym

      Auch wenn ich bei Blockly den Leuten immer sage "Testet erstmal selber.... ", könntest du mir den Aufbau mal zeigen (ggf eine Export ^^)?

      Ich schaffe es einfach nicht......

      Bereitgestellt bekomme ich die mp3s bestimmt über den proxy Adapter.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by mickym
      #14

      @david-g Nochmal - die Node erzeugt Dir mp3 da musst Du nichts machen. Ich dachte die mp3s sollen aus dem Text erzeugt werden? -

      bf85f0e8-02fc-4e08-b118-44a03821bf00-image.png

      Bei dem Service habe ich halt mal das ohne Authentifizierung genommen und ein iobroker homeverzeichnis als cache root genommen.

      Dort legt Dir die Node dann die mp3 files ab - die Struktur ist vorgegeben.

      Bei der Node selbst gibst dann noch die Stimme an - für Deutsch ist nur eine Stimme vorhanden:

      382c5405-945a-459e-a0d3-f6f0ab6f762c-image.png

      Mit Inject Nodes kannst Du testen - so wie ich das unten gemacht habe. Ansonsten gibst Du dann einfach die iobroker-In Node ein mit dem Datenpunkt der dann gesprochen werden soll.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      David G.D 1 Reply Last reply
      0
      • mickymM mickym

        @david-g Nochmal - die Node erzeugt Dir mp3 da musst Du nichts machen. Ich dachte die mp3s sollen aus dem Text erzeugt werden? -

        bf85f0e8-02fc-4e08-b118-44a03821bf00-image.png

        Bei dem Service habe ich halt mal das ohne Authentifizierung genommen und ein iobroker homeverzeichnis als cache root genommen.

        Dort legt Dir die Node dann die mp3 files ab - die Struktur ist vorgegeben.

        Bei der Node selbst gibst dann noch die Stimme an - für Deutsch ist nur eine Stimme vorhanden:

        382c5405-945a-459e-a0d3-f6f0ab6f762c-image.png

        Mit Inject Nodes kannst Du testen - so wie ich das unten gemacht habe. Ansonsten gibst Du dann einfach die iobroker-In Node ein mit dem Datenpunkt der dann gesprochen werden soll.

        David G.D Online
        David G.D Online
        David G.
        wrote on last edited by David G.
        #15

        @mickym

        Ich müsste den Dateinamen der mp3 bekommen. Das schaffe ich nicht.

        Und dann für den curl dem curl Befehl zusammenbauen.

        curl -d \ "<play_info><app_key>xxxxxxx</app_key><url>http://192.168.99.33:8083/xxxx.0/Dateiname.mp3</url><service>service text</service><reason>reason text</reason><message>message text</message><volume>Wert_aus_DP</volume></play_info>" http://192.168.99.24:8090/speaker

        Quasi so, nur dass da vermutlich noch einiges zwischen muss....
        Screenshot_20240623_140358_Chrome.jpg

        Zeigt eure Lovelace-Visualisierung klick
        (Auch ideal um sich Anregungen zu holen)

        Meine Tabellen für eure Visualisierung klick

        mickymM 2 Replies Last reply
        0
        • David G.D David G.

          @mickym

          Ich müsste den Dateinamen der mp3 bekommen. Das schaffe ich nicht.

          Und dann für den curl dem curl Befehl zusammenbauen.

          curl -d \ "<play_info><app_key>xxxxxxx</app_key><url>http://192.168.99.33:8083/xxxx.0/Dateiname.mp3</url><service>service text</service><reason>reason text</reason><message>message text</message><volume>Wert_aus_DP</volume></play_info>" http://192.168.99.24:8090/speaker

          Quasi so, nur dass da vermutlich noch einiges zwischen muss....
          Screenshot_20240623_140358_Chrome.jpg

          mickymM Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by
          #16

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

          curl -d \ "<play_info><app_key>xxxxxxx</app_key><url>http://192.168.99.33:8083/xxxx.0/Dateiname.mp3</url><service>service text</service><reason>reason text</reason><message>message text</message><volume>Wert_aus_DP</volume></play_info>" http://192.168.99.24:8090/speaker

          Der Pfad zu dem Dateinamen ist lokal und wird in einem Array ausgegeben.

          55929e69-fcdb-4ff8-b104-fcd48f0b2a42-image.png

          Sobald die Node fertig ist, gibt sie Dir doch den Pfad zur mp3

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Reply Last reply
          0
          • David G.D David G.

            @mickym

            Ich müsste den Dateinamen der mp3 bekommen. Das schaffe ich nicht.

            Und dann für den curl dem curl Befehl zusammenbauen.

            curl -d \ "<play_info><app_key>xxxxxxx</app_key><url>http://192.168.99.33:8083/xxxx.0/Dateiname.mp3</url><service>service text</service><reason>reason text</reason><message>message text</message><volume>Wert_aus_DP</volume></play_info>" http://192.168.99.24:8090/speaker

            Quasi so, nur dass da vermutlich noch einiges zwischen muss....
            Screenshot_20240623_140358_Chrome.jpg

            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by mickym
            #17

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

            http://192.168.99.33:8083/xxxx.0/Dateiname.mp3<

            Ja das ist alles kein Problem, aber ich sehe das als Problem: http://192.168.99.33:8083/xxxx.0/Dateiname.mp3

            Kannst Du den da auch einfach einen lokalen Pfad mitgeben? Also einen lokalen Pfad wie ich Dir unten gezeigt habe?

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            David G.D 1 Reply Last reply
            0
            • mickymM mickym

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

              http://192.168.99.33:8083/xxxx.0/Dateiname.mp3<

              Ja das ist alles kein Problem, aber ich sehe das als Problem: http://192.168.99.33:8083/xxxx.0/Dateiname.mp3

              Kannst Du den da auch einfach einen lokalen Pfad mitgeben? Also einen lokalen Pfad wie ich Dir unten gezeigt habe?

              David G.D Online
              David G.D Online
              David G.
              wrote on last edited by David G.
              #18

              @mickym

              Ja, das müsste mit dem Proxy Adapter gehen.
              Teste das jetzt/gleich mal.

              EDIT
              Ist eingerichtet.
              Komme jetzt über http://192.168.99.33:8083/proxy.0/nodetts/ auf alle generierten mp3s.

              Dann muss man den Pfad entfernen und nur den Dateinamen nehmen.

              Screenshot_20240623_142453_Chrome.jpg

              Zeigt eure Lovelace-Visualisierung klick
              (Auch ideal um sich Anregungen zu holen)

              Meine Tabellen für eure Visualisierung klick

              mickymM 2 Replies Last reply
              0
              • David G.D David G.

                @mickym

                Ja, das müsste mit dem Proxy Adapter gehen.
                Teste das jetzt/gleich mal.

                EDIT
                Ist eingerichtet.
                Komme jetzt über http://192.168.99.33:8083/proxy.0/nodetts/ auf alle generierten mp3s.

                Dann muss man den Pfad entfernen und nur den Dateinamen nehmen.

                Screenshot_20240623_142453_Chrome.jpg

                mickymM Online
                mickymM Online
                mickym
                Most Active
                wrote on last edited by
                #19

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

                @mickym

                Ja, das müsste mit dem Proxy Adapter gehen.
                Teste das jetzt/gleich mal.

                So ich habe dann mal den Flow fertiggemacht - ggf. musst Du halt die Pfade noch anpassen - musst halt sagen, wenn Du da noch Hilfe brauchst.

                Momentan sieht Dein Befehl halt so aus mit dem lokalen Pfad:

                curl -d \ "<play_info><app_key>xxxxxxx</app_key><url>/home/iobroker/tts/sonospollyttsstorage/ttsfiles/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
                

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                1 Reply Last reply
                0
                • David G.D David G.

                  @mickym

                  Ja, das müsste mit dem Proxy Adapter gehen.
                  Teste das jetzt/gleich mal.

                  EDIT
                  Ist eingerichtet.
                  Komme jetzt über http://192.168.99.33:8083/proxy.0/nodetts/ auf alle generierten mp3s.

                  Dann muss man den Pfad entfernen und nur den Dateinamen nehmen.

                  Screenshot_20240623_142453_Chrome.jpg

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  wrote on last edited by
                  #20

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

                  Dann muss man den Pfad entfernen und nur den Dateinamen nehmen.

                  Ah Ok - dann passe ich das noch kurz an

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  David G.D 1 Reply Last reply
                  0
                  • mickymM mickym

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

                    Dann muss man den Pfad entfernen und nur den Dateinamen nehmen.

                    Ah Ok - dann passe ich das noch kurz an

                    David G.D Online
                    David G.D Online
                    David G.
                    wrote on last edited by David G.
                    #21

                    @mickym

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

                    Ps
                    Ich liebe den Proxy Adapter.
                    Habe ich schon oft genutzt.
                    Glaube der ist viel zu unbekannt ^^.

                    Zeigt eure Lovelace-Visualisierung klick
                    (Auch ideal um sich Anregungen zu holen)

                    Meine Tabellen für eure Visualisierung klick

                    mickymM 1 Reply Last reply
                    0
                    • David G.D David G.

                      @mickym

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

                      Ps
                      Ich liebe den Proxy Adapter.
                      Habe ich schon oft genutzt.
                      Glaube der ist viel zu unbekannt ^^.

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      wrote on last edited by mickym
                      #22

                      @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

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      David G.D 1 Reply Last reply
                      0
                      • mickymM 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.D Online
                        David G.D Online
                        David G.
                        wrote on last edited by
                        #23

                        @mickym

                        Vielen lieben Dank
                        Teste sobald der Export da ist.

                        Falls die Schwiegereltern nicht wieder zu früh kommen 🤣

                        Zeigt eure Lovelace-Visualisierung klick
                        (Auch ideal um sich Anregungen zu holen)

                        Meine Tabellen für eure Visualisierung klick

                        mickymM 1 Reply Last reply
                        0
                        • David G.D David G.

                          @mickym

                          Vielen lieben Dank
                          Teste sobald der Export da ist.

                          Falls die Schwiegereltern nicht wieder zu früh kommen 🤣

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          wrote on last edited by mickym
                          #24

                          @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?

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          David G.D 1 Reply Last reply
                          0
                          • mickymM 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.D Online
                            David G.D Online
                            David G.
                            wrote on last edited by
                            #25

                            @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?

                            Zeigt eure Lovelace-Visualisierung klick
                            (Auch ideal um sich Anregungen zu holen)

                            Meine Tabellen für eure Visualisierung klick

                            mickymM 1 Reply Last reply
                            0
                            • David G.D David G.

                              @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?

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              wrote on last edited by
                              #26

                              @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?

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              David G.D 1 Reply Last reply
                              0
                              • mickymM mickym

                                @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.D Online
                                David G.D Online
                                David G.
                                wrote on last edited by
                                #27

                                @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.

                                Zeigt eure Lovelace-Visualisierung klick
                                (Auch ideal um sich Anregungen zu holen)

                                Meine Tabellen für eure Visualisierung klick

                                mickymM 1 Reply Last reply
                                0
                                • David G.D David G.

                                  @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.

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  wrote on last edited by
                                  #28

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

                                  Hab das jetzt erfolgreich mit der template Node umgesetzt.

                                  ok

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  David G.D 1 Reply Last reply
                                  0
                                  • mickymM mickym

                                    @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.D Online
                                    David G.D Online
                                    David G.
                                    wrote on last edited by David G.
                                    #29

                                    @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.

                                    Zeigt eure Lovelace-Visualisierung klick
                                    (Auch ideal um sich Anregungen zu holen)

                                    Meine Tabellen für eure Visualisierung klick

                                    mickymM 1 Reply Last reply
                                    0
                                    • David G.D 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.

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      wrote on last edited by mickym
                                      #30

                                      @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.

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      1 Reply Last reply
                                      0
                                      • FeuersturmF Offline
                                        FeuersturmF Offline
                                        Feuersturm
                                        wrote on last edited by
                                        #31

                                        @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.

                                        surfer09S 1 Reply Last reply
                                        0
                                        • FeuersturmF Feuersturm

                                          @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.

                                          surfer09S Offline
                                          surfer09S Offline
                                          surfer09
                                          wrote on last edited by
                                          #32

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

                                          IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.7, Node 22.22.2 js-controller 7.0.7

                                          FeuersturmF 1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          583

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe