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 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
                                    • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            903
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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