NEWS
[gelöst] Aus Skript ein weiteres Skript starten
-
Hallo,
kannst du etwas genauer werden? Im Javascript-Adapter sind die Skripte an sich ja keine Programme, wie in der HM-Webui. Du kannst ja theoretisch alle Logik in ein einziges riesiges und unübersichtliches Skript packen. Es sind also nur übersichtliche Einzelteile der Logik, die sich nicht separat starten lassen. Wenn ein bestimmter Teil eines Skriptes von mehreren Stellen ausgelöst werden soll, dann macht es Sinn, ihn in eine Funktion zu packen. Wenn die Funktion dann von mehreren Skripten aus gestartet werden soll, kannst du sie entweder zB oben in jedes dieser Skripte kopieren oder gleich in ein neues, globales Skript packen.
Ich mache das so zB mit den Sayit-Ansagen.
! ````
/* global sayit
Skript setzt Sayit Objekt
und schaltet dafür das iPad zur Tonausgabe mit ipad_schalten(zustand, meldung) ein.
! 18.07.2015 erstellt von Pix
03.08.2015 Verzögerung auf 3s
22.09.2015 Abfrage, ob iPad ein oder aus, Verzögerung auf 4s, wenn aus
*/
! // Sayit
function sayit(ansage) {
var idStatusanzeige = "hm-rpc.0.MEQ1234567.1.STATE"/Stromlose Statusanzeige Flur:1.STATE/,
statusanzeige = getState(idStatusanzeige).val;
var lastSay = null;
if (statusanzeige) {
if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
lastSay = (new Date()).getTime();
setState("sayit.0.tts.text"/Text to speech/, ansage);
}
} else {
ipad_schalten(1, "Wandtablet Flur wegen Sprachmeldung eingeschaltet"); // ipad_schalten ist auch eine globale Funktion
setTimeout(function () {
if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
lastSay = (new Date()).getTime();
setState("sayit.0.tts.text"/Text to speech/, ansage);
}
}, 4000); // 4s Verzögerung damit iPad anschalten kann
}
}In den Skripts, die eine Ansage produzieren nutze ich dann nur den Aufruf sayit('anzusagender text'); Gruß Pix -
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden