NEWS
DWD Adapter VIS Zeitformatierung
-
@SBorg sagte in DWD Adapter VIS Zeitformatierung:
@aleks-83 Ich vermute mal als Blockly? Dann musst du einen "Konvertierung --> nach Datum/Zeit" - Baustein davor setzen.
Hab dasselbe "Problem". Habe folgendes Javascript und bekomme die Umformatierung nicht hin:
function SendDWDWarning() { var Begin = getState("dwd.0.warning.begin").val; var End = getState("dwd.0.warning.end").val; var text = getState("dwd.0.warning.text").val; var Headline = getState("dwd.0.warning.headline").val; var Description = getState("dwd.0.warning.description").val; var DWD_telegramm = "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ": " + Description ; sendTo ("telegram.0", DWD_telegramm); } on("dwd.0.warning.severity", function (obj) { if (obj.newState.val !==0) { setTimeout(SendDWDWarning, 30 * 1000); } if (obj.newState.val === 0) { sendTo ("telegram.0", "Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben.") ; } log ( "Wetterwarnungen " + text + " gültig vom " + Begin + " bis " + End + ': ' + Description); });Wenn ich nun folgendes ändere:
var Begin = formatDate(new Date(getState(„dwd.0.warning.begin“).val), „TT.MM.JJJJ hh:mm:ss“) var End = formatDate(new Date(getState(„dwd.0.warning.end“).val), „TT.MM.JJJJ hh:mm:ss“)dann erscheint eine Fehlermeldung im log:
javascript.0 (2135) script.js.common.Telegram_Wetterwarnung compile failed: at script.js.common.Telegram_Wetterwarnung:3Jemand eine Idee?
@Termina So einfach geht es dann doch nicht ;)
Hier eine neue Funktion:
function convertTimestamp(timestamp) { // Unix in Milliseconds! var d = new Date(timestamp), yyyy = d.getFullYear(), mm = ('0' + (d.getMonth() + 1)).slice(-2), // Months are zero based. Add leading 0. dd = ('0' + d.getDate()).slice(-2), // Add leading 0 hh = ('0' + d.getHours()).slice(-2), // Add leading 0 min = ('0' + d.getMinutes()).slice(-2), // Add leading 0 sec = ('0' + d.getSeconds()).slice(-2), // Add leading 0 day = d.getDay(), // Wochentag days = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], time; time = days[d.getDay()] + ', ' + dd + '.' + mm + '.' + yyyy + ', ' + hh + ':' + min + ':' + sec; return time; }In #13 baust du dir dann das Aussehen zusammen. Hier wäre es dann bspw. Samstag, 04.04.2020, 13:00:00
Der Aufruf wäre dann zB. var Begin = convertTimestamp(getState("dwd.0.warning.begin").val);
-
@Termina So einfach geht es dann doch nicht ;)
Hier eine neue Funktion:
function convertTimestamp(timestamp) { // Unix in Milliseconds! var d = new Date(timestamp), yyyy = d.getFullYear(), mm = ('0' + (d.getMonth() + 1)).slice(-2), // Months are zero based. Add leading 0. dd = ('0' + d.getDate()).slice(-2), // Add leading 0 hh = ('0' + d.getHours()).slice(-2), // Add leading 0 min = ('0' + d.getMinutes()).slice(-2), // Add leading 0 sec = ('0' + d.getSeconds()).slice(-2), // Add leading 0 day = d.getDay(), // Wochentag days = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], time; time = days[d.getDay()] + ', ' + dd + '.' + mm + '.' + yyyy + ', ' + hh + ':' + min + ':' + sec; return time; }In #13 baust du dir dann das Aussehen zusammen. Hier wäre es dann bspw. Samstag, 04.04.2020, 13:00:00
Der Aufruf wäre dann zB. var Begin = convertTimestamp(getState("dwd.0.warning.begin").val);
@SBorg
Vielen Dank dafür, ich habe nun Deine Funktion vor die "SendDWDWarning" Funktion gesetzt. Ist das verkehrt? Ich bekomme nämlich nun folgende Fehlermeldung im log:error javascript.0 (2230) script.js.common.Telegram_Wetterwarnung compile failed: at script.js.common.Telegram_Wetterwarnung:22PS: Ich habe gar keine Ahnung von Jacvascript... sry!
-
@SBorg
Vielen Dank dafür, ich habe nun Deine Funktion vor die "SendDWDWarning" Funktion gesetzt. Ist das verkehrt? Ich bekomme nämlich nun folgende Fehlermeldung im log:error javascript.0 (2230) script.js.common.Telegram_Wetterwarnung compile failed: at script.js.common.Telegram_Wetterwarnung:22PS: Ich habe gar keine Ahnung von Jacvascript... sry!
@Termina sagte in DWD Adapter VIS Zeitformatierung:
PS: Ich habe gar keine Ahnung von Jacvascript... sry!
Kein Problem, fragen, fragen... dafür ist das Forum doch auch da :)
Die kpl. Funktion fügst du 1:1 in dein JS ein. Dann ersetzt du Zeile #3+4var Begin = getState("dwd.0.warning.begin").val; var End = getState("dwd.0.warning.end").val;durch
var Begin = convertTimestamp(getState("dwd.0.warning.begin").val); var End = convertTimestamp(getState("dwd.0.warning.end").val);Wenn es dann funktioniert und dir das Format (Wochentag, Datum...) nicht gefällt, kannst du in der Funktion dann das Aussehen noch beeinflussen:
time = days[d.getDay()] + ', ' + dd + '.' + mm + '.' + yyyy + ', ' + hh + ':' + min + ':' + sec; -
@Termina sagte in DWD Adapter VIS Zeitformatierung:
PS: Ich habe gar keine Ahnung von Jacvascript... sry!
Kein Problem, fragen, fragen... dafür ist das Forum doch auch da :)
Die kpl. Funktion fügst du 1:1 in dein JS ein. Dann ersetzt du Zeile #3+4var Begin = getState("dwd.0.warning.begin").val; var End = getState("dwd.0.warning.end").val;durch
var Begin = convertTimestamp(getState("dwd.0.warning.begin").val); var End = convertTimestamp(getState("dwd.0.warning.end").val);Wenn es dann funktioniert und dir das Format (Wochentag, Datum...) nicht gefällt, kannst du in der Funktion dann das Aussehen noch beeinflussen:
time = days[d.getDay()] + ', ' + dd + '.' + mm + '.' + yyyy + ', ' + hh + ':' + min + ':' + sec; -
Schaut mal hier:
-
@aleks-83 Ich vermute mal als Blockly? Dann musst du einen "Konvertierung --> nach Datum/Zeit" - Baustein davor setzen.
@SBorg sagte in DWD Adapter VIS Zeitformatierung:
@aleks-83 Ich vermute mal als Blockly? Dann musst du einen "Konvertierung --> nach Datum/Zeit" - Baustein davor setzen.
Das hat kurzzeitig funktioniert.
Jetzt wird aber trotz des Bausteins "nach Datum/Zeit" immer noch der Linux-Zeitstempel geschrieben.
JavaScript 4.6.17
DWD 2.4.9 -
@SBorg sagte in DWD Adapter VIS Zeitformatierung:
@aleks-83 Ich vermute mal als Blockly? Dann musst du einen "Konvertierung --> nach Datum/Zeit" - Baustein davor setzen.
Das hat kurzzeitig funktioniert.
Jetzt wird aber trotz des Bausteins "nach Datum/Zeit" immer noch der Linux-Zeitstempel geschrieben.
JavaScript 4.6.17
DWD 2.4.9@aleks-83 Da hat sich wohl wieder was geändert :(
Etwas aufwändiger (JS-Funktion), dafür "überlebt" es aber auch weitere Änderungen:

Blockly-ExportIm Grunde musst du dann nur den "nach Datum/Zeit" durch den neuen "Timestamp mit millis" ersetzen.
In der Funktion (zu öffnen mit den...am Ende) kannst du in Zeile #12 die Ausgabe formatieren....und nicht wundern, der "Brandson..." zum testen enthält bei mir tatsächlich einen Unix-Timestamp ;)
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