Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Längenbegrenzung im Datenpunkt alexa2.0....Commands.speak ?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Längenbegrenzung im Datenpunkt alexa2.0....Commands.speak ?

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

      Hallo alle
      Wenn es vom DWD entsprechende Warnungen gibt dann setze ich den Status des o.g Datenpunkts auf den String (Beispiel):

      "Amtliche WARNUNG vor STARKEM GEWITTER. Es treten Gewitter auf. Dabei gibt es Sturmböen mit Geschwindigkeiten bis 70 k m h (20 Meter pro Sekunde , 38 Knoten , Beaufort 8) sowie Starkregen mit Niederschlagsmengen bis 25 Liter pro Quadratmeter pro Stunde und kleinkörnigen Hagel.."
      

      Das Problem ist: Das funktioniert nicht mehr (keine Ahnung seit wann nicht mehr). Auch wenn man den Datenpunkt manuell in den Objekten setzt wird der String nicht angenommen.
      Gibt es hier seit neuestem eine Längenbegrenzung?
      Oder woran kann das liegen?
      Und wenn: Wie bekomme ich so einen langen Text angesagt?

      Gruss Ralf

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

        @derrapf
        e511b4b8-63e6-4a50-a1f4-e5e0aafdfe79-image.png

        <speak> Amtliche WARNUNG vor STARKEM GEWITTER. Es treten Gewitter auf. Dabei gibt es Sturmböen mit Geschwindigkeiten bis 70 k m h (20 Meter pro Sekunde , 38 Knoten , Beaufort 8) sowie Starkregen mit Niederschlagsmengen bis 25 Liter pro Quadratmeter pro Stunde und kleinkörnigen Hagel. </speak>
        

        in den DP ssml:
        2723739b-333e-4d0d-bfe5-6823babbf3ba-image.png

        Dort ist die Grenze ~ 10000 Zeichen.

        D 1 Reply Last reply Reply Quote 0
        • D
          derrapf @MCU last edited by derrapf

          @mcu
          Den ssml Datenpukt verwende ich nicht.
          Bisher habe ich es so gemacht und das funktiniert auch (also ohne die xml-Tags)
          18d3c4e4-bc8d-46c6-817e-bac7823260a4-grafik.png
          Wenn ich den Text von oben versuche einzugeben, also so:
          396d3eb3-1ff4-478f-b6da-3e61d2d3b4b1-grafik.png
          Dann wird (wenn ich den String manuell wie oben eingebe) der Datenpunkt zwar beschrieben, aber der Echo-Dot bleibt still:
          3472e399-d7ae-41da-8ab4-62429ddee649-grafik.png
          Wenn ich den Datenpunkt über Java-Script setzen würde, dann würde gar nichts passieren und es steht weiterhin der erste Text (der mit der Waschmaschine) im Datenpunkt.
          Ich habe manuell auch mal versucht die xml-Tags mit einzubauen, aber gleiches Ergebnis.

          So ich habe mal rumexperimentiert.
          Der Datenpunkt ...command.speak kann scheinbar tatsächlich nur 255 Zeichen.
          Das war früher definitiv anders (ich verwende die aktuelle Alexa2 Version)
          @apollon77: Kann man das wieder ändern? Also den Datenpunkt von der Stringlänge her erweitern?
          Oder anders gefragt: Wie bekomme ich diese langen Texte durchgesagt?
          Ich könnte die zwar splitten, aber ich muss dann den Dot nacheinander mit den Textfragmenten ansteuern und weiss ja dann nicht wann er mit dem Ersten fertig ist. Es wird in keinem Fall einen Satz ohne Unterbrechung ergeben...

          Ich könnte jetzt alle Scripte auf ssml umstellen habe, aber keine Erfahrung mit dem Datenpunkt und laufe vielleicht in neue Probem. Ist DP identisch mit speak?
          Bzw. was macht der Anders? Wie kann ich hier die Lautstärke mitgeben?
          Gruss Ralf

          apollon77 M 2 Replies Last reply Reply Quote 0
          • apollon77
            apollon77 @derrapf last edited by

            @derrapf sagte in Längenbegrenzung im Datenpunkt alexa2.0....Commands.speak ?:

            @apollon77: Kann man das wieder ändern? Also den Datenpunkt von der Stringlänge her erweitern?

            Also ich zitiere mal aus der Adapter Readme:

            Detailed information Speak and Announcement: Type in here what you want Alexa to say. You can also adjust the volume of Alexa by giving a percentage before your text. Example: 10;Alexa is saying Alexa with 10% volume, while 100;Alexa is 100% volume. Normally you only can send 250 characters per speak command. By using the semicolon it is possible to write as much as you want, as long as you separate 250 characters with a semicolon. Alexa will then speak the text after each other with a small break. You also can use the volume together with more 255 blocks by writing #Volume;#Block1;#Block2, a.s.o A volume set here will be used over a defined speak-volume.

            Und das ist schon immer so. Frage damit beantwortet?

            D 1 Reply Last reply Reply Quote 2
            • M
              MCU @derrapf last edited by

              @derrapf ssml Volume mitgeben:

              // mögliche Werte
              // silent, x-soft, soft, medium, loud, x-loud
              <speak><prosody volume="loud">Test Nachricht</prosody></speak>
              
              1 Reply Last reply Reply Quote 0
              • D
                derrapf @apollon77 last edited by

                @apollon77 sagte in Längenbegrenzung im Datenpunkt alexa2.0....Commands.speak ?:

                Und das ist schon immer so. Frage damit beantwortet?

                Im Grunde ja. Nur frage ich mich warum das früher ohne die Semikolons geklappt hat. Der Adapter hat ja jahrelang die DWD Nachrichten an den Echo-dot geschickt und der hat diese riesigen Texte auch brav vorgelesen. Irgend wann mal hat das dann aufgehört.
                Da komme ich natürlich nicht auf die Idee die Syntax des zu sprechenden Textes zu hinterfragen.
                Aber Ok.
                Ich versuch dann mal die Scripte umzustellen und diese Blöcke zu generieren.
                Danke
                Gruss Ralf

                apollon77 1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 @derrapf last edited by

                  @derrapf Das kann ich Dir gerade nicht sagen.

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    derrapf @apollon77 last edited by

                    @apollon77
                    Funktioniert.
                    By the way: Hab mal versuchsweise die Funktion zum Splitten des Texts und einbauen der Semikolons von ChatGPT machen lassen. Was soll ich sagen: Das hat auf Anhieb funktioniert. Spooky das Ding.

                    Gruss Ralf

                    D 1 Reply Last reply Reply Quote 1
                    • D
                      derrapf @derrapf last edited by

                      @derrapf Auch an @MCU danke für die Tipps

                      1 Reply Last reply Reply Quote 2
                      • M
                        MCU last edited by MCU

                        @derrapf Stellst du dann auch bitte das Script rein von ChatGPT, damit andere es nutzen können. Danke.

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          derrapf @MCU last edited by

                          @mcu Gerne hier ist es

                          function prepareTextforAlexa(text) {
                            if (typeof text !== 'string') {
                              throw new Error('Input must be a string.');
                            }
                            const maxLength = 250;
                            const words = text.match(/\S+/g);
                          
                            let combinedText = '';
                            let currentPart = '';
                          
                            for (let i = 0; i < words.length; i++) {
                              const word = words[i];
                              if ((currentPart.length + word.length + 1) <= maxLength) {
                                currentPart += word + ' ';
                              } else {
                                combinedText += currentPart.trim() + '; ';
                                currentPart = word + ' ';
                              }
                            }
                          
                            combinedText += currentPart.trim();
                           return combinedText;
                          }
                          

                          Gruss Ralf

                          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

                          946
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          alexa.2
                          3
                          11
                          496
                          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