NEWS
DWD -> per Telegram, Sound auf Tablet, View Tablet wechseln, etc.
-
Hallo,
habe mal für mich ein "DWD" Script geschrieben.
Das Script macht folgendes:
-
DWD Meldungen werden als Telegram verschickt.
-
Seite "DWD View" in VIS wird angezeigt.
-
Sound auf Tablet wird bei Änderung der Anzahl ausgegeben.
Nun das Script:
! ````
// DWD: Wetterwarnungen
! // Anzahl DWD geändert
function weiter() {
var anzahl = getState('javascript.0.Status.DWD_Anzahl').val; // Anzahl DWD
var Sprache = getState("hm-rega.0.29816").val; // Auto Sprachausgabe
var request = require ('request');
var vText = "";// Wetterwarnung an telegram versenden if (anzahl === 0) { sendTo('telegram', "Wetterwarnung Anzahl: 0"); } else if (anzahl >= 1) { vText = 'Wetterwarnung Anzahl: ' + anzahl + '\n';
! if (anzahl >= 1) {
vText = vText + "----------------------------------------------------------\n";
vText = vText + "1: " + getState("dwd.0.warning.headline").val + "\n";
vText = vText + getState("dwd.0.warning.description").val + "\n";
vText = vText + "von " + getState("dwd.0.warning.begin").val + " Uhr \n";
vText = vText + "bis " + getState("dwd.0.warning.end").val + " Uhr";
}
if (anzahl >= 2) {
for (x=2; x <= anzahl; x++) {
vText = vText + "\n----------------------------------------------------------\n";
vText = vText + x + ": " + getState("dwd.0.warning" + (x-1) + ".headline").val + "\n";
vText = vText + getState("dwd.0.warning" + (x-1) + ".description").val + "\n";
vText = vText + "von " + getState("dwd.0.warning" + (x-1) + ".begin").val + " Uhr \n";
vText = vText + "bis " + getState("dwd.0.warning" + (x-1) + ".end").val + " Uhr";
}
}
sendTo('telegram', vText);
}
! // Sprachausgabe
if (Sprache === true) {
if (anzahl === 0) {
request('http://192.168.243.76:50000/track=intercom-whistle.wav');
setTimeout(setState('sayit.0.tts.text', "Es liegt keine Unwetterwarnung mehr vor. Alles bestens"), 3000);
} else if (anzahl === 1){
request('http://192.168.243.76:50000/track=intercom-whistle.wav');
setTimeout(setState('sayit.0.tts.text', "Es liegt eine Unwetterwarnung vor."), 3000);
} else if (anzahl >= 2) {
request('http://192.168.243.76:50000/track=intercom-whistle.wav');
setTimeout(setState('sayit.0.tts.text', "Es liegen " + anzahl + " Unwetterwarnungen vor."), 3000);
}
}
! // View wechseln
if (anzahl >= 1){
View_change ('DWD', 0);
setTimeout(function() {
View_change ('Titel', 0);
}, 300000); // nach 5 Min. wieder auf Titel
}
}
! // Anzahl DWD ermitteln
function weiter1() {
var anzahl = 0;
if (getState("dwd.0.warning.headline").val !== "") anzahl++;
if (getState("dwd.0.warning1.headline").val !== "") anzahl++;
if (getState("dwd.0.warning2.headline").val !== "") anzahl++;
if (getState("dwd.0.warning3.headline").val !== "") anzahl++;
if (getState("dwd.0.warning4.headline").val !== "") anzahl++;
if (getState("dwd.0.warning5.headline").val !== "") anzahl++;
if (getState("dwd.0.warning6.headline").val !== "") anzahl++;
if (getState("dwd.0.warning7.headline").val !== "") anzahl++;
if (getState("dwd.0.warning8.headline").val !== "") anzahl++;
setState('javascript.0.Status.DWD_Anzahl', anzahl);
}
! on({id: "javascript.0.Status.DWD_Anzahl", change: "ne" }, function() { // Anzahl geändert
log("Auslöser DWD Anzahl");
weiter();
});
! schedule("6,21,36,51 * * * *", function () {
log("Auslöser Schedule");
weiter1(); // Anzahl ermitteln
});
! ````Damit das Script läuft muss folgendes gemacht werden:
-
Diese "javascript.0.Status.DWD_Anzahl" Variable anlegen unter Objekte.
-
Die wav Datei unter Sound muss natürlich erreichbar sein. Bei ist das Programm "HomeMedia 24" (ich glaub so heißt so) auf dem Tablet installiert.
-
Die "View_change" ist ein globales Programm. Und zwar dieses:
!
// View wechseln Parameter: (Seite, Delayed) ! function View_change (data, x) { setState("vis.0.control.instance", 'FFFFFFFF'); setState("vis.0.control.data", data); if (x > 0) { setStateDelayed("vis.0.control.command", 'changeView', x); } else { setState("vis.0.control.command", 'changeView'); } } !
Die Views müssen natürlich vorhanden sein.
Die View auf dem Tablet sieht dann so aus (insgesamt 3x vorhanden; wg. max. 9 Meldungen)
filename="bild1.jpg" index="0">~~Viel Spaß damit.
mfg
Dieter
-