Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Trigger gesucht

    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

    Trigger gesucht

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

      Ich will in einer Alexa Routine einen "Schalter" einbauen der alle Sonos Geräte sofern sie denn laufen ausschaltet.

      Dazu habe ich einen Datenpunkt angelegt "Alle_Sonos_stoppen". Diesen will ich per Alexa einschalten auf true

      Dadurch soll das Script laufen und die Sonos Lautsprecher ausschalten die an sind. Leider scheiter am Trigger. Folgendes klapppt nicht:

      function func_Sonos_Stop() {
      
      //var id_Sonos_Play_Schlafzimmer = "sonos.0.root.192_168_178_47.state";
      //var id_Sonos_Play_Kueche = "sonos.0.root.192_168_178_48.state";
      //var id_Sonos_Play_Wohnzimmer = "sonos.0.root.192_168_178_35.state";
      
      if(getState("sonos.0.root.192_168_178_35.state").val != 'stop'){setState("sonos.0.root.192_168_178_35.state", 'stop');} //Wohnzimmer  
      if(getState("sonos.0.root.192_168_178_47.state").val != 'stop'){setState("sonos.0.root.192_168_178_47.state", 'stop');} //Schlafzimmer  
      if(getState("sonos.0.root.192_168_178_48.state").val != 'stop'){setState("sonos.0.root.192_168_178_48.state", 'stop');} //Küche  
      // Schalter wieder auf aus schalten
      setState("Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, false);       
      }
      
      //bei Aufruf des Scriptes
      //func_Sonos_Stop();
      
      //Änderung auf true
      on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true, ack: true}, func_Sonos_Stop()); 
      //on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, change:"any"}, func_Sonos_Stop());
      

      Verwender ich stattdessen das auskommentierte on erscheinen drei WARN im LOG State "undefined" not found. Was ich auch nicht so ganz verstehe. Führe ich das Script aus mit auskommentierten on-Trigger und stattdessen einfach so. Funktioniert das Script und ohne Fehler im Log…

      Wichtig wäre halt das das Script nur reagiert wenn der Schalter auf true gestellt wird, da das Script im Anschluß die Variable wieder auf false stellt.

      Aus der Doku werde ich diesmal leider nicht so richtig schlau...

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @cash:

        on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true, ack: true}, func_Sonos_Stop());
        ```` `  
        

        –>

        on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true, ack: true}, func_Sonos_Stop);
        
        1 Reply Last reply Reply Quote 0
        • cash
          cash Most Active last edited by

          das funktioniert leider nicht. Egal ob ich Alle_Sonos_stoppen über Alexa auf true setze oder direkt über den Reiter Objekte in der Admi passiert nichts

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

            on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true}, function (data) {
               if(getState("sonos.0.root.192_168_178_35.state").val != 'stop'){setState("sonos.0.root.192_168_178_35.state", 'stop');} //Wohnzimmer  
            if(getState("sonos.0.root.192_168_178_47.state").val != 'stop'){setState("sonos.0.root.192_168_178_47.state", 'stop');} //Schlafzimmer  
            if(getState("sonos.0.root.192_168_178_48.state").val != 'stop'){setState("sonos.0.root.192_168_178_48.state", 'stop');} //Küche  
            // Schalter wieder auf aus schalten
            setState("Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, false); 
            });
            

            das funktioniert jetzt??

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @cash:

              Egal ob ich Alle_Sonos_stoppen über Alexa auf true setze oder direkt über den Reiter Objekte in der Admi passiert nichts `
              Da auf ack: true getestet wird, muss "bestätigt" auch durch Alexa bzw. im Reiter "Objekte" auf true gesetzt werden.

              Wenn es mit der anonymen Funktion klappt, sollte auch das funktionieren:

              on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true}, func_Sonos_Stop);
              
              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              506
              Online

              31.7k
              Users

              79.8k
              Topics

              1.3m
              Posts

              2
              5
              592
              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