NEWS
DWD Adapter VIS Zeitformatierung
-
Hallo,
seit dem letzten Update vom DWD Adapter, bekomme ich in der Vis nur noch Zahlen als Zeitcode Begin/End angezeigt. Unter Objekte steht die richtige Zeit ( Hat iobroker wohl direkt umgewandelt ).
Vis macht das aber wohl nicht .. und im DWD Widget kann ich auch nichts weiter einstellen. -
Hallo,
seit dem letzten Update vom DWD Adapter, bekomme ich in der Vis nur noch Zahlen als Zeitcode Begin/End angezeigt. Unter Objekte steht die richtige Zeit ( Hat iobroker wohl direkt umgewandelt ).
Vis macht das aber wohl nicht .. und im DWD Widget kann ich auch nichts weiter einstellen.@ChrisXY Steht im DWD-Adapter Thread: nimm als Widget Timestamp Value
-
hmm ich hab da nichts gefunden. Ich will ja das DWD Widget nutzen und da nicht selbst etwas bauen. Um die Zeit umzurechnen das kenne ich. Jedoch in DWD Adapter ist das ja alles schon fertig. Damit hab ich es auch in 3 VIS verbaut. Will da ungerne jetzt alles umbauen.
-
hmm ich hab da nichts gefunden. Ich will ja das DWD Widget nutzen und da nicht selbst etwas bauen. Um die Zeit umzurechnen das kenne ich. Jedoch in DWD Adapter ist das ja alles schon fertig. Damit hab ich es auch in 3 VIS verbaut. Will da ungerne jetzt alles umbauen.
@ChrisXY Dann musst du wohl oder übel auf ein Update des DWD-Widgets warten. Das ist noch nicht auf den Unix-Timestamp ("die ellenlange Zahl") umgestellt.
-
@ChrisXY Dann musst du wohl oder übel auf ein Update des DWD-Widgets warten. Das ist noch nicht auf den Unix-Timestamp ("die ellenlange Zahl") umgestellt.
-
@ChrisXY Du könntest temporär aber auch oben genanntes Widget nehmen, die Zeit nach deinen Vorstellungen formatieren, es "auf" das DWD-Widget schieben (dort wo normalerweise die Zeitangabe steht) und ihm einen höheren "z-index" verpassen. Dann überdeckt es die "falsche" Zeitangabe.
-
@ChrisXY Du könntest temporär aber auch oben genanntes Widget nehmen, die Zeit nach deinen Vorstellungen formatieren, es "auf" das DWD-Widget schieben (dort wo normalerweise die Zeitangabe steht) und ihm einen höheren "z-index" verpassen. Dann überdeckt es die "falsche" Zeitangabe.
-
@SBorg sagte in DWD Adapter VIS Zeitformatierung:
@ChrisXY Steht im DWD-Adapter Thread: nimm als Widget Timestamp Value
Der Tipp hat mir geholfen. Besten Dank.
Wenn sich die Warnstufe auf über 3 ändert, schicke ich mir noch ne telegram message.
Diese beinhaltet auch Start- und Endzeit. Wie kann ich diese denn dann umwandeln? -
@SBorg sagte in DWD Adapter VIS Zeitformatierung:
@ChrisXY Steht im DWD-Adapter Thread: nimm als Widget Timestamp Value
Der Tipp hat mir geholfen. Besten Dank.
Wenn sich die Warnstufe auf über 3 ändert, schicke ich mir noch ne telegram message.
Diese beinhaltet auch Start- und Endzeit. Wie kann ich diese denn dann umwandeln?@aleks-83 Ich vermute mal als Blockly? Dann musst du einen "Konvertierung --> nach Datum/Zeit" - Baustein davor setzen.
-
@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.
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?
-
@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 ;)