Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Wert aus Datenpunkt in hh:mm:ss umrechnen (gelöst)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wert aus Datenpunkt in hh:mm:ss umrechnen (gelöst)

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Matt77CHE last edited by Matt77CHE

      Hallo zusammen
      ich versuche nun schon seit Stunden folgendes:

      Wert aus Datenpunkt nehmen (zB 300000 (sind ms) (was 5 min entspricht));
      Diesen Wert in das Format hh:mm:ss (also 00:05:00) umrechnen;
      Die 00:05:00 in einen anderen Datenpunkt schreiben.

      Wie bekomme ich die 300000 (ms) in das Format 00:05:00 (hh:mm:ss) ?

      Bei dem was ich versucht habe wird immer 01:05:00 ausgegeben, oder gar nichts...

      Für eure Tips wäre ich dankbar

      paul53 mickym 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Matt77CHE last edited by

        @matt77che sagte: wird immer 01:05:00 ausgegeben

        Die Formatierung in Blockly berücksichtigt die Zeitzone, muss also um diese korrigiert werden.

        1 Reply Last reply Reply Quote 0
        • M
          Matt77CHE last edited by

          ookey;

          @paul53 Danke für den Hinweis!
          Wieso Blockly die Zeitzone beim Umrechnen eines Wertes in hh:mm:ss mit einbeziehen muss verstehe ich nicht....

          habe nun das Skript um "X - 3600000" ergänzt - und mit debug wird jetzt schon einmal der richtige Wert ausgegeben.
          Mal schauen, wie ich das ins grosse Skript integriere.

          Danke & Gruss

          haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @Matt77CHE last edited by

            @matt77che Ich würde etwas bauen was in jeder Zeitzone funktioniert 😏

            https://stackoverflow.com/questions/1322732/convert-seconds-to-hh-mm-ss-with-javascript

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @Matt77CHE last edited by paul53

              @matt77che sagte: Wieso Blockly die Zeitzone beim Umrechnen eines Wertes in hh:mm:ss mit einbeziehen muss verstehe ich nicht...

              Weil sonst Zeitstempel falsch konvertiert würden: Es würde die UTC-Zeit gezeigt.

              @matt77che sagte in Wert aus Datenpunkt in hh:mm:ss umrechnen....:

              Mal schauen, wie ich das ins grosse Skript integriere.

              Man kann auch eine JS-Funktion mit Ergebnis verwenden.

              1 Reply Last reply Reply Quote 0
              • M
                Matt77CHE last edited by

                @haus-automatisierung
                @paul53
                Ich danke euch beiden für die Ansätze mit den Javascripten, werde mir das heute Abend mal zu Gemüte führen.

                Das mit der Zeitzone kapier ich aber immer noch nicht - wieso spielt die Zeitzone in diesem Fall eine Rolle?
                Sind in einer anderen Zeitzone 300000ms nicht 5s?!?

                Homoran haus-automatisierung paul53 3 Replies Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Matt77CHE last edited by

                  @matt77che sagte in Wert aus Datenpunkt in hh:mm:ss umrechnen....:

                  wieso spielt die Zeitzone in diesem Fall eine Rolle?
                  Sind in einer anderen Zeitzone 300000ms nicht 5s?!?

                  du nutzt aber das Format eines Timestamps.
                  Ein Timestamp wird üblicherweise auf UTC angegeben und dir in deine Zeitzone umgerechnet.

                  Sekunden als reine Zahl würde funktionieren, dann musst du es dir selber zusammenbauen (Stunden, Minuten, Sekunden)

                  1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @Matt77CHE last edited by

                    @matt77che sagte in Wert aus Datenpunkt in hh:mm:ss umrechnen....:

                    wieso spielt die Zeitzone in diesem Fall eine Rolle?

                    Die Zeitzone spielt dann eine Rolle, wenn Du irgendeine Funktion benutzt, welche die Zeitzone mit einberechnen will. Wenn man einen Timestamp nimmt, ist der immer UTC. Wenn man daraus einen String macht, dann als UTC, da sonst die aktuelle Zeitzone berücksichtigt wird.

                    new Date(300000).toISOString() // "1970-01-01T00:05:00.000Z"
                    

                    während

                    new Date(300000).toLocaleString() // "01/01/1970, 01:05:00"
                    

                    weil Date so schlau ist, deine aktuelle Zeitzone (vom System) zu kennen:

                    new Date(300000).getTimezoneOffset() // -60
                    

                    Der gleiche Zeitpunkt, ist in anderen Zeitzonen nunmal eine andere Uhrzeit.

                    new Date(300000).toLocaleString('de-DE', { timeZone: 'America/Los_Angeles'}) // "31.12.1969, 16:05:00"
                    new Date(300000).toLocaleString('de-DE', { timeZone: 'Europe/Berlin'}) // "1.1.1970, 01:05:00"
                    

                    Daher in dem Fall immer mit den Funktionen arbeiten, welche die Zeitzone ignorieren.

                    .getUTCDate()
                    .getUTCDay()
                    .getUTCFullYear()
                    .getUTCHours()
                    .getUTCMinutes()
                    .getUTCSeconds()
                    ...
                    
                    1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @Matt77CHE last edited by mickym

                      gelöscht

                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Matt77CHE last edited by paul53

                        @matt77che sagte: Sind in einer anderen Zeitzone 300000ms nicht 5s?!?

                        Nein. 300000 ms entsprechen 01.01.1970 00:05:00 UTC. Die Blockly-Formatierung rechnet in die lokale Uhrzeit am 01.01.1970 um (+ 1h MEZ).
                        Die JS-Controller-Funktion formatDate(ms, format) rechnet bis zu gut 10 Tagen nicht in die Lokalzeit um, ist also auch für Zeit-Differenzen geeignet.

                        1 Reply Last reply Reply Quote 0
                        • M
                          Matt77CHE last edited by

                          Aha - Ok; vielen Dank für die Erläuterungen

                          1 Reply Last reply Reply Quote 0
                          • M
                            Matt77CHE last edited by

                            Aalso, hab mich mal hingesetzt um das ganze mit einem Javascript zu versuchen.....

                            ich scheitere noch..

                            wie muss ich das anstellen, dass ein Datenpunkt (unter Objekte / 0_userdata) ausgelesen (zB diese 300000ms), dann umgerechnet werden, dass 00:05:00 ausgeben und dies wieder in ein Datenpunkt (wieder unter Objekte / 0_userdata) reingeschrieben wird? - Mir raucht echt schon der Kopf davon...

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @Matt77CHE last edited by paul53

                              @matt77che sagte: Datenpunkt (unter Objekte / 0_userdata) ausgelesen (zB diese 300000ms), dann umgerechnet werden, dass 00:05:00 ausgeben und dies wieder in ein Datenpunkt (wieder unter Objekte / 0_userdata) reingeschrieben wird?

                              Bild_2022-05-23_175527754.png

                              Inhalt der Funktion formatDiff(ms, format):

                              return formatDate(ms, format);
                              

                              Wert (unter "Trigger"):

                              Blockly_DP_Props.JPG

                              Der Wert im Trigger-Datenpunkt muss sich erst ändern, damit getriggert wird!

                              Steffe.S. 1 Reply Last reply Reply Quote 3
                              • M
                                Matt77CHE last edited by Matt77CHE

                                @paul53
                                habe es nachgebaut - und es tut genau das was ich möchte 👍 😊

                                Vielen herzlichen Dank für deine Geduld und deinen Rat - resp. Anleitung!

                                1 Reply Last reply Reply Quote 0
                                • Steffe.S.
                                  Steffe.S. @paul53 last edited by Steffe.S.


                                  @paul53 sagte in Wert aus Datenpunkt in hh:mm:ss umrechnen (gelöst):

                                  @matt77che sagte: Datenpunkt (unter Objekte / 0_userdata) ausgelesen (zB diese 300000ms), dann umgerechnet werden, dass 00:05:00 ausgeben und dies wieder in ein Datenpunkt (wieder unter Objekte / 0_userdata) reingeschrieben wird?

                                  Bild_2022-05-23_175527754.png

                                  Inhalt der Funktion formatDiff(ms, format):

                                  return formatDate(ms, format);
                                  

                                  Wert (unter "Trigger"):

                                  Blockly_DP_Props.JPG

                                  Der Wert im Trigger-Datenpunkt muss sich erst ändern, damit getriggert wird!

                                  @paul53

                                  Vielen Dank , genau was ich gesucht habe und auchn gleich wieder etwas dazu gelernt.

                                  haus-automatisierung 1 Reply Last reply Reply Quote 0
                                  • haus-automatisierung
                                    haus-automatisierung Developer Most Active @Steffe.S. last edited by

                                    @steffe-s Der Thread ist ja schon uralt. In der Zwischenzeit gibt es dafür einen Standard-Block:

                                    Screenshot 2025-04-23 at 08.31.31.png

                                    Siehe auch https://www.youtube.com/watch?v=sxkz3O6nfFQ

                                    Steffe.S. 1 Reply Last reply Reply Quote 1
                                    • Steffe.S.
                                      Steffe.S. @haus-automatisierung last edited by Steffe.S.

                                      @haus-automatisierung

                                      wie Dank für die Rückmeldung, das schaue ich mir gleichmal an

                                      Das Problem sitzt vor dem Computer, der "Zeitdifferenz formatieren Baustein im Blockly" funktioniert super,

                                      danke, für Deine Hilfe, wieder einmal @haus-automatisierung

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      945
                                      Online

                                      31.7k
                                      Users

                                      79.7k
                                      Topics

                                      1.3m
                                      Posts

                                      6
                                      17
                                      1207
                                      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