Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Brauche Starthilfe mit Sonos und SayIt

    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

    Brauche Starthilfe mit Sonos und SayIt

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

      Servus zusammen!

      Ich habe die Tage ioBroker entdeckt. Direkt auf der Synology installiert und den sonos und sayit Adapter eingerichtet. Toll wie das alles funktioniert!!!

      Im Tab Skripte habe ich dann folgendes geschrieben:

      var idSonos = "sonos.0.root.192_168_10_24";
      var idSayIt = "sayit.0.tts.text";
      var curVol = getState(idSonos + ".volume").val;
      var curTitle = getState(idSonos + ".current_title").val;
      setState(idSayIt, "Ding Dong" );
      

      Wenn ich das Skript starte höre ich den Ankündigungs-Ton und meine aktuelle Playlist startet. Drücke ich dann in der Sonos-App auf Pause kommt die Sprachausgabe mit "Ding Dong". Das passiert dreimal beim Pause/Start drücken und dann ist alles wieder normal.

      Was tut er da nur!?

      VG Tristan

      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        Hi und willkommen,

        Freut mich zu hören das dir das System soweit Freude bereitet 🙂

        Ist die dein komplettes Script ? Ich sehe keinen trigger eventuell wird da was doppelt aufgerufen ?

        Verzonden vanaf mijn iPad met Tapatalk

        1 Reply Last reply Reply Quote 0
        • T
          tristan last edited by

          Hi Dutchmann,

          vielen Dank für Dein schnelles Feedback.

          Habe es in eine for-Schleife gesetzt:

          for (var i = 0; i < 1 ;i++){
              var idSonos = "sonos.0.root.192_168_10_25";
              var idSayIt = "sayit.0.tts.text";
              var curVol = getState(idSonos + ".volume").val;
              var curTitle = getState(idSonos + ".current_title").val;
              setState(idSonos + ".volume", 10);
              setState(idSayIt, "Ding Dong" );
          }
          

          Das ändert aber nichts am Verhalten. Was mich so wunder ist, dass der Pause-Button in der Sonos App so einen Quatsch macht. Als ob ein Script den Button überwachen würde und dann etwas tut. Aber es gibt keines außer s.o.

          Läuft mein Script eigentlich nonstop im Loop? Dann müsste die Sonos ja ununterbrochen sprechen…?

          VG!

          1 Reply Last reply Reply Quote 0
          • Dutchman
            Dutchman Developer Most Active Administrators last edited by

            @tristan:

            Läuft mein Script eigentlich nonstop im Loop? Dann müsste die Sonos ja ununterbrochen sprechen…?

            VG! `

            Eigentlich nicht darum auch meine Frage ob dies das komplette Script ist ich sehe keinen Trigger (oder bin wohl blind)

            ~Dutch

            –-----------------------

            Send from mobile device

            Das schöne ios hat Auto Korrektur zum k****

            Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

            1 Reply Last reply Reply Quote 0
            • T
              tristan last edited by

              Achso, ja, das ist mein komplettes einzigstes Script. Ich drücke auf den Playbutton und erwarte, dass es dann einmal durchläuft…

              Womit kann ich denn ohne Hardware am einfachsten einen Trigger simulieren? Ein VIS anlegen mit einem Button?

              1 Reply Last reply Reply Quote 0
              • Dutchman
                Dutchman Developer Most Active Administrators last edited by

                @tristan:

                Achso, ja, das ist mein komplettes einzigstes Script. Ich drücke auf den Playbutton und erwarte, dass es dann einmal durchläuft…

                Womit kann ich denn ohne Hardware am einfachsten einen Trigger simulieren? Ein VIS anlegen mit einem Button? `

                Lege ein object an mit createState() und benutze dieses als Trigger 😉

                Script hast du nicht in dem global Ordner gespeichert hoffe ich ?

                –-----------------------

                Send from mobile device

                Das schöne ios hat Auto Korrektur zum k****

                Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                1 Reply Last reply Reply Quote 0
                • T
                  tristan last edited by

                  Ok, so langsam wirds. Wall Plug und z-wave Stick sind angekommen und laufen.

                  Ich habe jetzt folgendes Script, das alle 60 Sek prüft, ob die Waschmaschine noch Strom braucht. Und wenn nein, dann kommt eine Ansage über Sonos.

                  Funktioniert soweit!!! Vielen Dank also schonmal!

                  function myScript() {  
                      if(getState("zwave.0.NODE2.SENSOR_MULTILEVEL.Power_1").val < 0.8){
                          var idSonos = "sonos.0.root.192_168_10_25";
                          var idSayIt = "sayit.0.tts.text";
                          setState(idSayIt, "Waschmaschine ist fertig" );        
                      }else{
                          console.log("Es wird noch Strom verbraucht.");
                      }
                  } 
                  schedule("* * * * *", myScript);  
                  

                  Die Ansage kommt natürlich alle 60 Sekunden, bis ich die Waschmaschine wieder anmache. Ich muss also die Zustände speichern und verwalten und Logik rein stecken… Das gibts doch bestimmt schon fertig, oder? 😄

                  1 Reply Last reply Reply Quote 0
                  • P
                    pix last edited by

                    Hallo Tristan,

                    du solltest dich von der Überwachung auf Zeitbasis verabschieden. Das ist gar nicht nötig. Dein zwave Sensor liefert an ioBroker und ioBroker merkt selbst, wenn der Wert sich ändert.

                    Daher überwache den Datenpunkt auf Änderungen.

                    const idQuelle = "zwave.0.NODE2.SENSOR_MULTILEVEL.Power_1";
                    const idSonos = "sonos.0.root.192_168_10_25";
                    const idSayIt = "sayit.0.tts.text";
                    
                    on(idQuelle, function (obj) { // zwave wird auf Änderung überwacht (Kurzschreibweise)
                       // Abfrage, ob aktueller Wert unter 0.8 und letzter ankommender Wert über 0.8 
                       // -> dadurch nur einmal Benachrichtigung
                       if (obj.state.val < 0.8 && obj.oldState.val => 0.8) { 
                           setState(idSayIt, "Waschmaschine ist fertig" ); // Ansage
                           log("Waschmaschine fertig"); // Log
                       }
                    });
                    
                    

                    Wenn deine Waschmaschine tatsächlich nur einmal zum Ende weniger als 0.8 Einheiten verbraucht, dann geht das so. Du kannst sonst den OldState-Wert auch höher setzen, das musst aus dem Diagramm (History-Adapter?) mal ablesen.

                    Gruß

                    Pix

                    1 Reply Last reply Reply Quote 0
                    • T
                      tristan last edited by

                      Sehr geil, jetzt hab ich das auch kapiert! 🙂

                      Vielen Dank für den Hinweis!!

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      552
                      Online

                      31.9k
                      Users

                      80.2k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      1281
                      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