Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Adapter aWATTar mit zwei Zeiträumen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter aWATTar mit zwei Zeiträumen

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      judisi @Homoran last edited by judisi

      @homoran das stimmt. Da habe ich zu kompliziert gedacht. (die Schritte sind stündlich, aber vom heutigen und morgigen Tag)

      wofür ich das brauche: die speicheröfen werden vom Stromversorger "ferngeschalten". Sie bekommen von 14:30 bis 18:00 und von 22:30 bis 6:00 Strom. Damit muss ich mich abfinden.
      Ich würde nun gerne noch eine Schaltung dazwischen montieren, sodass sie nur zu den x günstigen Stunden Strom bekommen (das x wird in der übergangszeit 5, im Hochwinter vermutlich mehr sein).

      Mein Plan wäre nun mit Blockly folgendes zu tun: ich finde den x-teuersten Wert dieser Zeiträume raus. Wenn die volle Stunde dann diesem Wert oder wenig entspricht, dann wird eingeschalten, sonst ausgeschalten.

      Ich werde mich jetzt mal auf die Suche begeben, wie ich den x-teuersten Wert dieser Zeiträume rausfinde ... (also eigentlich sind es dann drei: von 00:00 bis 6:00, von 14:30 bis 18:00 und von 22:30 bis 24:00, wobei ich die halben Stunden wohl ignorieren werde).

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

        @judisi sagte: nur zu den x günstigen Stunden Strom bekommen (das x wird in der übergangszeit 5

        Dann schreibe Preise und Startzeiten, die infrage kommen, in eine Liste und sortiere die Liste nach Preis. Zu den Startzeiten mit den 5 günstigsten Preisen wird eingeschaltet.

        const awattar = 'awattar.0.prices.'
        
        function sortObj(arr, attr) {
            function sortAttr(a, b) {
                return a[attr] - b[attr];
            }
            arr.sort(sortAttr);
        }
        
        var liste = [];
        
        schedule('59 21 * * *', function() {
            liste = [];
            for(let i = 22; i < 30; i++) { // Start 22:00 bis 5:00 Uhr
                const obj = {
                    start: getState(awattar + i + '.start').val,
                    price: getState(awattar + i + '.totalPriceKwh').val
                };
                liste.push(obj);
            }
            for(let i = 38; i < 42; i++) { // Start 14:00 bis 17:00 Uhr
                const obj = {
                    start: getState(awattar + i + '.start').val,
                    price: getState(awattar + i + '.totalPriceKwh').val
                };
                liste.push(obj);
            }
            sortObj(liste, 'price');
        });
        
        schedule('0 * * * *', function() {
            const jetzt = formatDate(new Date(), 'hh:mm:ss');
            let ein = false;
            for(let i = 0; i < 5; i++) {
                if(liste[i].start == jetzt) ein = true;
            }
            // Ein- oder Ausschalten
        });
        
        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @judisi last edited by

          @judisi sagte in Adapter aWATTar mit zwei Zeiträumen:

          Ich werde mich jetzt mal auf die Suche begeben, wie ich den x-teuersten Wert dieser Zeiträume rausfinde ... (also eigentlich sind es dann drei: von 00:00 bis 6:00, von 14:30 bis 18:00 und von 22:30 bis 24:00, wobei ich die halben Stunden wohl ignorieren werde).

          das hatte ich gestern schon für dich fertig, bis ich merkte dass du bereits eine nach BilligsteStunde sortierte Liste hattest 😞

          habs leider wieder gelöscht, sah etwa so aus
          Screenshot_20230922-164759_Firefox.jpg

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

            @homoran sagte: nach BilligsteStunde sortierte Liste

            Diese Liste berücksichtigt nicht die eingeschränkten Uhrzeiten.

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @paul53 last edited by

              @paul53 sagte

              @homoran sagte: nach BilligsteStunde sortierte Liste

              Diese Liste berücksichtigt nicht die eingeschränkten Uhrzeiten.

              richtig! das war noch für gestern, hätte ich jetzt noch angepasst, wenn ich es nicht schon gelöscht hätte.

              @judisi
              würde ich machen, wenn du Bedarf hast und mir das entsprechende JSON zur Verfügung stellst

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

                @judisi sagte: geordnet nach Preis in den Konten awattar.0.pricesOrdered.(0-46).

                Man kann eine sortierte Liste der Startzeiten erstellen, die nur die gültigen Zeiten enthält.

                Blockly_temp.JPG

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

                  @paul53 @Homoran Ihr zwei seid unglaublich. Während ich mich bemühe einen kleinen Teil zu kreieren und zu verstehen, habt ihr schon mehrere Lösungsvarianten vorgeschlagen, die ich in der Zeit nicht mal in blockly reintippen kann, in der ihr sie programmiert. DANKE, DANKE, DANKE.

                  Ich mach jetzt mal einen Probelauf mit dem Blockly von paul53, weil ich Blockly im Gegensatz zu Javascript annähend verstehe.

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

                    @judisi
                    Da die Werte von heute und morgen enthalten sind, muss man wohl auch noch das Datum prüfen: >= 22:30 heute, der Rest morgen.

                    Blockly_temp.JPG

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

                      Klappt wunderbar. Damit ich dem Problem von heute und morgen entgehen kann, hab ich in der Instanz aWATTar1 eingegeben, dass um 19:05 nur die Preise von 22:00 bis 18:00 beachtet werden sollen.
                      Danke diesem wunderbaren Forum, das ohne erhobenen Zeigefinger immer gerne hilft.

                      aWATTarmit2Zeitraeumen.txt

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

                        @judisi sagte: hab ich in der Instanz aWATTar1 eingegeben, dass um 19:05 nur die Preise von 22:00 bis 18:00 beachtet werden sollen.

                        Blockly_temp.JPG

                        Es wird noch kein Gerät geschaltet.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        549
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        3
                        12
                        484
                        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