Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. (gelöst)Geräte in Aufzählung nur bei bestimmtem Zustand

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    (gelöst)Geräte in Aufzählung nur bei bestimmtem Zustand

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

      Guten Morgen.
      Ziel ist es zu bestimmten Uhrzeiten die Lautstärke meiner Echos zu überprüfen und wenn diese vom vorgegebenen Wert abweichen, anzupassen.
      ABER es soll nur auf den Devices wo KEINE Musik zu dem Zeitpunkt gespielt wird angeglichen werden:

      Screenshot 2022-05-02 065645.png

      In meinem Blockly gelingt das zwar ansatzweise aber den Datenpunkt "Musik läuft" würde ich wie beschrieben gerne ersetzen.
      Quasi: "Ändere das Volume nur auf den Devices mit currentState=false"

      Hoffe mir kann geholfen werden.

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @DJMarc75 last edited by liv-in-sky

        @djmarc75

        nachdem du weißt, wie der dp des volumes ist, musst du den dazu passenden dp für "currentState" finden

        volume: alexa2.0.Echo-Devices.Gxxxxxxxx20600W5.Player.volume
        currentState: alexa2.0.Echo-Devices.Gxxxxxxxx20600W5.Player.currentState

        du musst also nur den letzten teil "volume" mit currentState ersetzen

        das ginge z.b. mit einer kleinen eigenen function

        Image 046.png
        Image 044.png

        dann hast du die id für den currentState, die du abfrägst. du erstellst dir mit der function einen neue variable, die du dann nutzt
        das ganze musst du in dein blockly einbauen - in der schleife ein if, wenn der wert der neuen currentStateID ungleich true ......

        DJMarc75 1 Reply Last reply Reply Quote 0
        • DJMarc75
          DJMarc75 @liv-in-sky last edited by

          @liv-in-sky
          Erstmal vielen Dank für Deine Unterstützung.

          Habe jetzt mein Blockly mal angepasst:

          Screenshot 2022-05-02 142013.png

          Ich bekomme dann beim Start folgendes:

          Screenshot 2022-05-02 142034.png

          Wo ist mein Fehler ? Vll ist der oberste Block falsch gesetzt?

          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @DJMarc75 last edited by liv-in-sky

            @djmarc75

            du musst das erzeugen der variablen currentStateID in die schleife rein machen - das wird ja erst richtig gemacht, wenn pv erzeugt ist - gleich als erstes in der schleife - und vor dem if

            an der momentanen stelle gibt es kein pv beim start des scriptes 🙂

            EDIT - die schleife ist das grüne blockly (für jeden wert aus der liste)

            DJMarc75 1 Reply Last reply Reply Quote 0
            • DJMarc75
              DJMarc75 @liv-in-sky last edited by

              @liv-in-sky
              Same Problem

              Screenshot 2022-05-02 144349.png

              Es wird beim Triggern der obige Fehler angezeit... myId is not defined

              liv-in-sky 2 Replies Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @DJMarc75 last edited by

                @djmarc75 da ist dummerweise ein fehler im javascript code - die function muss so aussehen

                Image 047.png

                sorry

                1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @DJMarc75 last edited by

                  @djmarc75

                  oh mann, bin heut echt zerstreut - das muss so sein

                  return myID.replace("volume","currentState");
                  

                  currentState statt CurrentState

                  ich glaub, ich sollte heute keine scripte mehr machen 😞

                  DJMarc75 1 Reply Last reply Reply Quote 0
                  • DJMarc75
                    DJMarc75 @liv-in-sky last edited by

                    @liv-in-sky said in Geräte in Aufzählung nur bei bestimmtem "Zustand" steuern:

                    currentState statt CurrentState

                    Das hatte ich schon geändert.
                    Aber ich denke ich muss das ganze komplett umbauen denn jetzt funktioniert das ganze zwar aber es wird nur der Echo mit currentState true lautstärketechnisch verändert.

                    @liv-in-sky said in Geräte in Aufzählung nur bei bestimmtem "Zustand" steuern:

                    ich glaub, ich sollte heute keine scripte mehr machen

                    Ja, so gehts mir grad auch 😊

                    liv-in-sky 2 Replies Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @DJMarc75 last edited by

                      @djmarc75

                      du musst doch nur deine erste if bedingung wieder einfügen und die nei mit und dazufügen

                      wenn currentState ist falsch und wert von volume ist ungleich 30

                      dann soll was gemacht werden

                      oder verstehe ich was falsch

                      1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @DJMarc75 last edited by liv-in-sky

                        @djmarc75 also so

                        Image 048.png

                        oder:

                        Image 049.png

                        DJMarc75 1 Reply Last reply Reply Quote 0
                        • DJMarc75
                          DJMarc75 @liv-in-sky last edited by

                          @liv-in-sky

                          Screenshot 2022-05-02 151622.png

                          Habe mal die Variable in einen Datenpunkt geschrieben:

                          alexa2.0.Echo-Devices.G091Exxxx52709G6.Player.volume
                          

                          Hmmmm.... irgendwie scheint der Replace nicht so ganz zu klappen... und es steht nur ein Device drin.

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @DJMarc75 last edited by

                            @djmarc75

                            du musst den debug anstatt steueredp nehmen - dann siehst du im log, welche dp er findet - bei steuere einen dp wird das immer wieder überschrieben (wegen der schleife) und am ende steht ein wert drin

                            wobei natürlich der output ein alexa2.0.Echo-Devicesyyyyyyyyyy.Player.currentState sein sollte

                            machmal ein debug pv auch noch rein und poste das log - ich vermute, du frägst nicht den dp mit volume am ende ab

                            Image 050.png

                            DJMarc75 1 Reply Last reply Reply Quote 0
                            • DJMarc75
                              DJMarc75 @liv-in-sky last edited by

                              @liv-in-sky

                              	2022-05-02 15:39:00.105	error	script.js.common.Amazon.Echos.Lautstärke_nach_Zeit: alexa2.0.Echo-Devices.G090L91182xxxxxN.Player.volume
                              javascript.0
                              	2022-05-02 15:39:00.104	error	script.js.common.Amazon.Echos.Lautstärke_nach_Zeit: alexa2.0.Echo-Devices.G090L91182xxxxxN.Player.volume
                              

                              Habe an 3 Echos das Volume verändert, inklusive an dem was currentState auf true steht.
                              Alle 3 waren im LOG aufgeführt.

                              liv-in-sky 1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @DJMarc75 last edited by

                                @djmarc75

                                bei mir sieht das log so aus: habe mehrere echos

                                Image 051.png

                                mit diesem script

                                Image 052.png

                                DJMarc75 1 Reply Last reply Reply Quote 0
                                • DJMarc75
                                  DJMarc75 @liv-in-sky last edited by DJMarc75

                                  @liv-in-sky
                                  Sodele,
                                  ich habe das ganze jetzt andersrum gemacht, was ja auch mehr Sinn ergibt.
                                  Ich frage per Zeitplan alle "currentState" ab.
                                  Gleichzeitig wird die Variable "volume" gesetzt und zwar mit dem Wert von "currentState", allerdings wird dort dann "currentState" durch "volume" ersetzt. Somit haben wir auch alle Datenpunkte von "volume" abgefragt.

                                  Auf allen Devices, welche nichts aktiv abspielen ("currentState") und dort die Lautstärke NICHT meinem Wert entsprechen, wird dann dort das "volume" auf meinen Wert gesetzt.
                                  Schwere Geburt aber der Erfolg gibt einem Recht.

                                  Screenshot 2022-05-02 170145.png

                                  Screenshot 2022-05-02 170202.png

                                  Vielen Dank @liv-in-sky

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  820
                                  Online

                                  32.0k
                                  Users

                                  80.5k
                                  Topics

                                  1.3m
                                  Posts

                                  2
                                  15
                                  253
                                  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