NEWS
Sayit - Sprachrückmeldung
-
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.
-
Ich danke Dir.
Welchen Sinn hat das Zeitglied in dem Script?
-
Wenn Du innerhalb einer definierten Zeit mehrfach den Taster drückst (hier 300 Sek), so soll keine erneute Sprachausgabe gemacht werden.
-
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
-
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
-
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
-
hat keiner eine Idee.
-
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
-
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"); } } });
-
Vielen Dank, für Deine Hilfe.