Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Sayit - Sprachrückmeldung

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Sayit - Sprachrückmeldung

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

      Ohne das Zeitglied könnte die Funktion so aussehen:

      var idSayIt     = "sayit.0.tts.text";               // Hier die entsprechende SayIt Text ID
      var idButton    = "hm-rpc.0.NEQ1660467.2.STATE"; //Objekt
      
      // Nach Schalten wird folgender Text gesprochen
      subscribe({id: idButton, val: any}, function (obj) {
                        if (obj.state.val == true ) {
                             setState (idSayIt, "de;60;Esstisch - Licht An");
                        } else {
                             setState (idSayIt, "de;60;Esstisch - Licht Aus");
                        }
               }
      
      });
      
      

      Das Zeitglied kannst Du natürlich auch wieder einbauen.

      1 Reply Last reply Reply Quote 0
      • H
        Hicki last edited by

        Ich danke Dir.

        Welchen Sinn hat das Zeitglied in dem Script?

        1 Reply Last reply Reply Quote 0
        • G
          gst666 last edited by

          Wenn Du innerhalb einer definierten Zeit mehrfach den Taster drückst (hier 300 Sek), so soll keine erneute Sprachausgabe gemacht werden.

          1 Reply Last reply Reply Quote 0
          • H
            Hicki last edited by

            @gst666:

            Wenn Du innerhalb einer definierten Zeit mehrfach den Taster drückst (hier 300 Sek), so soll keine erneute Sprachausgabe gemacht werden. `

            Ahh, dass macht ja zum Teil Sinn.

            Ich danke Dir nochmals für Deine schnelle Hilfe.

            Gruß Andreas

            1 Reply Last reply Reply Quote 0
            • H
              Hicki last edited by

              Ich habe Dein Script gerade eingebaut.

              Funktioniert nicht. In der LOG bringt er diese Meldung:

              • 00:16:38.578 [info] javascript.0 Stop script script.js.common.Couchtisch_-_Licht_an_2(1)
              00:16:38.616 [info] javascript.0 Start javascript script.js.common.Couchtisch_-_Licht_an_2(1)
              
              00:16:38.618 [error] javascript.0 script.js.common.Couchtisch_-_Licht_an_2(1): ReferenceError: any is not defined at script.js.common.Couchtisch_-_Licht_an_2(1):5:31 
              

              Gruß Andreas

              1 Reply Last reply Reply Quote 0
              • H
                Hicki last edited by

                Ich habe das Problem selbst finden können. Hier das korrigierte Script:

                var idSayIt     = "sayit.0.tts.text";                                   // Hier die entsprechende SayIt Text ID
                var idButton    = "hm-rpc.0.NEQ1660467.1.STATE";                        // Objekt
                
                // Nach Schalten wird folgender Text gesprochen
                on(idButton, function (obj) {                                           // auf Änderung
                         if (obj.state.val === true ) {                                 // Licht an
                                  setState (idSayIt, "de;60;Couchtisch - Licht an");
                         } else if (obj.state.val === false ) {                         // Licht aus
                                  setState (idSayIt, "de;60;Couchtisch - Licht Aus");
                         }      
                });
                
                

                Wie baue ich das Zeit-Glied oben wieder ein?

                if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
                                  lastSay = (new Date()).getTime();
                
                

                Gruß Andreas

                1 Reply Last reply Reply Quote 0
                • H
                  Hicki last edited by

                  hat keiner eine Idee.

                  1 Reply Last reply Reply Quote 0
                  • H
                    Hicki last edited by

                    var idSayIt     = "sayit.0.tts.text";                                   // Hier die entsprechende SayIt Text ID
                    var idButton    = "hm-rpc.0.NEQ1660467.1.STATE";                        // Objekt
                    
                    // Nach Schalten wird folgender Text gesprochen
                    on(idButton, function (obj) {                                           // auf Änderung
                             if (obj.state.val === true ) {                                 // Licht an
                                      setState (idSayIt, "de;60;Couchtisch - Licht an");
                             } else if (obj.state.val === false ) {                         // Licht aus
                                      setState (idSayIt, "de;60;Couchtisch - Licht Aus");
                             }      
                    });
                    
                    

                    Wie baue ich das Zeit-Glied wieder ein?

                    Zeitglied:

                    if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
                                      lastSay = (new Date()).getTime();
                    
                    

                    Kann ich denn überhaut ein Zeitglied in das Script einbauen?

                    Gruß Andreas

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

                      var idSayIt     = "sayit.0.tts.text";                                   // Hier die entsprechende SayIt Text ID
                      var idButton    = "hm-rpc.0.NEQ1660467.1.STATE";                        // Objekt
                      var lastSay     = null;
                      
                      // Nach Schalten wird folgender Text gesprochen
                      on(idButton, function (obj) {                                           // auf Änderung
                          if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
                              lastSay = (new Date()).getTime();
                              if (obj.state.val === true ) {                                 // Licht an
                                  setState (idSayIt, "de;60;Couchtisch - Licht an");
                              } else if (obj.state.val === false ) {                         // Licht aus
                                  setState (idSayIt, "de;60;Couchtisch - Licht Aus");
                              }
                          }
                      });
                      
                      1 Reply Last reply Reply Quote 0
                      • H
                        Hicki last edited by

                        Vielen Dank, für Deine Hilfe.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        967
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        5
                        27
                        2894
                        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