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.
    • SBorg
      SBorg Forum Testing Most Active @ChrisXY last edited by

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

      E 1 Reply Last reply Reply Quote 2
      • C
        ChrisXY last edited by

        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.

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

          @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.

          C 1 Reply Last reply Reply Quote 0
          • C
            ChrisXY @SBorg last edited by

            @SBorg okay besten Dank 😉 Dann warte ich.

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

              @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.

              C 1 Reply Last reply Reply Quote 0
              • 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

                                            894
                                            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