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.
    • Homoran
      Homoran Global Moderator Administrators @judisi last edited by

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

      bräuchte ich vom 14:30 bis 18:00

      wofür?

      wenn du

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

      awattar.0.prices.(0-47).

      von 0-23:59 in 30 Minütigen Schritten (???) hast kannst du die doch da rausholen

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

                          447
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

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