Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. BLOCKLY Zeit nach UTC konvertieren.

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

BLOCKLY Zeit nach UTC konvertieren.

Geplant Angeheftet Gesperrt Verschoben Blockly
15 Beiträge 5 Kommentatoren 1.3k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C cyrano330

    Hi @all,

    hab mal eine Frage. Ich möchte meine Sensoren überwachen ob sie noch am leben sind. (AQARA Temperatursensoren) Der "IsAlive" Datenpunkt ist absolut ungeeignet dafür. Der steht auf TRUE obwohl das Ding schon lang tot ist.

    Nun gibt es den Datenpunkt "lastupdated" der mir die Zulu-Zeit des letzten Updates ausgibt. Also UTC-Zeit. BLOCKLY an sich nimmt ja immer die Systemzeit nach Zeitzone. Nun könnte ich meine Zeitzone nach UTC umstellen. Dann funktionieren aber die ganzen Sommer-Winterzeitabhängigen Steuerungen nicht mehr.

    Kann ich im BLOCKLY irgendwo die UTC-Zeit herbekommen? Hab nichts dergleichen gefunden.....

    Danke für Eure Hilfe.

    Gruß
    Henry

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #6

    @cyrano330 man braucht keine Uhrzeit zur Überwachung. Die Teile melden sich innerhalb von 2 Stunden mind. einmal. Starte einfach einen Timer, wenn er sich gemeldet hat und gib Alarm aus, wenn er sich nicht innerhalb von 2 Std. gemeldet hat. Dazu brauche ich keine Uhrzeiten.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    C 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @cyrano330
      Wandle den DP-Wert in ms und subtrahiere ihn von der aktuellen Zeit in ms.
      Das Datum-Objekt enthält immer die ms seit 1.1.1970 0:00 Uhr UTC.

      Blockly_temp.JPG

      C Offline
      C Offline
      cyrano330
      schrieb am zuletzt editiert von
      #7

      @paul53 Ich hab nen Knoten im Kopf... Wenn ich das so mache hab ich einen negativen Wert.... Als imm kleiner als die 180000....

      paul53P 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @cyrano330 man braucht keine Uhrzeit zur Überwachung. Die Teile melden sich innerhalb von 2 Stunden mind. einmal. Starte einfach einen Timer, wenn er sich gemeldet hat und gib Alarm aus, wenn er sich nicht innerhalb von 2 Std. gemeldet hat. Dazu brauche ich keine Uhrzeiten.

        C Offline
        C Offline
        cyrano330
        schrieb am zuletzt editiert von
        #8

        @mickym Sind die 2h sicher?

        mickymM 1 Antwort Letzte Antwort
        0
        • C cyrano330

          @paul53 Ich hab nen Knoten im Kopf... Wenn ich das so mache hab ich einen negativen Wert.... Als imm kleiner als die 180000....

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #9

          @cyrano330 sagte: hab ich einen negativen Wert..

          Das wundert mich. Ist der String im Datenpunkt nicht JS-konform? Die Wandlungsfunktion sollte am "Z" erkennen, dass es sich um die UTC-Zeit handelt.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          C 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @cyrano330 sagte: hab ich einen negativen Wert..

            Das wundert mich. Ist der String im Datenpunkt nicht JS-konform? Die Wandlungsfunktion sollte am "Z" erkennen, dass es sich um die UTC-Zeit handelt.

            C Offline
            C Offline
            cyrano330
            schrieb am zuletzt editiert von
            #10

            @paul53

            baa5c8de-34a1-4af5-9626-0d0cf2c88049-image.png

            Logfile: script.js.Skript_1: Differenz aktuelle Zeit - Datenpunkt -2782300 Messpunkt: 1675002562301 aktuelle Zeit: 1674999780001

            34dded85-5fa0-489a-a93e-07294d7f6c47-image.png

            paul53P 1 Antwort Letzte Antwort
            0
            • C cyrano330

              @paul53

              baa5c8de-34a1-4af5-9626-0d0cf2c88049-image.png

              Logfile: script.js.Skript_1: Differenz aktuelle Zeit - Datenpunkt -2782300 Messpunkt: 1675002562301 aktuelle Zeit: 1674999780001

              34dded85-5fa0-489a-a93e-07294d7f6c47-image.png

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #11

              @cyrano330
              Der Wert liegt in der Zukunft. Poste bitte mal den Datenpunktwert, da ich solche Datenpunkte nicht habe.

              EDIT: Habe mal mit einem String "2023-01-29T14:00:24.000Z" (= heute 15:00:24 MEZ) getestet: Bei mir funktioniert die Konvertierung richtig.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • C cyrano330

                @mickym Sind die 2h sicher?

                mickymM Offline
                mickymM Offline
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #12

                @cyrano330 sagte in BLOCKLY Zeit nach UTC konvertieren.:

                @mickym Sind die 2h sicher?

                Bei mir funktioniert das nun seit 2 Jahren so.

                Wenn sich die Temperatur ändert dann sogar um so häufiger. Hier meine 3 AQURAs aus der Küche.

                2 überwachen den Kühlschrank. Da ist sogar Kurve mit dabei. Ich lass mir immer ausgeben von wann der Wert war. ;) - Aber das mache ich wie bei den zigbee Teilen generell. Das heißt wenn sich irgendein Gerät meldet, dann ermittle ich nur die Differenz. Ich speichere das aber selbst. Mach das auch nicht mit Blockly.

                74575f70-8a36-4167-97d5-87f2c334f46f-image.png

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                1 Antwort Letzte Antwort
                0
                • B Offline
                  B Offline
                  bb61
                  schrieb am zuletzt editiert von bb61
                  #13

                  Hi,
                  angelockt vom Titel des Threads über die Suche, hab ich's mit der hier vorgeschlagenen Lösung versucht, allerdings vergeblich. Ich bekam immer nur eine Differenz von einer Stunde heraus, nie die korrekte von 2 Stunden (wir haben gerade Sommerzeit). Was mir dabei auffiel: Die alten Beispiele oben, zumindest deren Postings, fanden i.d.R. zur Winterzeit statt.

                  Deshalb hier eine kleine, 3-Zeiler-Lösung für Blockly, die immer korrekt das Ergebnis als Differenz zur aktuellen Systemzeit liefert. JS selbst hat da den passenden Befehl, den man per Blockly-Funktion fix einbinden kann:

                  toffset-1.PNG
                  Inhalt der Funktion (Klick auf die 3 Punkte rechts):
                  toffset-2.PNG
                  ....und hier die Einbindung:
                  toffset-3.PNG
                  Um wie bei mir gewollt aus UTC die lokale Zeit zu bilden, werden lediglich die Offset-Minuten als Millisekunden (* 60 * 1000) addiert. Umgekehrt geht's natürlich genauso mit anderem Vorzeichen.

                  Anwendung bei mir ist übrigens eine Ansage eines Zeitabstandes (nebst berechneter absoluter Zielzeit) zum gelieferten Prognoseergebnis einer Trendanalyse, also wann bei gleichbleibendem Trend ein Grenzwert erreicht würde. Diese habe ich, ausgehend von den SQL-Historien im Broker auf dem ohnehin dafür genutztem SQL-Server ermitteln lassen (kleiner IBM-NUC). Die Zeiten dort kommen aber wg. Modularität stets als UTC. Diese waren dann in Abfrage- oder Alarmansagen (gebildet in Blockly) in lokalTZ zu wandeln.

                  (Off topic, aber vielleicht für einige interessant?)
                  Das ganze ist übrigens komplett modular (liefernder Datenpunkt + "projektabhängig" Limits bzw. Ergebnis-Schweregrad-Klassen als Parameter), in konkreter Anwendung bisher bei mir im Einsatz für

                  • Diabtetes-Wert (Adapter: libre.; Sorry, die internen "Trends" dort sind keine bzw. sinnlos weil nicht look-ahead. Z.B. zum Wecken bei Unterzuckerung absolut ungeeignet). Warum Trend? Sorry, ich esse stochastische Kohlehydratmengen in stochastischen Zeitabständen, nebst stochastischer körperlicher Betätigung :-)

                  • Ermittlung Sturm-/Starkwind-Ende für Dachfenster, Stoff-Markiesen usw. (Einfahren bei Boe über Limit ist easy, aber eine Böenpause ist noch kein Indiz fürs Wieder-Ausfahren, obwohl Schatten-Bedarf noch besteht. Hier hilft ein Trend sehr! 2 Adapter: WU (WeatherUnderground) und Netatmo

                  • Regenwasser-Zisternen für Gartenbewässerung, Füllstand rechtzeitig evtl. umschalten auf Frischwasser, BEVOR neuer Zyklus beginnt (oder wenn manuell umschalten: VOR dem Urlaub, Dienstreise usw.). Hardware: LevelJet von ProJet (Ultraschall-Sensor), angebunden per USB an Raspi (zzgl. 2 systemeigener Funkstrecken auf dem Weg dahin: Zisterne->Controller und von dort USB->Funk->USB->Raspi). Trend hier besser, da Bewässerung selbst (und damit Mengenentnahme) stochastisch (überhaupt? Zeitdauer?) aus Verdunstungsberechnung zzgl. aktueller Regenereignissen, -mengen, -zeitabständen usw. Kein Adapter, empfangener Raspi triggert kleines Script für Werteaktualisierung

                  • Wasserdruck Heizungsanlage, Rohrsystem aus den 1960ern mit leichten Verlusten (diese aber Nutzungs- bzw. letztlich Umgebungs-Temperatur-abhängig -> Trendanalyse nötig), das ganze in Pflegewohnung >100km entfernt, natürlich "unter Limit" (Gefahr der Abschaltung -> Wasser nachfüllen) nach Monaten, immer genau dann, wenn man gerade zu Besuch war, auf Dienstreise ist oder Glatteissturm usw. herrscht... Adapter: Vaillant, Absolute Werte (immer der aktuelle) als Limit nützt leider wenig, weil die Heizungsanlage selbst mit ihrer bedarfsweisen Zykluspumpe Werte dann im gesamten Min-Max-Bereich) nochmal für Stochastik im System sorgt. -> Trendanalyse über Tage hilft.

                  Völlig unterschiedliche Anwendungen, Einheiten, Zeitabstände, Ergebnisbehandlung, aber alle nutzen gleiches Modul zur Berechnung, bei Ansagen, Alarmauskopplungen usw.

                  Vielleicht veröffentliche ich hier mal im Forum den ganzen Kram, so Interesse besteht. An der Doku als Lehrmaterial arbeite ich bereits.

                  Gruß bb61 (=GW in den Release-Kommentaren)

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • B bb61

                    Hi,
                    angelockt vom Titel des Threads über die Suche, hab ich's mit der hier vorgeschlagenen Lösung versucht, allerdings vergeblich. Ich bekam immer nur eine Differenz von einer Stunde heraus, nie die korrekte von 2 Stunden (wir haben gerade Sommerzeit). Was mir dabei auffiel: Die alten Beispiele oben, zumindest deren Postings, fanden i.d.R. zur Winterzeit statt.

                    Deshalb hier eine kleine, 3-Zeiler-Lösung für Blockly, die immer korrekt das Ergebnis als Differenz zur aktuellen Systemzeit liefert. JS selbst hat da den passenden Befehl, den man per Blockly-Funktion fix einbinden kann:

                    toffset-1.PNG
                    Inhalt der Funktion (Klick auf die 3 Punkte rechts):
                    toffset-2.PNG
                    ....und hier die Einbindung:
                    toffset-3.PNG
                    Um wie bei mir gewollt aus UTC die lokale Zeit zu bilden, werden lediglich die Offset-Minuten als Millisekunden (* 60 * 1000) addiert. Umgekehrt geht's natürlich genauso mit anderem Vorzeichen.

                    Anwendung bei mir ist übrigens eine Ansage eines Zeitabstandes (nebst berechneter absoluter Zielzeit) zum gelieferten Prognoseergebnis einer Trendanalyse, also wann bei gleichbleibendem Trend ein Grenzwert erreicht würde. Diese habe ich, ausgehend von den SQL-Historien im Broker auf dem ohnehin dafür genutztem SQL-Server ermitteln lassen (kleiner IBM-NUC). Die Zeiten dort kommen aber wg. Modularität stets als UTC. Diese waren dann in Abfrage- oder Alarmansagen (gebildet in Blockly) in lokalTZ zu wandeln.

                    (Off topic, aber vielleicht für einige interessant?)
                    Das ganze ist übrigens komplett modular (liefernder Datenpunkt + "projektabhängig" Limits bzw. Ergebnis-Schweregrad-Klassen als Parameter), in konkreter Anwendung bisher bei mir im Einsatz für

                    • Diabtetes-Wert (Adapter: libre.; Sorry, die internen "Trends" dort sind keine bzw. sinnlos weil nicht look-ahead. Z.B. zum Wecken bei Unterzuckerung absolut ungeeignet). Warum Trend? Sorry, ich esse stochastische Kohlehydratmengen in stochastischen Zeitabständen, nebst stochastischer körperlicher Betätigung :-)

                    • Ermittlung Sturm-/Starkwind-Ende für Dachfenster, Stoff-Markiesen usw. (Einfahren bei Boe über Limit ist easy, aber eine Böenpause ist noch kein Indiz fürs Wieder-Ausfahren, obwohl Schatten-Bedarf noch besteht. Hier hilft ein Trend sehr! 2 Adapter: WU (WeatherUnderground) und Netatmo

                    • Regenwasser-Zisternen für Gartenbewässerung, Füllstand rechtzeitig evtl. umschalten auf Frischwasser, BEVOR neuer Zyklus beginnt (oder wenn manuell umschalten: VOR dem Urlaub, Dienstreise usw.). Hardware: LevelJet von ProJet (Ultraschall-Sensor), angebunden per USB an Raspi (zzgl. 2 systemeigener Funkstrecken auf dem Weg dahin: Zisterne->Controller und von dort USB->Funk->USB->Raspi). Trend hier besser, da Bewässerung selbst (und damit Mengenentnahme) stochastisch (überhaupt? Zeitdauer?) aus Verdunstungsberechnung zzgl. aktueller Regenereignissen, -mengen, -zeitabständen usw. Kein Adapter, empfangener Raspi triggert kleines Script für Werteaktualisierung

                    • Wasserdruck Heizungsanlage, Rohrsystem aus den 1960ern mit leichten Verlusten (diese aber Nutzungs- bzw. letztlich Umgebungs-Temperatur-abhängig -> Trendanalyse nötig), das ganze in Pflegewohnung >100km entfernt, natürlich "unter Limit" (Gefahr der Abschaltung -> Wasser nachfüllen) nach Monaten, immer genau dann, wenn man gerade zu Besuch war, auf Dienstreise ist oder Glatteissturm usw. herrscht... Adapter: Vaillant, Absolute Werte (immer der aktuelle) als Limit nützt leider wenig, weil die Heizungsanlage selbst mit ihrer bedarfsweisen Zykluspumpe Werte dann im gesamten Min-Max-Bereich) nochmal für Stochastik im System sorgt. -> Trendanalyse über Tage hilft.

                    Völlig unterschiedliche Anwendungen, Einheiten, Zeitabstände, Ergebnisbehandlung, aber alle nutzen gleiches Modul zur Berechnung, bei Ansagen, Alarmauskopplungen usw.

                    Vielleicht veröffentliche ich hier mal im Forum den ganzen Kram, so Interesse besteht. An der Doku als Lehrmaterial arbeite ich bereits.

                    Gruß bb61 (=GW in den Release-Kommentaren)

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #14

                    @bb61 sagte: Ich bekam immer nur eine Differenz von einer Stunde heraus

                    Bezug ist der 1.1.1970, also keine Sommerzeit.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    B 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @bb61 sagte: Ich bekam immer nur eine Differenz von einer Stunde heraus

                      Bezug ist der 1.1.1970, also keine Sommerzeit.

                      B Offline
                      B Offline
                      bb61
                      schrieb am zuletzt editiert von
                      #15

                      @paul53
                      klar. DAS Datum ist stabil. Aber auch immer =0, Sommers wie winters.

                      Aber es geht hier ja nun nicht um diesen fixen Ursprung (1.1.70 00:00:00) in der gesuchten Zeitkoordinate, sondern um dessen Differenz zum anderen Ende des Zeitstrahls, also um den "Nutz-Zeitwert" aus der realen Welt. Und der "floatet" natürlich durch das reale Jahr, je nach Anwendungsfall.

                      Entstammend aus realen Eventzeitpunkt in lokaler oder Systemzeit (also "anderes Zeit-Koordinatensystem"), liegt dieser dann aber sehr wohl ursprünglich in Sommer- oder Winterzeit, bevor der dann in die "Sommerzeitumschaltungslose" UTC umgerechnet wird. Also mal mit und mal ohne SZ-Zeitverschiebung, je nach Event-Zeit.

                      Genau das berücksichtig aber zum Glück der JS Befehl in der genannten Function.. Ohne dem muss man das aber selber nachbilden. Oder es funktioniert dann eben nur ...ähm... zeitweise.

                      Egal, Zeitberechnungen haben so manch lustige Effekte, wenn man mal mehr ins Detail schaut. Das hier ist noch einer der einfachsten.

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      799

                      Online

                      32.4k

                      Benutzer

                      81.6k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe