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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Script lässt Instanz abstürzen

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

      @benutzer0815
      In welchem ID-Baum befinden sich die Datenpunkte?

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

        @paul53 10ff44b0-6cd2-4d8e-9f6c-b1a597964a94-image.png

        @Codierknecht
        3295242d-32ef-4cc7-8e20-261f664515a9-image.png

        Da wird mir undefined ausgegeben

        EDIT Weil ich den roten Block als Variable erstellt hab, damit das so ausieht wie bei dir. Aber ist ja quatsch ich müsste das so machen:
        d91e55ed-6715-4ee0-971e-8f66b0c6deeb-image.png

        Oder?

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

          @paul53 71296a06-1ee8-4791-9446-e8c2491b85ac-image.png

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

            @benutzer0815
            Das sind eigene Datenpunkte. Die werden mittels Skript geschrieben (aktuell gehalten)?

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

            ich müsste das so machen:

            ... oder besser so:

            Blockly_temp.JPG

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

              @paul53 Ah jetzt habe ich den richtigen Baustein gefunden.
              Allerdings ist nun die Sonne gerade untergegangen und der Wert ändert sich daher nicht mehr.

              Die Datenpunkte werden mittels nodered aus dem Huawei Wechselrichter ausgelesen. An diesem ist das Smartmeter auch angeschlossen.

              1 Reply Last reply Reply Quote 0
              • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            634
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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