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.
    • 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

                                    885
                                    Online

                                    32.0k
                                    Users

                                    80.4k
                                    Topics

                                    1.3m
                                    Posts

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