Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script lässt Instanz abstürzen

    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

    Script lässt Instanz abstürzen

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

      @paul53 f36c171f-558a-41af-be50-e76123af28d3-image.png
      Tatsächlich, also wenn ich mir den Wert im Objektbaum ansehe, waren es um die 2500.

      B Codierknecht 2 Replies Last reply Reply Quote 0
      • B
        Benutzer0815 @Benutzer0815 last edited by

        @benutzer0815 Ok jetzt geht's.

        Nun sieht mein Skript so aus:

        994524b3-db30-4f2b-a23d-3b7cfc07165c-image.png

        In meiner Variable steht immer nur NaN. Das steht für Not a Number? Das verwirrt mich mehr als ds ich damit was anfangen kann.

        Wie ist denn die Reihenfolge der Abarbeitung? Kann es sein das er jedesmal eine neue Liste erstellt und dadurch dort immer nur ein Wert drin steht?

        Also eigentlich soll er ja nur einmal eine neue Liste erstellen und dann immer alle 10 Sekunden die Schleife durchlaufen. Ist das so oder erstellt er eine neue Liste, macht die Schleife und dann wieder eine neue Liste und dann nach 10 Sekunden wieder die Schleife usw?

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @Benutzer0815 last edited by

          @benutzer0815
          Was mit dem Script ausgegeben wird, steht zu genau diesem Zeitpunkt auch im Objektbaum.
          Alles andere schließe ich mal kategorisch aus.

          Ich bin ausnahmsweise mal im Büro, habe daher keinen ioBroker parat - darum nur Theorie:
          Du änderst das letzte Element der Liste und löscht dann das erste. Dann ist die Liste immer leer.
          Ich denke mal, dass Du eigentlich ein neues Element anhängen wolltest, oder?

          B 1 Reply Last reply Reply Quote 0
          • B
            Benutzer0815 @Codierknecht last edited by Benutzer0815

            @codierknecht Ja schon aber das erste Element soll er ja nur löschen wenn die Liste = oder > 10 Elemente ist.

            Am Anfang soll also die Liste erstmal gefüllt werden und wenn sie voll ist, sollen immer nur die letzten 9 Werte behalten werden.

            Ich habe gerade mal folgendes getestet:

            37beaa5c-b3da-4d1f-b17b-62fae8e6ea42-image.png

            Sieht so aus als wenn das rundum des Zeitplans zuerst einmal ausgeführt wird und dann nie wieder. Also erst "Anfang", dann wird die 10-Sekunden-Schleife übersprungen und dann kommt "Ende" und dann geht es mit der Schleife los.
            Seltsam.

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

              @benutzer0815 So nun scheint es zu funktionieren.

              Vielen Dank für die Unterstützung!

              7114ad17-4d77-4264-9b61-9959f8c99029-image.png

              B Codierknecht 2 Replies Last reply Reply Quote 0
              • B
                Benutzer0815 @Benutzer0815 last edited by

                @benutzer0815 Nun muss ich mich nur noch an die Optimierung machen. Also das die Ganze nacht nicht das Skript immer läuft.

                9059cfd2-3d38-4988-8f67-1ecbab560065-image.png
                Das Datum Objekt ist eine Nummer und dasStartUp Objekt ist ein String. Wie bekommt man das am Besten zusammen?

                Oder meint ihr das Optimieren macht in diese Richtung keinen Sinn?

                paul53 1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @Benutzer0815 last edited by

                  @benutzer0815
                  Lass Dir mal mit Debug die Liste ausgeben 😉

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    Benutzer0815 @Codierknecht last edited by

                    @codierknecht Hab ich. Sieht gut aus.

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

                      @benutzer0815 sagte: Wie bekommt man das am Besten zusammen?

                      Wie hier gezeigt.

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

                        @paul53 Super danke!

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

                          @benutzer0815 b88b91bc-7757-4c8d-a824-16a1f846b2a0-image.png

                          So wird nun jede Millisekunde geprüft ob die aktuelle Zeit dazwischen liegt, oder? Ist ja nicht gerade ressourcenschonend. Also das Ganze noch in einen Zeitplan von einer Minute packen, oder?
                          Aber dann macht er ja die eigentliche Berechnung nur alle 70 Sekunden, oder?

                          paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                          • paul53
                            paul53 @Benutzer0815 last edited by paul53

                            @benutzer0815 sagte: jede Millisekunde geprüft ob die aktuelle Zeit dazwischen liegt, oder?

                            Nein, nur einmal bei Skriptstart. Die Uhrzeitprüfung muss in den 10-s-Trigger!

                            B 1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @Benutzer0815 last edited by

                              @benutzer0815
                              Der Trigger bzw. Zeitplan ist immer das äußere Element. Alles andere kommt in den Trigger/Zeitplan.

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

                                @paul53 Ja habe ich mir auch gerade schon gedacht. So ne?

                                72cde6b8-8424-454b-b117-25685981db1b-image.png

                                Ist die Frage was ressourcenschonender ist, alle 10 Sekunden noch die Zeitabfrage machen und dafür nachts die Mittewertberechnung und das Variablenbeschreiben sparen oder tagsüber die Zeitabfrage sparen und dafür nachts auch die Berechnung machen.

                                Habt ihr dafür ein Gefühl was sinniger ist?

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

                                  @benutzer0815
                                  Prüfen ist besser. Man kann zusätzlich noch den CRON-Job auf z.B. 4 bis 22 Uhr eingrenzen:

                                  Blockly_temp.JPG

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    Benutzer0815 last edited by Benutzer0815

                                    @paul53 Wie stellst du das ein?

                                    1c713506-384a-4b4d-8cc0-7c3bc8b8bb8f-image.png

                                    Hab jetzt CRON und WIZARD probiert aber beides mal sieht es nicht so aus wie bei deinem Screenshot.

                                    Und dieser CRON-Job heißt dann nichts anderes als das er diesen Zeitplan nur in der angegebenen Zeit macht und außerhalb pausiert, ja?

                                    paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Benutzer0815 last edited by

                                      @benutzer0815 sagte: Hab jetzt CRON und WIZARD probiert

                                      Nimm CRON.

                                      CRON_Temp.JPG

                                      1 Reply Last reply Reply Quote 0
                                      • Codierknecht
                                        Codierknecht Developer Most Active @Benutzer0815 last edited by

                                        @benutzer0815 sagte in Script lässt Instanz abstürzen:

                                        Hab jetzt CRON und WIZARD probiert

                                        Unter uns: Der WIZARD ist ziemlicher Käse.
                                        Nach meiner Erfahrung funktioniert der eher schlecht als recht.

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        499
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

                                        5
                                        53
                                        2917
                                        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