Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Änderung Timestamp

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Änderung Timestamp

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @DGR last edited by

      @dgr Am einfachsten indem der gleich Wert erneut geschrieben wird.

      D 1 Reply Last reply Reply Quote 0
      • D
        DGR @haus-automatisierung last edited by

        @haus-automatisierung
        ich habe mich nicht korrekt ausgedrückt. Ich möchte einen Wert von gestern mit dem originalen Timestamp in eine andere Datenbank übernehmen. Wenn ich einfach nur den Wert übernehme, dann wird der Timestamp in die Zeit der Übernahme geändert.

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

          @dgr Achso - wie genau wird denn der Wert geschrieben? Per JavaScript (im JavaScript-Adapter) kann man den Timestamp auch manuell mitgeben.

          setState('0_userdata.0.beispiel', { val: 42, ts: 1734424585000 });
          
          D 1 Reply Last reply Reply Quote 1
          • D
            DGR @haus-automatisierung last edited by

            @haus-automatisierung
            ich muss leider zugeben, dass ich mich mit JavaScript nicht so auskenne.. Ich mache das alles mit Blockly.
            Beispiel: aktualisiere xyz mit Wert von abc

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

              @dgr Für Blockly gibt es momentan keinen Baustein wo man einen Zeitstempel manuell übergeben kann. Das soll ja einfach gehalten sein.

              Aber stell doch mal eine konkrete Frage wo es am Verständnis hängt. Du musst Dich ja nicht mit JavaScript auskennen, sondern nur die Objekt-ID anpassen und den Zeitstempel.

              Ich dachte, hier geht es um eine einmalige Sache um einen Wert in die Datenbank zu bekommen. Für doch Dein Problem mal ganz genau aus - dann kann man auch konkreter helfen. Gerade, wenn Detailwissen fehlt.

              S D 2 Replies Last reply Reply Quote 0
              • S
                Siggi0904 @haus-automatisierung last edited by

                @haus-automatisierung ich hatte mir sowas auch einmal gewünscht, da ich alte Zählerstände einlesen wollte. Da bin ich dann auch an den Zeitstempeln gescheitert.

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

                  @siggi0904 Woran denn genau? Klappt der vorgeschlagene Weg von mir nicht?

                  Das kann ja beliebig flexibel ausgestaltet werden. Man muss halt nur darauf achten, dass man das Datum in der richtigen Zeitzone definiert. Sonst landet man schnell bei UTC und hat 1-2 Stunden (je nachdem ob MEZ/MESZ) Abweichung.

                  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
                  const d = new Date('2024-12-17T15:34:00Z'); // UTC!!
                  setState('0_userdata.0.beispiel', { val: 42, ts: d.getTime() });
                  
                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Siggi0904 @haus-automatisierung last edited by

                    @haus-automatisierung naja mangels richtigen Workflow die Datensätze in die Datenbank zu bekommen, hatte ich das aufgegeben.

                    Ich hätte das gern per Blockly realisiert.

                    1 Reply Last reply Reply Quote 0
                    • D
                      DGR @haus-automatisierung last edited by

                      @haus-automatisierung
                      es ist kein wirkliches Problem für mich. Es geht eigentlich um die Darstellung in Grafana. Ich zeige dort den Gasverbrauch der letzten 7 Tage anhand der Daten um jeweils 23:59 des Vortages. Diese Darstellung ging bisher logischerweise nich aktuell für den laufenden Tag. Hier ändern sich die Werte nach einer von mir vorgegebenen Zeit. Ich habe für die tagesaktuellen Werte einen eigenen Datenpunkt mit Übergabe an influxdb2v erstellt, in den ich die aktuellen Werte des Tages eintrage. Für die Darstellung in Grafana lösche ich diese Datenbank mit dem Wert und trage anschließend den neuen aktuellen Wert ein. In Grafana wird dieser Wert natürlich nur als Punkt dargestellt, da es keinen Bezug zu einem vorhergehenden Wert gibt. Dieser vorhergehende Wert wäre der Wert des Vortages um 23:59 Uhr. Wenn ich diesen Wert und zusätzlich den jeweils aktuellen Wert in diese Datenbank eintrage, dann wird der Zeitstempel des Werts vom Vortag in den Zeitstempel des Eintrags geändert. Damit ist es so nicht möglich, eine Verbindungslinie zwischen dem letzten Wert (Vortag) zum aktuellen Wert darzustellen.

                      Wie gesagt, es ist nicht wirklich ein richtiges Problem.
                      Gasverbrauch.JPG

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

                        @dgr sagte in Änderung Timestamp:

                        Ich habe für die tagesaktuellen Werte einen eigenen Datenpunkt mit Übergabe an influxdb2v erstellt, in den ich die aktuellen Werte des Tages eintrage.

                        In dem Fall könntest Du entweder immer nur den letzten Wert je aggregiertem Zeitraum auswählen (last) oder den Wert immer wieder überschreiben. Das macht InfluxDB ja dann automatisch. Also den Zeitstempel für das Ende des Tages berechnen und diesen immer wieder setzen.

                        @dgr sagte in Änderung Timestamp:

                        In Grafana wird dieser Wert natürlich nur als Punkt dargestellt, da es keinen Bezug zu einem vorhergehenden Wert gibt.

                        Werte in InfluxDB stehen generell nie in Bezug zueinander. Oder was verstehe ich falsch.

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          DGR @haus-automatisierung last edited by

                          @haus-automatisierung
                          Mit "Bezug zueinander" meinte ich nur, dass eine Linie vom vorhergehenden Wert zum folgenden Wert dargestellt wird in Grafana.
                          Meine Abfrage in Grafana sieht so aus:

                          from(bucket: "iobroker_all")
                            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                            |> filter(fn: (r) => r["_measurement"] == "ViessmannGas" or r["_measurement"] == "Gasverbr" or r["_measurement"] == "Gas-aktuellerStand")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> truncateTimeColumn(unit: 1d) 
                          

                          Wobei hier "ViessmannGas" z.Zt. nicht dargestellt wird. Die gelbe Linie kommt von den Daten aus "Gasverbr" und der einzelne Punkt aus "Gas-aktuellerStand"

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            DGR @DGR last edited by DGR

                            @dgr
                            ich möchte das Thema zum Abschluss bringen. Ich lösche jetzt alle 20min. Den aktuellen Stand mit influx delete und schreibe den Wert neu in den Datenpunkt. Im Ergebnis sieht das dann so aus (jetzt mit Balkendiagramm) :
                            Screenshot_20250202_232157_Chrome_1.jpg

                            mickemup 1 Reply Last reply Reply Quote 0
                            • mickemup
                              mickemup @DGR last edited by

                              @dgr
                              in Grafana gehen so Sachen elegant mit der aggregatewindow funktion.
                              Da musst du nichts löschen usw...

                              https://docs.influxdata.com/flux/v0/stdlib/universe/aggregatewindow/

                              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

                              751
                              Online

                              31.9k
                              Users

                              80.2k
                              Topics

                              1.3m
                              Posts

                              4
                              14
                              376
                              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