Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Steckdose schalten bei Einspeisung von PV

    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

    Steckdose schalten bei Einspeisung von PV

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AndreMiBa last edited by

      Hallo zusammen,

      augrund der Neuanschaffung einer PV bin ich ich erst auf den iobroker aufmerksam geworden.
      Das bietet ja tatsächlich so viele Möglichkeiten, klasse 🙂

      Nun beschäftige ich mich mit dem Skripten.

      Von meiner PV bekomme ich u.a. die Werte:

      PV-Total-Power (Wie viel Strom kommt gerade vom Dach
      GRID-Total-Power (Wieviel Strom wird gerade ins Hausnetz bzw in den Akku abgegeben. Wenn dieser Wert negativ ist, wird eingespeist)
      Battery (Ladezustand des Akkus)

      Ich möchte erreichen, dass

      WENN PV-Total-Power > 1500

      UND

      GRID-Total-Power < -800

      UND

      Battery 100%

      eine Hue Steckdose angeschaltet wird. Die soll dann auch wieder ausgehen, wenn eine der drei Optionen nicht mehr zutrifft.

      Das kann ja eigentlich nicht so schwer sein.. Über diese WENN, DANN-RULES habe ich es hinbekommen, möchte aber eher Blockly soweit verstehen, dass ich es damit hinbekomme und dann zukünftig nutzen kann.

      Blockly umgewandelt in Javascript sieht so aus:

      on({id: "0_userdata.0.Alpha-ESS.PV_Total_Power"/0_userdata.0.Alpha-ESS.PV_Total_Power/, change: "any"}, async function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (parseFloat('0_userdata.0.Alpha-ESS.PV_Total_Power') > 1500 && parseFloat('0_userdata.0.Alpha-ESS.Grid_Total_Power') < -800 && parseFloat('alpha-ess.0.Realtime.Battery_SOC') == 100) {
      setState("hue.0.Steckdose.on"/Steckdose.on/, true);
      console.log('Lampe an');
      } else {
      setState("hue.0.Steckdose.on"/Steckdose.on/, false);
      console.log('Lampe aus');
      }
      });

      Blocky_Steckdose.png

      Im Log steht übrigens auch immer "Lampe aus".

      Vielen Dank

      André

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

        @andremiba
        Wozu sollen 3 Kriterien gut sein, wenn die wesentliche Information die Einspeiseleistung ist? Beispiel: Wenn der Akku voll geladen ist, schaltet die Ladung ab und der PV-Überschuss wird größer.
        Außerdem muss man immer eine Hysterese vorsehen, damit nicht im Grenzbereich ständig geschaltet wird. Bei der Einspeiseleistung muss die Hysterese etwas größer sein als die Leistungsaufnahme des geschalteten Verbrauchers, denn der Verbraucher verändert die Einspeiseleistung.

        Vorschlag:

        Blockly_temp.JPG

        T A 2 Replies Last reply Reply Quote 0
        • T
          TT-Tom @paul53 last edited by TT-Tom

          @paul53 muss bei kleiner 100 nicht false / falsch

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @TT-Tom last edited by

            @tt-tom sagte: muss bei kleiner 100 nicht false / falsch

            Danke. Habe korrigiert.

            1 Reply Last reply Reply Quote 1
            • MartinP
              MartinP @AndreMiBa last edited by

              @andremiba Eine Anmerkung am Rande: Hast Du bei der zu schaltenden Last die begrenzte Schaltleistung der Hue-Dosen im Blick - maximal 2300 Watt?
              Einen Heizstab direkt mit der Dose anzusteuern ist ggfs. nicht besonders ratsam ...

              Anmerkung 2: Habe noch nie eine so einsilbige Technische Beschreibung gesehen - https://www.philips-hue.com/de-de/p/hue-smart-plug/8719514342309#specifications

              Immerhin Abmessungen in cm mit drei(!) Nachkommastellen 😉

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

                @paul53 Hi, tatsächlich hast du recht, dass die 800 Einspeiseleistung als Auslöser reichen, ich verstehe auch, wie dein Beispiel abläuft. Vielen Dank. Da ich gerne auch selbst meinen Fehler finden möchte, hier das umgebaute Beispiel. Das sieht ja eigentlich total easy aus, funktioniert aber nicht und ich verstehe nicht, wieso 🙂

                Blocky_Steckdose_2.png
                Vielleicht kannst du mir ja sagen was ich hier am Prinzip von Blockly falsch gemacht habe?

                @MartinP Das ist ein sehr guter Einwand, ich möchte diese Schaltungen grundlegend erstmal nur für das Laden des E-Bikes und die kleine Poolpumpe nutzen. Die Waschmaschine mit WLAN will ich dann auch mal direkt ansprechen, das wird dann aber die nächste Baustelle 🙂

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

                  @andremiba
                  Wenn "Grid_Total_Power" zum Vergleich herangezogen wird, sollte dieser DP auch als Trigger dienen. Um zu sehen, weshalb der Vergleich nicht so funktioniert wie erwartet, logge den Wert von "Grid_Total_Power".

                  Blockly_temp.JPG

                  Das Skript wurde hoffentlich nicht unter der Gruppe "global" erstellt?

                  EDIT: Weshalb befindet sich "Grid_Total_Power" unter "0_userdata.0" (eigener Datenpunkt)?

                  A 1 Reply Last reply Reply Quote 0
                  • MartinP
                    MartinP @AndreMiBa last edited by

                    @andremiba Spätestens bei der Waschmaschine ist da Obacht geboten, die haben teilweise deutlich mehr als 2300 Watt. An die Grenzen der Schaltleistung des Plug würde ich auch nicht gehen - dann hält das Relais darin womöglich nicht lange ...

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

                      @paul53 Ich habe nun Grid-Total-Power als Trigger benutzt. Macht natürlich Sinn, wenn man sich eh auf den Wert bezieht, klar.
                      Blocky_Steckdose_3.png
                      Das Skript liegt in einer Untergruppe PV und die Werte auf die ich mich beziehe liegen in eigenen Datenpunkten, weil vom Adapter der PV die Werte der einzelnen Phasen nicht summiert ausgegeben werden.
                      Diese werden durch ein anderes Skript dann summiert als eigener Datenpunkt ausgegeben.

                      @MartinP Das hab ich mich wohl missverständlich ausgedrückt.
                      Die Wasschmaschine ist eine LG Waschmaschine, die ebenfalls über einen Adapter angesprochen werden kann.
                      Das Skript möchte ich dann gerne so erweitern:
                      Wenn 2500 Einspeisung, dann schalte Waschmaschine ein, falls diese auf den Befehl wartet 🙂
                      wenn dann Anschließend noch mehr als 800 W eingespeist wird, wird Steckdose 1 eingeschaltet (Poolpumpe, für 3 Stunden
                      )
                      und wenn dann noch mehr als 800 W eingespeist werden, der Fahrrad-Akku geladen. So irgendwie 🙂

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

                        @andremiba sagte: Grid-Total-Power als Trigger

                        Eine Objekt ID ist immer ein String und lässt sich nicht in eine Zahl wandeln.
                        Der Wert (unter "Trigger" wie beim Debug-Block) enthält den Wert des Trigger-Datenpunktes und muss nicht gewandelt werden.

                        Blockly_temp.JPG

                        @andremiba sagte in Steckdose schalten bei Einspeisung von PV:

                        durch ein anderes Skript dann summiert als eigener Datenpunkt ausgegeben.

                        Skript bitte zeigen!

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

                          @paul53 Ja, klasse. So funktionierts. 🙂
                          Blocky_Steckdose_4.png

                          Dann weiß ich jetzt wo mein Fehler war und kann das in künftigen Skripts gleich so machen.
                          Vielen Dank!

                          Das Skript zum Summieren kommt von einem anderen User aus einem anderen Forum.
                          Möchte das ungerne hier einfach posten.

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

                            @andremiba sagte: Möchte das ungerne hier einfach posten.

                            Weshalb? Ist es geheim?
                            Ich befürchte, dass evtl. nicht berücksichtigt wurde, dass die 3 Phasen-Leistungen unmittelbar nacheinander triggern und deshalb der Summen-DP 3 mal hintereinander aktualisiert wird - die ersten beiden Male mit einem falschen Wert.

                            1 Reply Last reply Reply Quote 0
                            • F
                              FloX @AndreMiBa last edited by

                              @andremiba
                              Kann eigentlich so nicht funktionieren, oder? Warum triggerst Du auf PV-Leistung und nicht die Einspeiseleistung wie @paul53 vorschlägt? Das Ziel ist doch primär, Netzbezug zu vermeiden? Hysterese auch wichtig, sonst kauft man mit der Einsparung durch PV-Nutzung neue Relais/Geräte. Größere Lasten würde ich mit einem Schütz schalten und weil da eine Verbrauchsmessung nicht möglich ist ggf. über Leitung*Zeit berechnen lassen (falls gewünscht).
                              Gruß
                              Flo
                              PS. Sitze an ähnlichem Problem und bekomme es nicht hin

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              387
                              Online

                              31.9k
                              Users

                              80.3k
                              Topics

                              1.3m
                              Posts

                              5
                              13
                              908
                              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