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.
    • 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
                      • J
                        joeysch @paul53 last edited by

                        @paul53
                        Ja, ähnlich hatte ich es ja gestern, dank deiner Hilfe, auch aufgebaut. Der Tip mit den Objekten war der entscheidende.
                        Ich ziehe allerdings noch einige Werte raus und schreibe sie in Datenpunkte um das Ganze in VIS zu verwursten.
                        Ab Januar bin ich dann bei Tibber. Interessant ist das Ganze ja nur für die dunkle Jahreszeit, ansonsten ist die Batterie ja immer voll vom Dach.

                        1 Reply Last reply Reply Quote 0
                        • E
                          Einstein 0 last edited by Einstein 0

                          Hallo Gemeinde,
                          habe ebenfalls vor meine 4 günstigsten Tibberstunden in einem Block als "Ladestunden" an den Wechselrichter zu schicken.

                          Folgendes Problem weis ich grad nicht wie ich das per Script verpacken soll.

                          Es werden die 4 günstigesten Stunden zwischen 22Uhr und 06Uhr ermittelt und jeweils in ein Objekt geschrieben.
                          Das funktioniert wunderbar.
                          Leider sind die günstigsten Stunden quer Beet verteilt.

                          Ich grüble jetzt wie ich die Zahlen 22, 23, 0, 1, 2, 3, 4, 5, 6 aufsteigend sortieren kann, jedoch beginnend mit 22.

                          Beispiel günstigeste Stunden von heute:
                          b986e551-3362-4348-999e-d4d3c3e212df-grafik.png

                          D.h. die Sortierung müsste heute so ausehen: 23, 2, 3, 4

                          Meine Liste spukte diese Werte aus:
                          cc72be75-eb27-4455-9acc-128324f2aed1-grafik.png

                          Vieleicht hat ja jemand eine spontane Idee, wie man das in Blockly umsetzen kann.

                          Gruß Einstein

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

                            @einstein-0 sagte: aufsteigend sortieren kann, jedoch beginnend mit 22.

                            Wozu?

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

                              @paul53 damit ich sagen kann, fange mit der ersten günstigsten Stunde an zu laden. In dem Beispiel von heute wäre das die Stunde 23 und nicht die Stunde 3.

                              Das Problem ist ja, dass wir es hier mit Stunden zu tun haben und wenn ich abwärts sortiere wäre das heute 2, 3, 4, 23. Nur kommt die 23 vor der Stunde 2.

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

                                @einstein-0 sagte: fange mit der ersten günstigsten Stunde an zu laden.

                                Man muss nur prüfen, ob die aktuelle Stunde in der Liste der günstigsten Stunden enthalten ist, da die Stunden ohnehin nicht zusammenhängend sind. Etwa so:

                                Blockly_temp.JPG

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

                                  @einstein-0
                                  Heute siehts so aus:
                                  466db8de-f468-4b07-9cde-d6f231eb38b6-image.png
                                  Tendenziell liegen die günstigsten Stunden zwischen 0-6 Uhr. Aber ich gebe dir Recht, vorgestern hatten wir den Fall, dass der günstigste Tarif um 23.00 Uhr war.
                                  Wenn du das so machst wie du es beschreibst, bist du ja immer schon im Folgetag. Das heisst aber, dass du die Werte erst gegen 13.00 Uhr Mittags bekommst. Wenn du es so machst wie ich oben beschrieben hab, Daten loggen nach 0:00 Uhr kannst du die günstigen Nachtstunden zum laden mitnehmen und in den teureren Stunden, meist morgens gegen 8:00 Uhr und abends gegen 18:00 Uhr, nutzen. Ob der Preis dann um 23:00 Uhr günstig ist, weiß du aber erst nach 13:00 Uhr.

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

                                    @joeysch ja, genau. Mein Script zur Ermittlung der 4 günstigsten Stunden läuft um 14 Uhr. Das Ladescript beginnt um 22 Uhr und soll in den 4 Stunden dann laden.
                                    Drum brauche ich eine Sortierung beginnend mit 22.

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

                                      @einstein-0
                                      Aber dann ist es doch egal, wenn du das Skript von @paul53 wie oben beschrieben nimmst, lädt das System um 23:00 Uhr egal an welcher Stelle es in der Liste steht. Es durchläuft die Zeiten die in der Liste stehen und aktiviert den Ladevorgang zur entsprechenden Zeit.

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

                                        @joeysch
                                        würde das so passen?
                                        Weil die letzte "Steuerung mit Laden" fehlt bei mir. Da muss ich alle 4min an den SMA SunnyIsland die Befehle schicken.

                                        e6997beb-509a-40b4-a0f8-e20de05588e7-grafik.png

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

                                          @einstein-0 sagte: würde das so passen?

                                          Es muss alles in einen Stunden-Trigger.
                                          Zum Schluss: falls laden mache: die zwei Steuere-Blöcke

                                          Blockly_temp.JPG

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

                                            @einstein-0
                                            Also, da ist @paul53 sicher mehr der Fachmann.
                                            Meiner Meinung nach fehlt ein Trigger der das Ganze anwirft.
                                            Dann würde ich einen weiteren Trigger auf die Variable "laden" setzen und dann über einen Timeout/Intervall Baustein die Steuerung des SMA solange ausführen bis die Variable "false" wird.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            698
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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