NEWS


  • Servus zusammen,

    wie schaffe ich es den Sprachbefehl für 2 Alexas auszuführen ?

    Was mache ich im folgenden Script falsch ?

    var idSayIt     = "alexa2.0.Echo-Devices.G09********.Commands.speak";               
    var idSayIt     = "alexa2.0.Echo-Devices.G09********.Commands.speak"; 
    var idButton    = "hm-rega.0.950"; //Objekt
    var lastSay     = null;
    
    // Nach Schalten wird folgender Text gesprochen
    subscribe({id: idButton, val: true}, function (obj) {
             if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
                      lastSay = (new Date()).getTime();
                      setState (idSayIt, "Ab wesend");
             }
           
            });
    
    

    Grüße Timo


  • @kasperfunsurfer sagte:

    var idSayIt     = "alexa2.0.Echo-Devices.G09********.Commands.speak";               
    var idSayIt     = "alexa2.0.Echo-Devices.G09********.Commands.speak"; 
    

    Die Variable idSayIt ist zweimal deklariert. Ihr wird die zweite ID zugewiesen.


  • Hallo Paul,
    genau das ist mein Problem. Ich weiß nicht wie das Script aussehen muss um beide anzusteuern.

    var idSayIt     = "alexa2.0.Echo-Devices.G09********.Commands.speak";               
     
    var idButton    = "hm-rega.0.950"; //Objekt
    
    var lastSay     = null;
    
     
    
    // Nach Schalten wird folgender Text gesprochen
    
    subscribe({id: idButton, val: true}, function (obj) {
    
             if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
    
                      lastSay = (new Date()).getTime();
    
                      setState (idSayIt, "Ab wesend");
    
             }
    
           
    
            });
    
    

    So geht es für die eine oder andere aber beide zusammen was müsste man ändern ?


  • @kasperfunsurfer :

    beide zusammen was müsste man ändern ?

    Zwei unterschiedliche Bezeichner und zweimal setState().

    var idSayIt1    = "alexa2.0.Echo-Devices.G09********.Commands.speak";               
    var idSayIt2    = "alexa2.0.Echo-Devices.G09********.Commands.speak"; 
    
  • Developer Most Active

    var idSayIt1     = "alexa2.0.Echo-Devices.G09********.Commands.speak";               
    var idSayIt2    = "alexa2.0.Echo-Devices.G09********.Commands.speak"; 
    var idButton    = "hm-rega.0.950"; //Objekt
    var lastSay     = null;
    
    // Nach Schalten wird folgender Text gesprochen
     subscribe({id: idButton, val: true}, function (obj) {
             if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
                       lastSay = (new Date()).getTime();
                       setState (idSayIt1, "Ab wesend");
                       setState (idSayIt2, "Ab wesend");
              }
            });
    

  • Super klappt schönen Dank dafür.

    Eine frage hätte ich noch. Wie müsste man das Script ändern wenn man vorher noch eine Bedienung erfüllen muss um den Ton anzuschalten bzw. Freizugeben.
    Sprich erst hm-rega.0.951 an für Ton Ein. Dann erst Sprachausgabe.
    Hoffe ihr versteht was ich meine.

    var idSayIt1     = "alexa2.0.Echo-Devices.G09********.Commands.speak";               
    
    var idSayIt2    = "alexa2.0.Echo-Devices.G09********.Commands.speak"; 
    
    var idButton    = "hm-rega.0.950"; //Objekt
    
    var lastSay     = null;
    
     
    
    // Nach Schalten wird folgender Text gesprochen
    
     subscribe({id: idButton, val: true}, function (obj) {
    
             if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
    
                       lastSay = (new Date()).getTime();
    
                       setState (idSayIt1, "Ab wesend");
    
                       setState (idSayIt2, "Ab wesend");
    
              }
    
            });
    

    Grüße Timo


  • @kasperfunsurfer sagte:

    erst hm-rega.0.951 an für Ton Ein. Dann erst Sprachausgabe.

            setState(idTonEin, true); // hm-rega.0.951
            setTimeout(function() {           
                   setState (idSayIt1, "Ab wesend");
                   setState (idSayIt2, "Ab wesend");
            }, 1000); // 1 s Verzögerung
    

  • Hallo,

    so klappt es nicht der Ton wird immer ausgegeben. Anbei das Script.

    var idSayIt1     ="alexa2.0.Echo-Devices.G****.Commands.speak";               // Hier die entsprechende SayIt Text ID
    var idSayIt2     ="alexa2.0.Echo-Devices.G*****.Commands.speak"; 
    var idButton    = "hm-rega.0.950"; //Objekt
    var idTonEin    = "hm-rega.0.29614";
    var lastSay     = null;
    
    setState(idTonEin, true); 
    
            setTimeout(function() {           
    
                   setState (idSayIt1, "Ab wesend");
    
                   setState (idSayIt2, "Ab wesend");
    
            }, 1000); // 1 s Verzögerung
    
    
    
    
    // Nach Schalten wird folgender Text gesprochen
    subscribe({id: idButton, val: true}, function (obj) {
             if (!lastSay || ((new Date()).getTime() - lastSay) > 30000) {
                      lastSay = (new Date()).getTime();
                      setState (idSayIt1, "Ab wesend");
                      setState (idSayIt2, "Ab wesend");
                      }
    });
    code_text
    

    Ich möchte Quasi erst eine Tonausgabe haben sobald hm-rega.0.29614 und hm-rega.0.950 auf True sind. Vorher soll die Ausgabe unterdrückt sein. Also hm-rega.0.29614 auf false keine Tonausgabe mehr.
    Bin da leider zu doof für. 🙂


  • @kasperfunsurfer sagte:

    Also hm-rega.0.29614 auf false keine Tonausgabe mehr.

    Soll der Datenpunkt abgefragt werden oder soll er zu Beginn der Sprachausgabe auf false gesetzt werden ? Hier mit Setzen auf false:

    var idSayIt1    ="alexa2.0.Echo-Devices.G****.Commands.speak";   // Hier die entsprechende SayIt Text ID
    var idSayIt2    ="alexa2.0.Echo-Devices.G*****.Commands.speak"; 
    var idButton    = "hm-rega.0.950"; //Objekt
    var idTonEin    = "hm-rega.0.29614";
    var lastSay     = 0;
    
    subscribe({id: idButton, val: true}, function () {
        if (!lastSay || ((new Date()).getTime() - lastSay) > 30000) {
             lastSay = (new Date()).getTime();
             setState(idTonEin, true); 
             setTimeout(function() {
                   setState(idTonEin, false); // Ton wieder aus        
                   setState(idSayIt1, "Ab wesend");
                   setState(idSayIt2, "Ab wesend");
             }, 1000); // 1 s Verzögerung
        }
    });
    

  • @paul53 der Datenpunkt hm-rega.0.29614 soll abgefragt werden ob er auf true steht wenn ja soll die Sprachausgabe überhaupt möglich sein und wenn er auf false steht soll die Sprachausgabe nicht erfolgen.


  • @kasperfunsurfer
    Also so ?

    var idSayIt1    ="alexa2.0.Echo-Devices.G****.Commands.speak";   // Hier die entsprechende SayIt Text ID
    var idSayIt2    ="alexa2.0.Echo-Devices.G*****.Commands.speak"; 
    var idButton    = "hm-rega.0.950"; // Auslöser
    var idTonEin    = "hm-rega.0.29614"; // Freigabe
    var lastSay     = 0;
    
    subscribe({id: idButton, val: true}, function () {
        if(getState(idTonEin).val) {
            if (!lastSay || Date.now() - lastSay > 30000) {
                lastSay = Date.now();
                setState(idSayIt1, "Ab wesend");
                setState(idSayIt2, "Ab wesend");
            }
        }
    });
    

  • Sauber ganz genau so 👍 👍 👍


  • Jetzt noch ein frage aber dann haben wir es 🙂

    var idSayIt1    ="alexa2.0.Echo-Devices.G***.Commands.speak";   // Hier die entsprechende SayIt Text ID
    var idSayIt2    ="alexa2.0.Echo-Devices.G***.Commands.speak"; 
    var idButton    = "mihome.0.devices.sensor_motion_aq2_1**.state"; //Objekt
    var idTonEin    = "hm-rega.0.29614";
    var lastSay     = 0;
    
     
    
    subscribe({id: idButton, val: true}, function () {
    if(getState(idTonEin).val) {
    if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
    lastSay = (new Date()).getTime();
    setState(idSayIt1, "Bewegung an der Haustür");
    setState(idSayIt2, "Bewegung an der Haustür");
    }
    }
    });
    

    Was müsste ich machen um noch einen 2 Bewegungsmelder zu Integrieren ? Also ich meine wenn der oder der eine Bewegung erkennt ?


  • @kasperfunsurfer sagte:

    wenn der oder der eine Bewegung erkennt ?

    var idButton = ["mihome.0.usw..state","ID_des_zweiten_BWM"]; // Auslöser
    

  • Supi ich freu mich geht. Vielen Dank 👍 👍

Suggested Topics

1.1k
Online

37.0k
Users

42.7k
Topics

593.3k
Posts