Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Alexa Lautstärkesteuerung via Blockly sehr unzuverlässig

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alexa Lautstärkesteuerung via Blockly sehr unzuverlässig

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

      @bananajoe
      Welche Echos nutzt Du denn?

      BananaJoe 1 Reply Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active @padrino last edited by

        @padrino
        1 x Echo 2. Generation
        5 x Echo Dot 2. Generation
        3 x Echo Dot 1. Generation

        Funktioniert bei allen. Auch nach Reload der Admin Oberfläche:

        alexa2.0.Echo-Devices.XXXXXXXXXXXXXXXXPlayer.volume
        

        ist jeweils der Pfad.
        Hab ein GIF davon gebaut als Demo, ist leider zu groß

        padrino 1 Reply Last reply Reply Quote 0
        • padrino
          padrino Most Active @BananaJoe last edited by

          @bananajoe
          Hm, sehr mysteriös...
          Wir könnten mal @apollon77 zu seiner Meinung fragen, dann müssen wir sicher debug logs zeigen. 🥰

          BananaJoe 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @padrino last edited by

            @padrino Man kann sogar in der Alexa-App auf die Stelle genau die Lautstärke einstellen.
            In der App (oder in VIS wenn ich Bar-Regler nutze) verspringt er manchmal um 1 oder 2 Punkte, wenn.man Hartnäckig ist klappt es doch. Direktes setzen des Datenpunktes klappt immer.
            Und es komisch das du bei dir die Ansicht aktualisieren musst - der Rückgabewert von Amazon sollte live zu sehen sein (wie bei allen Datenpunkten).

            An den Geräten oder per Sprachsteuerung sind es 10er Schritte, per Fernbedienung vermutlich auch.

            So wie ich diverse andere Beiträge hier in Erinnerung haben kann ich mich nicht entsinnen schon mal davon gehört zu haben.

            Sicher das nicht z.B. ein Skript mitläuft? Nutze ich z.B. umd die Lautstärke von Echos im Verhältnis zueinander zu halten (WoZi muss z.B. immer 10 Punkte lauter als Küche sein)

            Sonst mach doch ein eigenes Thema dazu auf, zu dieser Frage hier gehört es nicht.

            padrino 1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 last edited by

              Das Problem ist sehr einfach: Zu viel und zu schnell.
              Amazon hat "rate Limits" definiert - bedeutet das nur eine definierte Anzahl an Kommandos in einer bestimmten Zeit durch gehen ... sonst gibt es einen Fehler.

              Du sendest 11 Kommandos quasi zur gleichen zeit raus ... das ist zuviel. Versuch mal ob Dir gruppen helfen.

              N 1 Reply Last reply Reply Quote 1
              • padrino
                padrino Most Active @BananaJoe last edited by padrino

                @bananajoe
                Ja, das mit der App weiß ich, das selbe kann man ja auch in Routinen einstellen.
                In der App im "alten" Design (bis vor kurzem) blieb der Wert optisch auch wie eingestellt, im "neuen" Design sieht man den Slider von alleine auf den runden Wert hüpfen (Android).
                Nein, habe kein Skript laufen, habe jetzt sogar zum Test extra die komplette JavaScript Instanz angehalten.

                @apollon77
                Wo Du grad mitliest
                a) magst Du den "OT" Teil absplitten?
                b) gibt es ein offizielles Limit in Zahlen?

                apollon77 1 Reply Last reply Reply Quote 0
                • A
                  Ahnungsbefreit @n3ucr0n last edited by

                  @n3ucr0n Ich würde statt der vielen Datenpunkte mit Listen arbeiten: 1 Liste mit den zu steuernden Alexa-DPs, je eine mit der Lautstärke für laut/leise/nachts. Dann kannst Du in einer Schleife über die Liste iterieren und die Verzögerung gleich mit hoch zählen. Das wäre deutlich kompakter und einfacher zu ändern...

                  N 1 Reply Last reply Reply Quote 0
                  • dslraser
                    dslraser Forum Testing Most Active @n3ucr0n last edited by

                    @n3ucr0n sagte in Alexa Lautstärkesteuerung via Blockly sehr unzuverlässig:

                    @padrino

                    Das hier ist einer der DP:

                    {
                      "_id": "0_userdata.0.Lautstärke.Esszimmer_Laut",
                      "type": "state",
                      "common": {
                        "name": "Esszimmer Laut",
                        "role": "",
                        "type": "number",
                        "min": 0,
                        "max": 100,
                        "read": true,
                        "write": true
                      },
                      "native": {},
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1604914774298,
                      "acl": {
                        "object": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator",
                        "state": 1636
                      }
                    }
                    

                    Beschrieben habe ich die Datenpunkte händisch. Aktuell werden die auch nicht gesteuert bzw. verändert sondern sind starr.

                    mach mal eine passende role rein.
                    z.B.
                    "role": "level.volume",

                    1 Reply Last reply Reply Quote 1
                    • N
                      n3ucr0n @Ahnungsbefreit last edited by

                      @ahnungsbefreit
                      Hast Du ein (einfaches) Beispiel für mich, an dem ich mir den Gedanken mal näher führen kann?

                      @dslraser
                      Gute Idee! Werde ich testen! Das Thema mit der Verzögerung hat leider noch keinen Erfolg gebracht. Die Theorie dahinter leuchtet mir ein, daher werde ich die Verzögerung auch drin lassen, aber es werden noch immer die Lautstärken unzuverlässig geschaltet. Die Idee mit der Rolle wird heute noch umgesetzt.

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

                        @padrino sagte in Alexa Lautstärkesteuerung via Blockly sehr unzuverlässig:

                        b) gibt es ein offizielles Limit in Zahlen?

                        Nicht wirklich ... experimentieren

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

                          @apollon77 said in Alexa Lautstärkesteuerung via Blockly sehr unzuverlässig:

                          Das Problem ist sehr einfach: Zu viel und zu schnell.
                          Amazon hat "rate Limits" definiert - bedeutet das nur eine definierte Anzahl an Kommandos in einer bestimmten Zeit durch gehen ... sonst gibt es einen Fehler.

                          Du sendest 11 Kommandos quasi zur gleichen zeit raus ... das ist zuviel. Versuch mal ob Dir gruppen helfen.

                          Oh hatte Deinen Beitrag oben überlesen, bitte entschuldigung.

                          Funktioniert der Workaround mit dem Setzen von Verzögerunden (jeder Block 1 Sekunde nach dem Vorherigen) oder ist das nicht zielführend?

                          Den Tipp mit den Gruppen werde ich testen.

                          1 Reply Last reply Reply Quote 0
                          • A
                            Ahnungsbefreit @n3ucr0n last edited by

                            @n3ucr0n Ungetestet und nur ein Teil der Logik aus Deinem Script, sollte aber reichen, um das Prinzip zu verdeutlichen:
                            ee2f83fe-09c1-4e10-903d-65f419b91168-image.png

                            Wenn Du dann noch Gruppen verwendest, um alle Echos, die gleich gesteuert werden, zusammenzufassen, wird das sehr übersichtlich...

                            BananaJoe 1 Reply Last reply Reply Quote 0
                            • BananaJoe
                              BananaJoe Most Active @Ahnungsbefreit last edited by

                              @ahnungsbefreit

                              Ich meine das Skript ist so nicht richtig. Er wird die beiden Echos setzen und bei jedem das delay warten.

                              Wenn er in der Liste 10 Stück hat wir der die Befehle für die 10 hintereinander abfeuern , die werden den Delay warten dann aber trotzdem alle quasi zu gleichen zeit ausgeführt. Denn das Skript warten bei einem Delay nicht auf diesen sondern macht sofort weiter, der Schreibe Befehl macht das warten dann im Hintergrund.
                              Ich nehme deshalb "pause" um die Zeit zwischen 2 Zugriffen zu bremsen

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                Ahnungsbefreit @BananaJoe last edited by Ahnungsbefreit

                                @bananajoe Ich denke, da liegst Du falsch. Genau für solche Zwecke gibt es den Parameter "Verzögerung in ms" . Damit wird der Wert eben genau nach Ablauf der Verzögerung gesetzt.

                                "Pause" sollte man wirklich nur im absoluten Notfall verwenden, ich habe in allen meinen Scripten keine einzige Pause drin und es funktioniert.

                                BananaJoe 1 Reply Last reply Reply Quote 0
                                • BananaJoe
                                  BananaJoe Most Active @Ahnungsbefreit last edited by

                                  @ahnungsbefreit sagte in Alexa Lautstärkesteuerung via Blockly sehr unzuverlässig:

                                  @bananajoe Ich denke, da liegst Du falsch. Genau für solche Zwecke gibt es den Parameter "Verzögerung in ms" . Damit wird der Wert eben genau nach Ablauf der Verzögerung gesetzt.

                                  "Pause" sollte man wirklich nur im absoluten Notfall verwenden, ich habe in allen meinen Scripten keine einzige Pause drin und es funktioniert.

                                  Dann erkläre mir mal das:
                                  029b13fe-0ff8-4709-a5aa-44c5d1cd01cb-image.png
                                  bc903cc4-ee79-493d-b33e-c8a744c95d13-image.png :

                                  Delay.gif

                                  Die müssten dann ja im Abstand von 1 Sekunde an-- und ausgehen, und nicht alle auf einmal.

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    Ahnungsbefreit @BananaJoe last edited by

                                    @bananajoe Nein, denn Du hast ja überall 1000 ms Verzögerung drin. In meinem Script zähle in jedem Schleifendurchgang die Verzögerung um 500 ms hoch. Also

                                    1. mit 0 ms,
                                    2. mit 500 ms,
                                    3. mit 1000 ms und so weiter.
                                    BananaJoe 1 Reply Last reply Reply Quote 0
                                    • BananaJoe
                                      BananaJoe Most Active @Ahnungsbefreit last edited by

                                      @ahnungsbefreit jetzt habe ich deine Methode verstanden. In der Tat elegant, das Script ist schnell fertig und bereit für den nächsten Aufruf.

                                      Wäre jetzt interessant wie en Befehlen setStateDelayed und await wait die Verzögerung umgesetzt wurde um zu sehen was die Folgen/Unterschiede sind.
                                      Gibt es die Quellen dazu irgendwo? Mein erster Googleversuch war nicht erfolgreich

                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        Ahnungsbefreit @BananaJoe last edited by

                                        @bananajoe Guckst Du hier: (https://gist.github.com/AlCalzone/d14b854b69ce5e8a03718336cc650a95#)

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        802
                                        Online

                                        32.0k
                                        Users

                                        80.5k
                                        Topics

                                        1.3m
                                        Posts

                                        blockly
                                        7
                                        31
                                        1692
                                        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