Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Listen sortieren, mal gehts, mal nicht

    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

    Listen sortieren, mal gehts, mal nicht

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

      @joeysch
      Was möchtest Du erreichen? Die 4 günstigsten und / oder teuersten zusammenhängenden Stunden?
      Dann müssen die Preise von jeweils 4 aufeinanderfolgenden Stunden summiert und die Summen in eine Liste geschrieben werden, die anschließend nach den Summen sortiert wird.

      Blockly_temp.JPG

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

        @paul53
        Was ich erreichen möchte ist, das ich meine Batterie zu den günstigen Stunden lade und den teuren Stunden entlade.
        Das müssen aber nicht zwingend aufeinanderfolgende Stunden sein. Ebenso kann es sein, dass die teuren Stunden vor den günstigen liegen. Beispiel: die teuerste Zeit ist morgens um 8.00 Uhr und die günstigste abends um 23.00 Uhr. An diesem Tag macht es also auch keinen Sinn zu laden.
        Das habe ich jetzt auch soweit am laufen.
        1a7c3389-3fdc-4aa0-a5af-f117e665bbe3-image.png 9278d599-7b06-49cf-a3a7-9dbe501351cc-image.png 4ab5d3b0-20a0-41d9-8dad-2546ca4553bf-image.png ce50dd88-43eb-454a-9328-6196eac4a096-image.png 11e6bfdf-9e74-4257-b88f-a2cd22cfefb4-image.png 854b7745-dadb-43e9-a171-71da47c522b2-image.png

        Wenn dir was auffällt was falsch ist oder verbessert werden kann, immer her damit, ich will ja lernen.

        Damit hab ich die Werte die ich brauche und mir in die Datenpunkte schreibe.
        Daraus hab ich mir dann eine VIS gebastelt.
        9bd23607-445f-4a6f-b21a-3c64cf2861d9-image.png

        Als nächstes muss ich mir was basteln um die Batterieladung /- entladung über Modbus zu steuern.
        Ich habe ca. 29Kwh Speicherkapazität und kann mit bis zu 12Kw laden. Das heißt, wenn ich wie im Beispiel 4 günstige Stunden habe, kann ich die Ladeleistung etwas eindrosseln, wenn nur 1 Stunde günstig ist volle Leistung.

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

          @joeysch sagte: Das müssen aber nicht zwingend aufeinanderfolgende Stunden sein.

          Dann muss nur geprüft werden, ob die aktuelle Uhrzeit Bestandteil der Liste ist. Sortieren ist nicht erforderlich. Ich vermisse in deinem Blockly einen Trigger.

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

            @paul53 sagte in Listen sortieren, mal gehts, mal nicht:

            Ich vermisse in deinem Blockly einen Trigger.

            Den hab ich erstmal rausgelassen um zu testen.
            Hab jetzt einen Zeittrigger auf 0:01 Uhr drin.

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

              @joeysch sagte: Hab jetzt einen Zeittrigger auf 0:01 Uhr drin.

              Man muss die Uhrzeit jede Stunde prüfen, wenn man Schaltoperationen davon abhängig machen will. Bei Werten von z.B. "18:00" in den Listen ist "18:01" zu spät. Deshalb verwende ich auch nur Stunden als Zahl in Listen.

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

                @paul53

                Moment, dieser Blockly soll eigentlich nur dafür da sein um die günstigsten und teuersten Stunden zu separieren. Hier wird noch nichts geschaltet oder geregelt. Da Tibber die Daten nur zweimal am Tag aktualisiert, um 0:00 Uhr und um 13:00 Uhr (für den Folgetag) schreibe ich mir die um 0:01 Uhr in die DP's. Diese verwende ich dann im folgenden Blockly weiter.

                Hier mal mein Ansatz um den Ladestrom an die Anzahl der nacheinander verfügbaren günstigen Stunden zu regeln.
                Was sagst du dazu?
                ec562cfa-cf04-461a-af60-3eee07d76f2b-image.png

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

                  @joeysch sagte in Listen sortieren, mal gehts, mal nicht:

                  Diese verwende ich dann im folgenden Blockly weiter.

                  In Ordnung.

                  @joeysch sagte in Listen sortieren, mal gehts, mal nicht:

                  Was sagst du dazu?

                  Funktioniert so nicht. Die Prüfung oben ist falsch: Oder-Verküpfung von ms und Vergleich mit "hh:mm".

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

                    @paul53

                    So sollte es gehen
                    c5c20ed8-8228-4c82-b525-c8ff672c2567-image.png

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

                      @joeysch sagte: So sollte es gehen

                      Nein. Man benötigt eine Oder-Verknüpfung von 4 Vergleichen. In welchem Format stehen die Zeiten in den Datenpunkten "guenstigste_zeit_N"?

                      Blockly_temp.JPG

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

                        @paul53

                        z.B. 4:00

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

                          @joeysch sagte: z.B. 4:00

                          Also ohne führende "0" vor "10:00" Uhr? Dann muss anders formatiert werden:

                          Blockly_temp.JPG

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

                            @paul53
                            Ok, ich hatte es jetzt so geändert.
                            d5bd32b4-9621-458e-961f-28873213d01c-image.png

                            Zum Verständnis: Es müsste doch beides gehen?

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

                              @joeysch sagte: Es müsste doch beides gehen?

                              Teste es.

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

                                @joeysch sagte: Batterie zu den günstigen Stunden lade und den teuren Stunden entlade.

                                Wenn man die nach Preisen sortierte Liste mit 24 Objekten in einen Datenpunkt vom Typ "array" schreibt, kann man die Liste für die Batterieladung und -entladung in einem weiteren Skript auswerten:

                                Blockly_temp.JPG

                                EDIT: Hier das Skript zum Erstellen der Liste mit 24 Objekten:

                                Blockly_temp.JPG

                                Da der Adapter um Mitternacht alle Werte neu schreibt, sollte man ihm ein paar Sekunden Zeit geben, bevor man die Datenpunkte einliest.

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

                                  @paul53
                                  So wie ich das lese, lädt und entlädt das System bei günstigsten bzw. teuersten Preisen.
                                  Aber, die Werte des zweiten Tages kommen erst ab 13.00 Uhr. Mann müsste noch die Verluste die durch das Laden und Entladen berücksichtigen (ca.20%) und was ist, wenn die teuerste Zeit vor der günstigsten liegt.

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

                                    @joeysch sagte: die Werte des zweiten Tages kommen erst ab 13.00 Uhr.

                                    Die spielen keine Rolle, da nur um kurz nach Mitternacht die Werte des aktuellen Tages geholt werden. Es wird nach den Preisen des aktuellen Tages sortiert. Die Reihenfolge der Stunden spielt keine Rolle.

                                    Sollen die Preise des nächsten Tages auch berücksichtigt werden, muss am Nachmittag noch einmal eine Abfrage starten, die allerdings nicht nur die Werte unter "PricesToday" verwenden kann.

                                    @joeysch sagte in Listen sortieren, mal gehts, mal nicht:

                                    Mann müsste noch die Verluste die durch das Laden und Entladen berücksichtigen (ca.20%)

                                    Das muss man bei der Ermittlung von "Aufladedauer" und "Entladedauer" (in Stunden) berücksichtigen.

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

                                      @paul53 sagte in Listen sortieren, mal gehts, mal nicht:

                                      Das muss man bei der Ermittlung von "Aufladedauer" und "Entladedauer" (in Stunden) berücksichtigen.

                                      Ich glaube das hast du falsch verstanden. Durch die Verlustleistungen beim Laden und Entladen, müssten die günstigsten Preise x 1,2 genommen werden und mit den teuersten verglichen. Erst wenn dieser Preis immer noch günstiger ist, lohnt sich das laden wenn nicht, dann auch nicht laden.

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

                                        @joeysch sagte: günstigsten Preise x 1,2 genommen werden und mit den teuersten verglichen.

                                        Ist das Verhältnis nicht immer größer als 1,2?

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

                                          @paul53
                                          Nein, mal angenommen der teuerste Preis für diesen Tag wären 0,30 € dann wäre der höchstmögliche günstige Preis an dem es sich noch lohnen würde die Batterie zu füllen 0,30/1,2=0,25€ und selbst da wäre es noch Energieverschwendung weil ich für den gleichen Preis 20% der Energie vernichte.
                                          Ich muss ja erst aus Wechselstrom Gleichstrom machen und dann wieder zurück. D.h. ich ziehe 1,2Kwh aus dem Netz um nachher 1 Kwh zu haben.

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

                                            @joeysch
                                            Dann prüfe die zwei teuersten Preise gegen die zwei günstigsten Preise:

                                            Blockly_temp.JPG

                                            So einfach ist es, wenn man in der sortierten Liste ein Objekt mit hour und price hat.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            424
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            143
                                            8971
                                            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