Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Sonos Arc & Satelliten LS per Steckdose ein- und ausschalten

    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

    Sonos Arc & Satelliten LS per Steckdose ein- und ausschalten

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

      @skapi

      Zeig doch mal deinen Blockly Versuch/Ansatz. Ggf. noch welche Datenpunkte zur verfügung stehen, habe kein Sonos

      S 1 Reply Last reply Reply Quote 0
      • BBTown
        BBTown @skapi last edited by BBTown

        @skapi
        unabhängig davon ob dein Script schaltet, meinst Du dass Du mit der Lösung am Ende glücklich sein wirst?

        Ich hatte zunächst eine "Sonos Play 1" im Badezimmer über eine geschaltete Steckdose mit dem Licht gekoppelt. Allerdings dauert das Starten der "Sonos Play 1" derart lange, dass für mich das ganze sinnlos erschien ... es fing regelmäßig erst dann an zu dudeln, wenn ich schon wieder auf dem Weg aus dem Bad hinaus war. Nun lasse ich die "Play 1" im StandBy und die Musik spielt augenblicklich mit dem Betreten des Bades.

        Vielleicht - sofern noch nicht durchgespielt - probierst Du erst einmal aus, ob diese Verzögerung - wenn der Strom weg war - dich womöglich ebenso stört wies es bei mir der Fall war?!

        [Edit]
        Du könntest versuchen die Arc auch über folgende Datenpunkte abzufragen:
        play=true
        stop=false
        state=play
        state=stop
        volume>1

        Ich setze alle meine Sonos` zum Beispiel immer auf "Volume=1" wenn diese nicht spielen sollen, daher das letzte Beispiel mit "Volume>1".

        1 Reply Last reply Reply Quote 0
        • S
          skapi @Cinimod last edited by

          @cinimod
          anbei mein Versuch
          941e9bc5-e251-4b8c-a742-85848e2135d9-image.png

          on({id: "sonos.0.root.192_168_1_125.state_simple"/*Binary play/pause state*/, change: "ne"}, async function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (true) {
              setState("hue.0.Steckdose_Wohnzimmern.on"/*Steckdose Wohnzimmern.on*/, true);
            } else if (false) {
              setState("hue.0.Steckdose_Wohnzimmern.on"/*Steckdose Wohnzimmern.on*/, false);
            }
          });
          

          @BBTown
          Das mit dem Badezimmer kann ich nachvollziehen!
          Für die Satelliten LS ist es aus meiner Sicht ok wenn die etwas verspätet starten, da in erster Linie die Tonausgabe eh von der Arc kommt...

          Cinimod 1 Reply Last reply Reply Quote 0
          • Cinimod
            Cinimod Most Active @skapi last edited by Cinimod

            @skapi

            Dein Skript kann so nicht funktionieren.

            versuch es mal so:

            Bildschirmfoto 2021-11-30 um 21.50.13.png

            Den roten "Wert" Baustein findest du unter der Rubrik "Trigger" er wird aus dem hier umgewandelt.

            Bildschirmfoto 2021-11-30 um 21.46.14.png

            S 1 Reply Last reply Reply Quote 1
            • S
              skapi @Cinimod last edited by

              @cinimod
              Danke!! Das Script funktioniert!
              Was ich nur noch nicht versteht, woher weiße die schleife dass beim Wert "true" (Arc) die Steckdose auf "true" geschalten werden soll und nicht beim Arc Wert false?

              Wäre eine Negation des simple State der Sonos auch möglich?
              Also "if Sonos Arc simplestate ! true (not true); then .... (ich weis, false würde anstatt der negation gehen - nur aus Interesse)

              Danke!!

              Cinimod 1 Reply Last reply Reply Quote 0
              • Cinimod
                Cinimod Most Active @skapi last edited by Cinimod

                @skapi

                Mit dem WERT Block aus dem Trigger, benutzt du direkt den "Wert von Objekt ID" des Trigger Datenpunktes.

                Der blaue falls Block, braucht immer als Ergebnis ein WAHR um auszuführen.
                So wie du es vorher hattest geht es nicht, wenn du mal nicht den Trigger als Falls abfrage brauchst, dann machst es so, in der Therorie:

                Bildschirmfoto 2021-12-01 um 08.24.23.png

                Da du dir die abfrage auf Wahr allerdings sparen kannst, macht man es in der Praxis eher so:

                Bildschirmfoto 2021-12-01 um 08.31.20.png

                Und da bei True/False Datenpunkten ja nur entweder oder sein kann, sieht es so aus wie du es jetzt schon nachgebaut hast.

                (falls "wert von objekt ID" des trigger Datenpunktes WAHR, mache XY)
                ( und SONST (kann ja nur false sein) mache XX)

                Bildschirmfoto 2021-12-01 um 08.37.41.png

                Phu ... ganzen Roman ... hoffe ich hab es halbwegs verständlich erklärt.

                S 2 Replies Last reply Reply Quote 1
                • S
                  skapi @Cinimod last edited by

                  @cinimod
                  Wow! Danke!!
                  Das hilft mir beim verstehen mal definitiv weiter!

                  1 Reply Last reply Reply Quote 1
                  • S
                    skapi @Cinimod last edited by

                    @cinimod
                    Das ganze funktioniert wirklich super, jedoch müsste ich beim sonst nochmal etwas verfeinern. Ich hab das Problem dass mein lieber Sohnemann gerne mal auf die Play/Pause Taste drück und dadurch das ausschalten der Steckdose auslöst.

                    Ich habe den sonst teil mit einer Verzögerung von 5 Minuten eingestellt, jedoch ist das auch nicht praktikabel da der Status nicht mehr aktualisiert wird.

                    Was wäre denn der Richtige Ansatz dass beim "sonst" teil ein Wait von 5 Minuten vorkommt, danach der "simplestate" nochmal geprüft wird und danach wenn wahr mache, wenn false mache?

                    1 Reply Last reply Reply Quote 0
                    • Cinimod
                      Cinimod Most Active last edited by

                      @skapi

                      Du kannst dort einfach einen Timeout einfügen, das erst nach z.b. 2 Minuten Inaktivität die LS ausgeschaltet werden. Sollte sich der Datenpunkt innerhalb der 2 Minuten wieder ändern wird der Timeout angehalten

                      Bildschirmfoto 2021-12-04 um 19.37.33.png

                      1 Reply Last reply Reply Quote 1
                      • Homoran
                        Homoran Global Moderator Administrators last edited by Homoran

                        wenn der Trigger true/false liefert braucht es kein sonst, dann steuert man mit "wert"

                        EDIT:
                        mit dem Timeout ist das dann keine Einsparung mehr

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          skapi @Homoran last edited by

                          @homoran
                          ich kann dir leider nicht folgen...
                          @Cinimod
                          Vielen Dank!!

                          Cinimod Homoran 2 Replies Last reply Reply Quote 1
                          • Cinimod
                            Cinimod Most Active @skapi last edited by

                            @skapi

                            er meinte wenn der timeout jetzt nicht notwendig währe kann man einfach die LS direkt mit dem WERT von trigger ansteuern:

                            Bildschirmfoto 2021-12-04 um 21.35.54.png

                            Auch einzig dieser block währe möglich: WO zu beachten ist das Objekt2 immer das (nach-)macht was Objekt1 vorgibt (NICHT ANDERSRUM!)

                            Bildschirmfoto 2021-12-04 um 21.36.14.png

                            bei beiden Varianten kannst du keine Abschaltverzögerung einbauen.

                            1 Reply Last reply Reply Quote 2
                            • Homoran
                              Homoran Global Moderator Administrators @skapi last edited by Homoran

                              @skapi sagte in Sonos Arc & Satelliten LS per Steckdose ein- und ausschalten:

                              ich kann dir leider nicht folgen...

                              bin leider nicht mehr am PC.

                              wenn die Verzögerung beim Ausschalten nicht wäre und wenn der triggernde Datenpunkt einen bool'schen Wert (true/false) liefert reicht quasi eine Zeile innerhal des triggers.
                              Nämlich : steuere 2.ID mit Wert

                              noch rinfacher wäre nur noch die Konstruktion mit binde

                              Dann wird einfach bei true auch der zweite true, und bei false der zeite ebenfalls false.
                              Wenn du willst kann ich morgen ein Bild machen.

                              EDIT
                              Habe ich am Tablet jetzt >5Minuten gebrsucht?

                              S 1 Reply Last reply Reply Quote 0
                              • S
                                skapi @Homoran last edited by skapi

                                @homoran
                                Ahh, jetzt habe Ichs...
                                @Cinimod
                                Auch nochmal Danke für die Erklärung!

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  skapi @skapi last edited by

                                  Hallo,
                                  ich würde mal wieder ein wenig Hilfe benötigen da sich seit dem letzen Sonos update wieder was geändert hat...

                                  Ich weis nicht wieso aber ich tu mir mit der Blockly Logik echt schwer...
                                  Logik aktuell: wenn Objekt ID Simplestate = true, dann mache
                                  Folgende Logik würde noch benötigt werden: wenn Objekt ID Simplestate = true oder coordinator ist nicht 192_168_1_125, dann mache

                                  Würde mich freuen wenn mir hier jemand behilflich sein könnte!

                                  LG

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  691
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  16
                                  889
                                  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