NEWS
DWD EXP
-
Mahlzeit,
ich habe mir leider aus meine Datenbank das Falsche Script gelöscht und jetzt finde ich es nicht mehr im Netz.
Es ist ein JavaScript für den DWD Adapter, der die Warnungen besser angezeigt hat, wie ich finde.
Wenn mich nicht alles täuscht, war es diese Script, nur leider bekomme ich wenn ich es einfüge und Starte immer eine Fehlermeldung in Zeile 2.Vielleicht kann mir jemand weiter helfen.
-
@JavaMafia sagte in DWD EXP:
war es diese Script, nur leider
Da war einiges durch die Konvertierung an das neue Forum verzogen.
Ich habe gerade es versucht zu regenerieren.
Wenn es jetzt noch immer nicht klappt muss da der Ersteller noch mal ran
-
Das war das Script. Es gibt aber noch Fehler in Zeile 128, diese habe ich auch behoben.
const util = require('util'); // verschiedene Vorgaben var arrType = new Array("gewitter_","wind_","regen_","schnee_","nebel_","frost_","eis_","tau_","hitze","uv"); var arrFarben = new Array("#C5E566","#FFFF00","#FA9600","#E53935","#AF0064","#FE68FE"); var stationAltitude = 103; // States anlegen createState("DwdExp", "", { type: "channel", desc: "DWD Expand Message 1 - 10", role: "info" }); for (var State = 1; State < 11; State++) { createState("DwdExp.Message" + State, "", { type: "channel", desc: "Daten Meldung Nr. " + State, role: "info" }); createState("DwdExp.Message" + State + ".start", null, { read: true, write: false, desc: "Warnzeitraum Beginn", type: "datetime", def: null }); createState("DwdExp.Message" + State + ".end", null, { read: true, write: false, desc: "Warnzeitraum Ende", type: "datetime", def: null }); createState("DwdExp.Message" + State + ".type", null, { read: true, write: false, desc: "Art der Warnung", type: "number", min: 0, max: 9, def: null, states: "0:Gewitter; 1:Wind/Sturm; 2:Regen; 3:Schnee; 4:Nebel; 5:Frost; 6:Eis; 7:Tauwetter; 8:Hitzebelastung; 9:UV-Belastung" }); createState("DwdExp.Message" + State + ".level", null, { read: true, write: false, desc: "Warnstufe", type: "number", def: null, states: "1:Vorabinformation Unwetter; 2:Amtliche Wetterwarnung; 3:Amtliche Warnung vor markantem Wetter; 4:Amtliche Unwetterwarnung; 5:Amtliche Warnung vor extremem Unwetter" }); createState("DwdExp.Message" + State + ".severity", null, { read: true, write: false, desc: "Schwere der Warnstufe", type: "number", def: null, states: "0:None; 1:Minor; 2:Moderate; 3:Severe; 4:Extreme" }); createState("DwdExp.Message" + State + ".headline", false, { read: true, write: false, desc: "Warntyp Überschrift" + State, type: "string", def: "" }); createState("DwdExp.Message" + State + ".description", false, { read: true, write: false, desc: "Warntyp Beschreibung" + State, type: "string", def: "" }); createState("DwdExp.Message" + State + ".event", false, { read: true, write: false, desc: "Warntyp Stichwaort" + State, type: "string", def: "" }); createState("DwdExp.Message" + State + ".instruction", false, { read: true, write: false, desc: "Warntyp Handlungsratschläge" + State, type: "string", def: "" }); createState("DwdExp.Message" + State + ".period", "", { read: true, write: false, desc: "Warnzeitraum " + State, type: "string", def: "" }); createState("DwdExp.Message" + State + ".colour", "", { read: true, write: false, desc: "Level Farbe " + State, type: "string", def: "" }); createState("DwdExp.Message" + State + ".icon", "", { read: true, write: false, desc: "Level Icon " + State, type: "string", def: "" }); createState("DwdExp.Message" + State + ".visible", false, { read: true, write: false, desc: "Sichtbarkeit des Icon Nr. " + State, type: "boolean", def: false }); } // Prüfen ob ein JSON-Objekt gültig ist. function isValidObject(obj) { var retVal = false; var count = Object.keys(obj).length; if (count > 2) { retVal = true; } log("isValidObj = " + retVal); return retVal; } function isValidAltitude(obj) { var retVal = false; if ((obj.altitudeStart === null) || ((stationAltitude > obj.altitudeStart) && ((stationAltitude < obj.altitudeEnd) || (obj.altitudeEnd === null)))) { retVal = true; } log("isValidAltitude = " + retVal + ", Höhen => Station " + stationAltitude + " Start " + obj.altitudeStart + " Ende " + obj.altitudeEnd); return retVal; } // Prüfen wieviel Meldungen aktiv sind function getActiveMessageCount() { var activeCount = 0; for (var a = 0; a < 10; a++){ if (a === 0) { getState("dwd.0.warning.severity").val > 0 ? activeCount++ : null; } else { getState("dwd.0.warning" + a + ".severity").val > 0 ? activeCount++ : null; } } log("getActiveMessageCount = " + activeCount); return activeCount; } function getSeverity(lev) { if (lev === 0) { return 0; } else if (lev === 1) { return 1; } else { return lev - 1; } } // aktuelle Zeit liegt zwischen der Anfangs- und Endzeit der Warnung. Das Ereignis ist eingetreten. function isActive(start, end) { var retVal = compareTime(start, end, "between"); log("isActive = " + retVal + " input Start: " + start + " End: " + end); return retVal; } // Aus einer Zeit einen formatierten String mit heute, morgen, übermorgen oder einem Datum mit Uhrzeit zurückgeben function getTimeString(toConvert) { var retVal = ""; // Heute var Tag0 = new Date(); Tag0.setHours(23, 59, 59); // Morgen var Tag1 = new Date(Tag0); Tag1.setDate(Tag1.getDate() + 1); // Übermorgen var Tag2 = new Date(Tag0); Tag2.setDate(Tag2.getDate()+2); if (toConvert < Tag0) { retVal = "heute " + formatDate(toConvert, "hh:mm") + " Uhr"; } else if ((toConvert > Tag0) && (toConvert < Tag1)) { retVal = "morgen " + formatDate(toConvert, "hh:mm") + " Uhr"; } else if ((toConvert > Tag1) && (toConvert < Tag2)) { retVal = "übermorgen " + formatDate(toConvert, "hh:mm") + " Uhr"; } else { retVal = formatDate(toConvert, "DD.MM.YYYY, hh:mm"); } log("getTimeString = " + retVal + " input = " + toConvert); return retVal; } // String zur Beschreibung des Warnzeitraumes erstellt: z. B. AKTIV bis heute 18:30 Uhr oder heute 23:00 bis morgen 09:00 Uhr function createTimeString(start, end) { var retVal = ""; if (isActive(start, end)) { retVal = "AKTIV bis " + getTimeString(end); } else { retVal = getTimeString(start) + " bis " + getTimeString(end); } log("createTimeString = " + retVal + " input = Start: " + start + " End: " + end); return retVal; } // entsprechenden String mit dem Pfad zum Icon und der entsprechenden Bezeichnung des Bildes erstellen function createIconString(type, level) { var retVal = ""; if (level === 1) { retVal ="/vis.0/main/img/dwd/vorab.png"; } else { retVal = "/vis.0/main/img/dwd/warn_icons_" + arrType[type]; if ((type >= 0) && (type <= 7)) { retVal += level - 1; } retVal += ".png"; } log("createIconString = " + retVal + " input = Type: " + type + " Level: " + level); return retVal; } function sortMessageArr(objA, objB) { var retVal; if (objA.start < objB.start) { log("Objekt A Start => " + objA.start + " ist kleiner als B Start => " + objB.start + " = A vor B"); retVal = -1; } else if (objA.Start > objB.start) { log("Objekt A Start => " + objA.start + " ist größer als B Start => " + objB.start + " = B vor A"); retVal = 1; } else { if (objA.level < objB.level) { log("Objekt A Level => " + objA.level + " ist kleiner als B Level => " + objB.level + " = B vor A"); retVal = 1; } else if (objA.level > objB.level) { log("Objekt A Level => " + objA.level + " ist größer als B Level => " + objB.level + " = A vor B"); retVal = -1; } else { if (objA.end < objB.end) { log("Objekt A Ende => " + objA.end + " ist kleiner als B Ende => " + objB.end + " = A vor B"); retVal = -1; } else if (objA.end > objB.end) { log("Objekt A Ende => " + objA.end + " ist größer als B Ende => " + objB.end + " = B vor A"); retVal = 1; } else { if (objA.type < objB.type) { log("Objekt A Typ => " + objA.type + " ist kleiner als B Typ => " + objB.typ + " = A vor B"); retVal = -1; } else if (objA.type > objB.type) { log("Objekt A Typ => " + objA.type + " ist größer als B Typ => " + objB.typ + " = B vor a"); retVal = 1; } else { log("Es gibt keinen Unterschied daher Sortierung egal."); retVal = 0; } } } } return retVal; } function getColour(lev, typ) { var retVal; if ((typ >= 8)) { retVal = arrFarben[5]; } else { retVal = arrFarben[lev - 1]; } log("getColour => " + retVal); return retVal; } function getMessages() { var count = getActiveMessageCount(); var validCount = 0; var object = null; var objDwd = []; for (var b = 0; b < count; b++) { if (b === 0) { object = JSON.parse(getState("dwd.0.warning.object").val); } else { object = JSON.parse(getState("dwd.0.warning" + b + ".object").val); } if (isValidObject(object) && isValidAltitude(object)) { objDwd[validCount] = new Object({ start: formatDate(object.start, "DD.MM.YYYY, hh:mm"), end: formatDate(object.end, "DD.MM.YYYY, hh:mm"), type: object.type, level: object.level, severity: getSeverity(object.level), headline: object.headline, description: object.description, event: object.event, instruction: object.instruction, period: createTimeString(object.start, object.end), icon: createIconString(object.type, object.level), colour: getColour(object.level, object.type), visible: true, }); validCount++; } } log("getMessage => Valid Counts: " + validCount); objDwd.sort(sortMessageArr); for (var c = 0; c < 10; c++) { log("Counter c = " + c + " validCount = " + validCount); var d = c + 1; if (c < validCount) { log("ObjectIsValid"); setState("DwdExp.Message" + d + ".start", objDwd[c].start); setState("DwdExp.Message" + d + ".end", objDwd[c].end); setState("DwdExp.Message" + d + ".type", objDwd[c].type); setState("DwdExp.Message" + d + ".level", objDwd[c].level); setState("DwdExp.Message" + d + ".severity", objDwd[c].severity); setState("DwdExp.Message" + d + ".headline", objDwd[c].headline); setState("DwdExp.Message" + d + ".description", objDwd[c].description); setState("DwdExp.Message" + d + ".event", objDwd[c].event); setState("DwdExp.Message" + d + ".instruction", objDwd[c].instruction); setState("DwdExp.Message" + d + ".period", objDwd[c].period); setState("DwdExp.Message" + d + ".icon", objDwd[c].icon); setState("DwdExp.Message" + d + ".colour", objDwd[c].colour); setState("DwdExp.Message" + d + ".visible", objDwd[c].visible); } else { setState("DwdExp.Message" + d + ".start", null); setState("DwdExp.Message" + d + ".end", null); setState("DwdExp.Message" + d + ".type", null); setState("DwdExp.Message" + d + ".level", null); setState("DwdExp.Message" + d + ".severity", 0); setState("DwdExp.Message" + d + ".headline", ""); setState("DwdExp.Message" + d + ".description", ""); setState("DwdExp.Message" + d + ".event", ""); setState("DwdExp.Message" + d + ".instruction", ""); setState("DwdExp.Message" + d + ".period", ""); setState("DwdExp.Message" + d + ".icon", ""); setState("DwdExp.Message" + d + ".colour", arrFarben[0]); setState("DwdExp.Message" + d + ".visible", false); } } } getMessages(); on("dwd.0.warning.object",function() {getMessages()}, "ne"); on("dwd.0.warning1.object",function() {getMessages()}, "ne"); on("dwd.0.warning2.object",function() {getMessages()}, "ne"); on("dwd.0.warning3.object",function() {getMessages()}, "ne"); on("dwd.0.warning4.object",function() {getMessages()}, "ne"); on("dwd.0.warning5.object",function() {getMessages()}, "ne"); on("dwd.0.warning6.object",function() {getMessages()}, "ne"); on("dwd.0.warning7.object",function() {getMessages()}, "ne"); on("dwd.0.warning8.object",function() {getMessages()}, "ne"); on("dwd.0.warning9.object",function() {getMessages()}, "ne");
Ich bekomme aber immer noch Fehlermeldungen im LOG
- 19:15:33.425 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message1.type.common.def
- 19:15:33.425 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message1.level.common.def
- 19:15:33.426 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message1.severity.common.def
- 19:15:33.426 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message2.type.common.def
- 19:15:33.426 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message2.level.common.def
- 19:15:33.426 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message2.severity.common.def
- 19:15:33.426 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message3.type.common.def
- 19:15:33.426 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message3.level.common.def
- 19:15:33.426 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message3.severity.common.def
- 19:15:33.427 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message4.type.common.def
- 19:15:33.427 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message4.level.common.def
- 19:15:33.427 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message4.severity.common.def
- 19:15:33.427 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message5.type.common.def
- 19:15:33.427 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message5.level.common.def
- 19:15:33.427 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message5.severity.common.def
- 19:15:33.427 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message6.type.common.def
- 19:15:33.428 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message6.level.common.def
- 19:15:33.428 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message6.severity.common.def
- 19:15:33.428 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message7.type.common.def
- 19:15:33.428 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message7.level.common.def
- 19:15:33.428 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message7.severity.common.def
- 19:15:33.428 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message8.type.common.def
- 19:15:33.429 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message8.level.common.def
- 19:15:33.429 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message8.severity.common.def
- 19:15:33.429 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message9.type.common.def
- 19:15:33.429 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message9.level.common.def
- 19:15:33.429 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message9.severity.common.def
- 19:15:33.429 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message10.type.common.def
- 19:15:33.429 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message10.level.common.def
- 19:15:33.430 error javascript.0 script.js.common.DWD: Wrong type of DwdExp.Message10.severity.common.def
-
@JavaMafia sagte in DWD EXP:
Es gibt aber noch Fehler in Zeile 128
Jetzt nicht mehr
Danke!
der war mir durch die Lappen gegangen -
@Homoran
kannst du was mit der LOG Tabelle was anfangen? -
@JavaMafia
In createState() wird für Zahlen def: null verwendet. Richtig wäre: def: 0, denn null ist ein Objekt.Außerdem: Den Typ "datetime" gibt es nicht, es muss "string" lauten und mit def: "" (Leerstring) initialisiert werden.
-
@JavaMafia
Legt das Skript Staes unter Objects an?Dann sind dort die Typen für die States falsch.
-
danke jetzt klappt alles wieder bei mir.