Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. PV Überschuss Poolpumpe einschalten

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    PV Überschuss Poolpumpe einschalten

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

      @homoran
      vielen Dank erstmal an alle für die schnelle Hilfe

      U66 1 Reply Last reply Reply Quote 0
      • U66
        U66 @U66 last edited by U66

        Ich noch mal
        Hatte mir gerade überlegt das es wohl besser ist die Poolheizung auch im Script Zeitversetzt mit zu starten.
        Poolheizung Schalter ist hier "tuya.0.46778228e09806828487.1"
        Was muss ich im Script noch ändern wenn die "tuya.0.46778228e09806828487.1"
        ca 3 sec später nach der Umwälzpumpe "fritzdect.2.DECT_087610340681.state" starten soll ?
        Ausschalten können sich beide ja gemeinsam.

        Eingetragen hab ich Sie schon mal.....

        
        
        const vPower         = '0_userdata.0.Alpha-ESS.PV_Total_Power';
        
        const Schalter       = 'fritzdect.2.DECT_087610340681.state';
        
        const Schalter       = 'tuya.0.46778228e09806828487.1';
        
        const vLeistungPumpe = 1950; //Watt
        
        const vSpielraum     = 100; //Watt
        
         
        
        var bSperre = false;
        
         
        
        on(vPower, function(dp) {
        
            if (bSperre == false) {
        
                bSperre = true;
        
                var vValue = dp.state.val;
        
                if (vValue >= (2200+vLeistungPumpe+vSpielraum)) {
        
                    setState(Schalter, true);
        
                    bSperre = false;
        
                } else {
        
                    //nicht sofort schalten, 30 Sekunden warten und erneut prüfen
        
                    setTimeout(function(){
        
                    if (vValue < (2200+vLeistungPumpe)) {
        
                            setState(Schalter, false);
        
                            bSperre = false;
        
                    } else {
        
                        bSperre = false;
        
                    }
        
                    },30000);
        
                }
        
            }
        
        });
        
        
        Ro75 1 Reply Last reply Reply Quote 0
        • Ro75
          Ro75 @U66 last edited by

          @u66 sagte in PV Überschuss Poolpumpe einschalten:

          tuya.0.46778228e09806828487.1

          Ich habe von den Tuya's keine Ahnung. Von daher nur so umgesetzt.

          const vPower         = '0_userdata.0.A_Total_Power';
          const Schalter       = 'fritzdect.2.DECT_087610340681.state';
          const vLeistungPumpe = 500; //Watt
          const vSpielraum     = 100; //Watt
          const TuyaPool       = 'tuya.0.46778228e09806828487.1';
          
          var bSperre = false;
          
          on(vPower, function(dp) {
              if (bSperre == false) {
                  bSperre = true;
                  var vValue = dp.state.val;
                  if (vValue >= (2000+vLeistungPumpe+vSpielraum)) {
                      setState(Schalter, true);
                      setTimeout(function(){
                          setState(TuyaPool, true);
                      },3000);
                      bSperre = false;
                  } else {
                      //nicht sofort schalten, 30 Sekunden warten und erneut prüfen
                      setTimeout(function(){
                      if (vValue < (2000+vLeistungPumpe)) {
                          setState(Schalter, false);
                          bSperre = false;
                      } else {
                          bSperre = false;
                      }
                      },30000);
                  }
              }
          });
          
          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @U66 last edited by paul53

            @u66 sagte: Umwälzpumpe 350 Watt
            Poolheizung 1600 Watt

            Dann sollte die Hysterese ca. 2200 W betragen, wenn es sich tatsächlich um den PV-Überschuss handelt.

            const idPower        = '0_userdata.0.A_Total_Power';
            const idSchalter     = 'fritzdect.2.DECT_087610340681.state';
            const idHeizung      = 'tuya.0.46778228e09806828487.1';
            const vLeistungPumpe = 1950; //Watt
            const vSpielraum     = 250; //Watt
             
            var bSperre = null;
             
            on(idPower, function(dp) {
                if (dp.state.val >= 2000 + vSpielraum) {
                    clearTimeout(bSperre);
                    bSperre = null;
                    if (!getState(idSchalter).val) {
                        setState(idSchalter, true);
                        setTimeout(function() {
                            setState(idHeizung, true);
                        }, 3000);
                    }
                } else if (!bSperre && dp.state.val < 2000 - vLeistungPumpe) {
                    //nicht sofort schalten, 30 Sekunden warten 
                    bSperre = setTimeout(function() {
                        if (getState(idSchalter).val) {
                            setState(idSchalter, false);
                            setState(idHeizung, false);
                        }
                    }, 30000);
                }
            });
            
            U66 1 Reply Last reply Reply Quote 1
            • U66
              U66 @paul53 last edited by U66

              @paul53
              Danke für Deine schnelle Antwort

              "const idPower" ist eigentlich die aktuelle Leistung der PV die vom Dach kommt.
              Dabei wird der Hausverbrauch mit ca 350 Watt abgedeckt und gleichzeitig der Speicher geladen.
              der Überschuss wird eingespeist was aber keiner braucht bei 8 cent.
              in meinem Fall ist das der Datenpunkt "0_userdata.0.Alpha-ESS.Grid_Total_Power"

              sollte dießer bei const idPower eingetragen werden ?
              Wenn ja, hatte ich wohl einen Denkfehler

              mfg

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

                @u66 sagte in PV Überschuss Poolpumpe einschalten:

                ist eigentlich die aktuelle Leistung der PV die vom Dach kommt.

                also doch nicht der Überschuss?
                Aber das steht doch so im Threadtitel.

                und @paul53 hatte extra nochmal nachgefragt und keine Antwort bekommen.

                @u66 sagte in PV Überschuss Poolpumpe einschalten:

                Dabei wird der Hausverbrauch mit ca 350 Watt abgedeckt

                das kannst du aber nicht fix annehmen.
                Läuft der Staubsauger, der Föhn oder die Kaffeemaschine kommen Ruckzuck nochmal 1500-2000W dazu.
                Dann fliegt dir die gesamte Steuerung um die Ohren.

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

                  @homoran
                  Nein
                  Ich hatte ja oben geschrieben das ich den Überschuss den ich jetzt einspeise für die Poolheizung nehmen will.
                  Ich bin erst davon ausgegangen das man der Wert nimmt der vom Dach kommt. Aber das ist ja nicht der Überschuss.
                  Sorry
                  Anders gesagt, wenn keine 1950 Watt + 350 Watt Umwälzpumpe ins Netz eingespeist werden läuft auch meine Pollheizung nicht an

                  Homoran 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @U66 last edited by

                    @u66 sagte in PV Überschuss Poolpumpe einschalten:

                    Ich hatte ja oben geschrieben das ich den Überschuss den ich jetzt einspeise für die Poolheizung nehmen will.

                    eben!
                    daher gehen eir davon aus, dass du einen DP hast, in dem der Überschuss in Heller und Pfennig steht

                    nur damit kann man arbeiten

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

                      @u66 sagte in PV Überschuss Poolpumpe einschalten:

                      Ich bin erst davon ausgegangen das man der Wert nimmt der vom Dach kommt.

                      kannst du machen, aber dann läuft die Kaffee, der Föhn und der Staubsauger mit gekauftem Stro

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

                        @homoran and All

                        Wollte nur mitteilen das das Script einwandfrei funktioniert
                        Vielen Dank noch mal für die Unterstützung.
                        Ich habe jetzt doch den Wert der gesamten Power die vom Dach kommt genommen und so haut es hin.
                        Hier noch mal das Script was jetzt läuft

                        
                        
                        const vPower         = '0_userdata.0.Alpha-ESS.PV_Total_Power';
                        
                        const Schalter       = 'tuya.0.46778228e09806828487.1';
                        
                        const vLeistungPumpe = 360; //Watt
                        
                        const vSpielraum     = 250; //Watt
                        
                         
                        
                        var bSperre = false;
                        
                         
                        
                        on(vPower, function(dp) {
                        
                            if (bSperre == false) {
                        
                                bSperre = true;
                        
                                var vValue = dp.state.val;
                        
                                if (vValue >= (2000+vLeistungPumpe+vSpielraum)) {
                        
                                    setState(Schalter, true);
                        
                                    bSperre = false;
                        
                                } else {
                        
                                    //nicht sofort schalten, 30 Sekunden warten und erneut prüfen
                        
                                    setTimeout(function(){
                        
                                    if (vValue < (2000+vLeistungPumpe)) {
                        
                                            setState(Schalter, false);
                        
                                            bSperre = false;
                        
                                    } else {
                        
                                        bSperre = false;
                        
                                    }
                        
                                    },30000);
                        
                                }
                        
                            }
                        
                        });
                        
                        
                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @U66 last edited by

                          @u66 sagte in PV Überschuss Poolpumpe einschalten:

                          den Wert der gesamten Power die vom Dach kommt genommen und so haut es hin.

                          das hat sogar den Vorteil, dass die Pumpe, und noch wichtiger die Wärmepumpe, nicht andauernd abgeschaltet wird, wenn durch die Nutzung eines Verbrauchers der Überschuss kurzfristig geringer würde.

                          1 Reply Last reply Reply Quote 0
                          • D
                            DRUROB last edited by

                            Hi!
                            Was haltet ihr von diesem Schritt um das mit einem gleitenden Durchschnitt zu lösen?

                            Gleitwert_PV = 0;
                            Liste_PV = [];
                            on({id: [].concat(['modbus.0.inputRegisters.13009_Export_power']), change: "ne"}, async function (obj) {
                              var value = obj.state.val;
                              var oldValue = obj.oldState.val;
                              Liste_PV.push(getState("modbus.0.inputRegisters.13009_Export_power").val);
                              if (Liste_PV.length >= 50) {
                                Liste_PV.shift();
                              }
                              Gleitwert_PV = Math.round(mathMean(Liste_PV));
                            
                            paul53 1 Reply Last reply Reply Quote 1
                            • paul53
                              paul53 @DRUROB last edited by

                              @drurob sagte: mit einem gleitenden Durchschnitt zu lösen?

                              Der gleitende Durchschnitt zeigt die Vergangenheit. Eigentlich möchte man wissen, was demnächst passiert.

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

                                @paul53
                                Da bin ich ganz bei dir. Der gleitende Durchschnitt basiert auf den letzten 25 oder 50 oder 100 Werten. da die alle paar Sekunden reinkommen sind die ziemlich aktuell.
                                Wie möchtest du denn solch eine Zukunftssteuerung einbauen? Via Wettermodul? Das können wir hier gern mal "ausklabüstern" da mich sowas interessieren würde.
                                Oder hattet ihr das schon mit drin und ich hab es überlesen?

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

                                  @homoran
                                  hallo noch mal zum Überschuss
                                  habe ein zusätzliches Script für meine Klimaanlage
                                  Diese soll starten, wenn die PV Leistung bei 3500 Watt liegt.
                                  Leider pipt die Klima Anlage aller paar Sekunden ,wird die durch das Script immer abgefragt ?
                                  oder was muss ich da ändern ?
                                  Bin dankbar für jede Hilfe 👍

                                  mfg

                                  code_text
                                  
                                  
                                  const vPower         = '0_userdata.0.Alpha-ESS.PV_Total_Power';
                                  
                                  const Klima       = 'tuya.0.74500708e09806147e72.1';
                                  
                                  
                                  const vSpielraum     = 250; //Watt
                                  
                                   
                                  
                                  var bSperre = false;
                                  
                                   
                                  
                                  on(vPower, function(dp) {
                                  
                                      if (bSperre == false) {
                                  
                                          bSperre = true;
                                  
                                          var vValue = dp.state.val;
                                  
                                          if (vValue >= (3500+vSpielraum)) {
                                  
                                              setState(Klima, true);
                                  
                                              bSperre = false;
                                  
                                          } else {
                                  
                                              //nicht sofort schalten, 30 Sekunden warten und erneut prüfen
                                  
                                              setTimeout(function(){
                                  
                                              if (vValue < (3500+vSpielraum)) {
                                  
                                                      setState(Klima, false);
                                  
                                                      bSperre = false;
                                  
                                              } else {
                                  
                                                  bSperre = false;
                                  
                                              }
                                  
                                              },30000);
                                  
                                          }
                                  
                                      }
                                  
                                  });
                                  
                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @U66 last edited by paul53

                                    @u66 sagte: starten, wenn die PV Leistung bei 3500 Watt liegt.

                                    Versuche es mal so:

                                    const idPower     = '0_userdata.0.Alpha-ESS.PV_Total_Power';
                                    const idKlima     = 'tuya.0.74500708e09806147e72.1';
                                    const vSpielraum  = 1000; //Watt
                                     
                                    var bSperre = null;
                                    var klima = getState(idKlima).val;
                                     
                                    on(idPower, function(dp) {
                                        if (!bSperre) {
                                            let vValue = dp.state.val;
                                            if (vValue >= 3500) klima = true;
                                            else if (vValue < 3500 - vSpielraum) klima = false;
                                            if(klima != getState(idKlima).val) {
                                                setState(idKlima, klima);
                                                //5 Minuten warten und erneut prüfen
                                                bSperre = setTimeout(function() {
                                                    bSperre = null;
                                                }, 300000);
                                            }
                                        }
                                    });
                                    

                                    EDIT: Sperre geändert.

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

                                      @paul53
                                      Prima
                                      hat auf Anhieb geklappt

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

                                        @u66 sagte: hat auf Anhieb geklappt

                                        Habe es oben geändert, so dass die 5-Minuten-Sperre nur nach dem Schalten wirksam wird.

                                        U66 D 2 Replies Last reply Reply Quote 1
                                        • U66
                                          U66 @paul53 last edited by U66

                                          @paul53
                                          Script mit Habpanel ein/aus
                                          Jetzt hab auch hier im Forum gesucht aber nichts passendes gefunden.
                                          Ist es denn möglich ein Script mit einem Button im Habpanel ein und auszuschalten ?
                                          Kann mal sein das im Winter die Pumpe auch mal ohne PV Power laufen muss.könnte das zwar im Iobroker am PC ausschalten würde es aber gern am Iphone erledigen.

                                          Danke im Voraus 🙋‍♂️

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

                                            @u66 sagte: Script mit Habpanel ein/aus

                                            Man schaltet keine Skripte ein/aus. Lässt sich die Poolpumpe per Habpanel ein- und ausschalten? Dann kann man das "manuelle" Einschalten detektieren und so eine weitere Sperre ergänzen.

                                            const idPower     = '0_userdata.0.Alpha-ESS.PV_Total_Power';
                                            const idKlima     = 'tuya.0.74500708e09806147e72.1';
                                            const vSpielraum  = 1000; //Watt
                                             
                                            var bSperre = null;
                                            var klima = getState(idKlima).val;
                                            var manuellEin = false;
                                             
                                            on(idPower, function(dp) {
                                                if (!bSperre && !manuellEin) {
                                                    let vValue = dp.state.val;
                                                    if (vValue >= 3500) klima = true;
                                                    else if (vValue < 3500 - vSpielraum) klima = false;
                                                    if(klima != getState(idKlima).val) {
                                                        setState(idKlima, klima);
                                                        //5 Minuten warten und erneut prüfen
                                                        bSperre = setTimeout(function() {
                                                            bSperre = null;
                                                        }, 300000);
                                                    }
                                                }
                                            });
                                            
                                            on(idKlima, function(dp) {
                                                manuellEin = dp.state.val && dp.state.from != 'system.adapter.javascript.' + instance;
                                            });
                                            
                                            T U66 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            699
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            41
                                            2238
                                            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