Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Rechnen mit Zeiten - einfaches Skript geht nicht!

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Rechnen mit Zeiten - einfaches Skript geht nicht!

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

      Hallo,
      ich bin beim Experimentieren mit einem Coutdownzähler, aber ich hänge an einem Problem, mit der Zeitberechnung.
      Warum werden in diesem Skript die Zeiten nicht korrekt addiert, was ist da falsch?

      a38ce868-1ca8-4bf6-b7db-b2bdf8c63c45-grafik.png

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

        @brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:

        Warum werden in diesem Skript die Zeiten nicht korrekt addiert, was ist da falsch?

        da gibt es mehrere Möglichkeiten, die man über debug Bausteine eingrenzen sollte:

        • "steuere CD-Zeit" liegt außerhalb des falls, wird also auch wenn Zeit setzen NICHT wahr ist ausgeführt,
        • Was steht im state "Codes für Stoppuhr" ?
          • Inhalt und Typ?
        B 1 Reply Last reply Reply Quote 0
        • B
          brokeling @Homoran last edited by brokeling

          @Homoran said in Rechnen mit Zeiten - einfaches Skript geht nicht!:

          @brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:

          Warum werden in diesem Skript die Zeiten nicht korrekt addiert, was ist da falsch?

          da gibt es mehrere Möglichkeiten, die man über debug Bausteine eingrenzen sollte:

          • "steuere CD-Zeit" liegt außerhalb des falls, wird also auch wenn Zeit setzen NICHT wahr ist ausgeführt,
          • Was steht im state "Codes für Stoppuhr" ?
            • Inhalt und Typ?

          Mit diesem Skript will ich Zahlen ("Codes für Stoppuhr") - wenn sie sich gändert bzw. aktualisiert haben - auf die (vorher gesetzte) aktuelle Zeit aufsummieren.
          Die aktuelle Zeit soll sich "CD-Zeit" nur holen, nachdem ein "reset" mit "Codes für Stoppuhr"= 0 gesetzt war. Jede weitere Ändeurng der "Codes" soll dazu führen, dass auf CD-Zeit weitere "Codes"-Werte summiert werden.
          Also aus meiner Sicht alles richtig so. Nur geht es halt nicht...
          "Codes" sind Zahlen zwischen -60 und 3600

          Homoran paul53 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @brokeling last edited by

            @brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:

            "Codes" sind Zahlen zwischen -60 und 3600

            Zahlen oder Texte mit "Ziffern"?

            Was haben denn die debug-Bausteine, die du inzwischen eingebaut hast ausgegeben?

            B 1 Reply Last reply Reply Quote 0
            • B
              brokeling @Homoran last edited by

              @Homoran
              Das sind schon echte Zahlen (type: "number").

              81eaa843-5aa3-4d70-8a51-7821320fcf05-grafik.png

              wenn ich z. B. Codes mit 0 resetten will kommt, also aktuelle Zeit wird nicht übernommen, sondern eine bereits früher aufaddierte Zahl:

              javascript.0	2020-12-06 12:55:56.074	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Reset
              javascript.0	2020-12-06 12:55:56.074	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: 51457
              javascript.0	2020-12-06 12:55:56.073	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: 46556
              javascript.0	2020-12-06 12:55:56.073	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Nullung:
              javascript.0	2020-12-06 12:55:56.072	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Trigger
              
              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @brokeling last edited by

                @brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:

                wenn ich z. B. Codes mit 0 resetten will kommt, also aktuelle Zeit wird nicht übernommen, sondern eine bereits früher aufaddierte Zahl:

                ich schrieb doch, dass der berechnete Befehl auch ausgeführt wird wenn "Zeit setzen" false ist.

                B 1 Reply Last reply Reply Quote 0
                • B
                  brokeling @Homoran last edited by brokeling

                  @Homoran
                  ja schon, aber ich resette ja mit 0, also wird 0 dazu addiert, also müsste die Zahl "CD Zeit" mit der aktuellen Uhrzeit in Sekunden identisch sein.

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

                    @brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:

                    @Homoran
                    ja schon, aber ich resette ja mit 0, also wird 0 dazu addiert, also müsste die Zahl "CD Zeit" mit der aktuellen Uhrzeit in Sekunden identisch sein.

                    Dann dürfte aber danach der debug NULLUNG nicht erscheinen.

                    B 1 Reply Last reply Reply Quote 0
                    • B
                      brokeling @Homoran last edited by

                      @Homoran said in Rechnen mit Zeiten - einfaches Skript geht nicht!:

                      Dann dürfte aber danach der debug NULLUNG nicht erscheinen.

                      Nullung darf schon erscheinen, wenn vorher auch schon mal genullt wurde, denn dann wird ja die IF Anweisung durchgeführt, wegen "Zeit setzen"=wahr

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

                        @brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:

                        @Homoran said in Rechnen mit Zeiten - einfaches Skript geht nicht!:

                        Dann dürfte aber danach der debug NULLUNG nicht erscheinen.

                        Nullung darf schon erscheinen, wenn vorher auch schon mal genullt wurde, denn dann wird ja die IF Anweisung durchgeführt, wegen "Zeit setzen"=wahr

                        Dann war dein Log aber unvollständig, oder?

                        B 1 Reply Last reply Reply Quote 0
                        • B
                          brokeling @Homoran last edited by

                          @Homoran
                          ich mach das gleich nochmal und stelle es rein. Vorher setze ich den Wert "CD Zeit" mal händisch auf 0.

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

                            @brokeling Ich habe mir das Blockly noch mal angesehen

                            Ich habe mich von dem debug "Nullung" in die Irreführen lassen.

                            Die Nullung findet doch im zweiten falls-Block statt, dann würde ich da auch den debug hinsetzen

                            B 1 Reply Last reply Reply Quote 0
                            • B
                              brokeling @Homoran last edited by brokeling

                              @Homoran
                              Im zweiten Falls-Block wird für mich die Nullung nur ermöglicht. Die Nullung erfolgt dann im ersten Falls-Block, wenn "CD Zeit" mit der aktuellen zeit gleichgesetzt wird. Das ist für mich die Nullungs-Zeit.
                              Auf diese Nullungszeit sollen die Sekunden für einen Countdown aufaddiert werden.
                              Das Blockly ist ja nur ein teil meines Programms, nur auf das Wesentliche eingeschrumpft, das offensichtlich nicht funktioniert.

                              hier nochmal die Ausgabe nach einem "Reset" mit Code=0

                              javascript.0	2020-12-06 13:50:55.518	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Reset
                              javascript.0	2020-12-06 13:50:55.518	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: 0
                              javascript.0	2020-12-06 13:50:55.517	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: 49855
                              javascript.0	2020-12-06 13:50:55.517	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Nullung:
                              javascript.0	2020-12-06 13:50:55.514	info	(19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Trigger
                              

                              Die aktuelle Zeit wird nich übernommen, CD Zeit bleibt bei 0.

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

                                @brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:

                                Das Blockly ist ja nur ein teil meines Programms, nur auf das Wesentliche eingeschrumpft, das offensichtlich nicht funktioniert.

                                da muss ich mich dann nochmal reindenken!

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

                                  @brokeling sagte:

                                  Nur geht es halt nicht...

                                  Das liegt an der asynchronen Ausführung von "steuere CD Zeit". Beim Einlesen des gleichen Datenpunktes für die Addition wird der alte Wert verwendet. Benutze Variablen !

                                  Blockly_temp.JPG

                                  Wert findet man unter "Trigger".

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

                                    @paul53
                                    Herzlichen Dank, das MUSS die Lösung sein!
                                    Da mache ich mich bald dran...

                                    Aber was meintest du mit "Wert findet man unter Trigger"?

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

                                      @brokeling sagte:

                                      was meintest du mit "Wert findet man unter Trigger"?

                                      zeit und zeit_setzen sind selbst erstellte Variablen. Wert ist hingegen eine Eigenschaft des Trigger-Datenpunktes, hat aber die gleiche Farbe wie eine selbst erstellte Variable.

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      888
                                      Online

                                      32.0k
                                      Users

                                      80.4k
                                      Topics

                                      1.3m
                                      Posts

                                      3
                                      17
                                      563
                                      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