Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. DWD Adapter VIS Zeitformatierung

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    DWD Adapter VIS Zeitformatierung

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      ChrisXY @SBorg last edited by

      @SBorg ja könnte man machen. Wollte eh mal ein popup Widget machen mit dem kleinen DWD Widget und das dort bei Klick dann ein Layer kommt. Aber das wäre wieder ein Punkt auf einer langen Todo 😄

      1 Reply Last reply Reply Quote 0
      • A
        aleks-83 last edited by aleks-83

        @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 1 Reply Last reply Reply Quote 1
        • SBorg
          SBorg Forum Testing Most Active @aleks-83 last edited by

          @aleks-83 Ich vermute mal als Blockly? Dann musst du einen "Konvertierung --> nach Datum/Zeit" - Baustein davor setzen.

          T A 2 Replies Last reply Reply Quote 1
          • T
            Termina @SBorg last edited by

            @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:3
            

            Jemand eine Idee?

            SBorg 1 Reply Last reply Reply Quote 0
            • SBorg
              SBorg Forum Testing Most Active @Termina last edited by

              @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);

              T 1 Reply Last reply Reply Quote 0
              • T
                Termina @SBorg last edited by

                @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:22
                

                PS: Ich habe gar keine Ahnung von Jacvascript... sry!

                SBorg 1 Reply Last reply Reply Quote 0
                • SBorg
                  SBorg Forum Testing Most Active @Termina last edited by

                  @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+4

                    var 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;
                  
                  T 1 Reply Last reply Reply Quote 2
                  • T
                    Termina @SBorg last edited by

                    @SBorg
                    Sorry für die späte Rückmeldung - aber hat funktioniert - DANKE! 🙂

                    1 Reply Last reply Reply Quote 0
                    • E
                      exmerci @SBorg last edited by

                      @SBorg sagte in DWD Adapter VIS Zeitformatierung:

                      Steht im DWD-Adapter Thread: nimm als Widget Timestamp Value

                      Das habe ich versucht. Nur leider wird das Widget zwar in der Vorschau auf dem PC angezeigt, nicht aber auf dem Tablet.

                      1 Reply Last reply Reply Quote 0
                      • wendy2702
                        wendy2702 last edited by

                        Schaut mal hier:

                        https://forum.iobroker.net/post/422786

                        1 Reply Last reply Reply Quote 0
                        • E
                          exmerci last edited by

                          Danke, aber ich finde in dem Beitrag nichts wo es darum geht das ein Widget nicht angezeigt wird, oder übersehe ich da was?

                          1 Reply Last reply Reply Quote 0
                          • wendy2702
                            wendy2702 last edited by

                            Sorry, ich war bei der Anzeige der Zeit im richtigen Format .

                            Das Widget wird in der App nicht angezeigt da die App das Widget nicht kennt und ein Update erforderlich ist. Das Problem Gibt es für einige Widgets .

                            1 Reply Last reply Reply Quote 0
                            • A
                              aleks-83 @SBorg last edited by

                              @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 1 Reply Last reply Reply Quote 0
                              • SBorg
                                SBorg Forum Testing Most Active @aleks-83 last edited by SBorg

                                @aleks-83 Da hat sich wohl wieder was geändert 😞
                                Etwas aufwändiger (JS-Funktion), dafür "überlebt" es aber auch weitere Änderungen:
                                Bild 1.png
                                Blockly-Export

                                Im 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 😉

                                1 Reply Last reply Reply Quote 1
                                • A
                                  aleks-83 last edited by aleks-83

                                  @SBorg
                                  Funktioniert perfekt!
                                  Danke dir

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate
                                  FAQ Cloud / IOT
                                  HowTo: Node.js-Update
                                  HowTo: Backup/Restore
                                  Downloads
                                  BLOG

                                  727
                                  Online

                                  32.0k
                                  Users

                                  80.5k
                                  Topics

                                  1.3m
                                  Posts

                                  dwd vis
                                  6
                                  21
                                  2285
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo