Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Zeitdifferenz berechnen

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Zeitdifferenz berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User last edited by

      Hallo und guten Morgen 🙂

      wie kann ich denn die Zeitdifferenz zwischen der aktuelle Zeit und einem Datenpunkt, der einen Zeitstempel erhält, ermitteln?

      Danke euch

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

        @Alina
        Blockly_temp.JPG

        ? 2 Replies Last reply Reply Quote 0
        • ?
          A Former User @paul53 last edited by

          @paul53

          Danke Dir. Aber wo find ich das Elelement "setze..."; das habe ich schon paar Mal gesucht und nie gefunden. Oder muss ich dazu erst eine Variable anlegen? Im moment habe ich dafür einen DP definiert und vorgesehen

          Danke

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

            @Alina sagte:

            muss ich dazu erst eine Variable anlegen?

            Ja. Die Variable diente auch eher als Kommentar zum Ergebnis der Berechnung. Man kann auch direkt in einen Datenpunkt schreiben.

            ? 1 Reply Last reply Reply Quote 0
            • ?
              A Former User @paul53 last edited by

              @paul53 Danke aber ich habe nun alle Elemente durchsucht, nur ich find diese Funktion "setze..." einfach nicht 😵

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

                @Alina sagte:

                ich find diese Funktion "setze..." einfach nicht

                Die wird auch erst angeboten, nachdem mind. eine Variable erstellt wurde.

                Blockly_temp.JPG

                ? 1 Reply Last reply Reply Quote 0
                • ?
                  A Former User @paul53 last edited by

                  @paul53 Ah ich hab es. Und wie bringe ich dann die Variable auf den DP? Weil ich ja aktuell nur auf die Variable schreiben kann. Oder nehme ich da ein anderes Element dann für?

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

                    @Alina sagte:

                    wie bringe ich dann die Variable auf den DP?

                    Blockly_temp.JPG

                    ? 1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User @paul53 last edited by

                      @paul53

                      Stimmt, sorry für die letzte doofe Frage. Viele Vielen Dank 💃

                      1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User @paul53 last edited by

                        @paul53 Und das Ergebnis sind dann Sekunden, richtig?

                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Guest last edited by

                          @Alina diff_in_ms

                          ? 1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User @Homoran last edited by

                            @Homoran Simmt. Steht da. Danke ✌ )

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              Matthias I @Guest last edited by

                              Hallo,

                              ich möchte gerne meinen Rasenmähroboter "smart" machen um folgendes Problem zu lösen:
                              Der Robotor fährt derzeit nach eingestelltem Zeitplan, jedoch nicht, wenn es regnet oder die Terrassentür geöffnet ist (damit er dem Hund nicht über die Pfote fährt). Hierdurch wird die wöchentliche Mähzeit jedoch zum Teil so stark reduziert, dass der Rasen unzureichend gemäht wird. Das verlängern der Zeitintervalle führt umgekehrt dazu, dass bei anhaltend regenfreiem Wetter und geschlossener Terrassentüre der Rassenrobbi so lange fährt, dass an den Rändern, wo er sich dreht kein Gras mehr wechst.

                              Ich weiß aus Erfahrung jedoch wie lange der Robbi wöchentlich in etwa mähen muss, damit das Gras "im Zaum gehalten wird" und keine kahlen Stellen entstehen.

                              Mein Plan ist deshalb den Zeitplan des Mähroboters zu erweitern, ihn aber nur dann mähen zu lassen, wenn die wöchentliche max. Mähzeit nicht überschritten ist und ihn bei unterschreiten einer minimalen Mähzeit am Wochenende auch außerhalb des Zeitplans mähen zulassen, um "Mähzeit nachzuholen".

                              Also möchte ich mir gerne vom ioBroker berechnen lassen, wie lange mein Rasenmähroboter gemäht hat.
                              Dazu soll wenn der Datenpunkt Zustand auf "mähen" springt, die Startzeit erfasst werden und wenn sich der Zustand ändert soll die Endzeit erfasst werden.
                              Aus Endzeit - Startzeit soll dann die Mähdauer in der Form SS:MM:ss berechnet werden.
                              Das habe ich folgendermaßen umgesetzt:

                              Bild_2021-03-04_170945.png

                              Bei der Berechnung der Mähzeit stimmt aber leider der ausgegebene Wert nicht! Dieser ist immer um genau 1 Std. zu hoch!
                              Könnt ihr mir sagen, was ich falsch mache?
                              Kann es damit zusammen hängen, dass Systemzeit und Zeitstempel (WARUM AUCH IMMER) 1 Stunde auseinander liegen?

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

                                @matthias-i sagte: Mähdauer in der Form SS:MM:ss berechnet werden.

                                Die Formatierung berücksichtigt die Zeitzone, die man kompensieren muss.

                                Es genügt ein Trigger beim Ausschalten (ist kleiner als letztes).

                                Bild_2021-03-04_173245.png

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  Matthias I @paul53 last edited by

                                  @paul53 Vielen Dank, das habe ich hinbekommen 🙂

                                  Die Fahrdauer wird jetzt richtig berechnet, jetzt müsste ich nur noch wissen, wie man Zeiten addieren kann.
                                  D.h. wie kann ich zwei Datenpunkte (Zeichenkette in der Form SS:MM:ss) miteinander addieren?

                                  Noch eleganter wäre es natürlich eine Liste "TagMähzeiten" anzulegen, die um Mitternacht geleert wird und in der die einzelnen Mähzeiten eingetragen und zum Schluss addiert werden. Ist so etwas auch umsetzbar? (Mit Listen habe ich noch nicht gearbeitet.)

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

                                    @matthias-i sagte: jetzt müsste ich nur noch wissen, wie man Zeiten addieren kann.

                                    "erhöhe einschaltdauer" kumuliert bereits. Man müsste also den Wert einmal pro Woche auf 0 zurück setzen.

                                    M 2 Replies Last reply Reply Quote 0
                                    • M
                                      Matthias I @paul53 last edited by

                                      @paul53 ich habe das auf folgendem Wege gelöst:
                                      Bild_2021-03-04_185032.png
                                      Im nächsten Schritt müsste jetzt "LaufzeitAktuell" nach jedem Mähen zu "LaufzeitTag" addiert werden.

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        Matthias I @paul53 last edited by

                                        @paul53 ich habe es wie folgt hinbekommen:
                                        Datum/Zeit nach String konvertiert.
                                        Den String "Ziffer" für Ziffer (also ZehnerStunde, EinerStunde, ZehnerMinute, EinerMinute, ZehnerSekunde, EinerSekunde) in Variablen überführt.
                                        Dann stellenweise addiert und ggf. Überträge verrechnet.
                                        Dann den String mit der korrekten Zeitdauer konvertiert nach Datum/Zeit.

                                        Das funktioniert, aaaber: Geht das nicht leichter/einfacher/schneller?
                                        Besteht keine Möglichkeit zwei Datenpunkte der Form SS:MM:ss zu addieren, sodass das Ergebnis ebenfalls das Format SS:MM:ss hat?

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

                                          @matthias-i sagte: Geht das nicht leichter/einfacher/schneller?

                                          Ja.

                                          @matthias-i sagte in Zeitdifferenz berechnen:

                                          Besteht keine Möglichkeit zwei Datenpunkte der Form SS:MM:ss zu addieren, sodass das Ergebnis ebenfalls das Format SS:MM:ss hat?

                                          Man kann nur Zahlen addieren, keine Strings.

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            Matthias I @paul53 last edited by

                                            @paul53 Wie kann man das realisieren?
                                            Wenn ich dich richtig verstehe müsste man ja dann SS:MM:ss je zu einer Zahl konvertieren, dann die Addition vornehmen und dann von Zahl wieder zu SS:MM:ss konvertieren? Könntest du mir sagen, wie das geht?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            987
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            16
                                            89
                                            13671
                                            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