Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Wechselrichter Steuerung null Einspeisung Blockly Skript

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Wechselrichter Steuerung null Einspeisung Blockly Skript

Scheduled Pinned Locked Moved Skripten / Logik
blocklyjavascript
6 Posts 2 Posters 1.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    rebel85
    wrote on last edited by rebel85
    #1

    Hallo,

    ich habe aktuell ein Javaskript am laufen was mein WR mit Akku Steuert.
    Diese Steuerung läuft so naja gut.
    Wenn mein Stromzähler einen Minus wert hat z.b. -124 rechnet das skript eher mit (+)124 und regelt hoch und daher bekomme ich eine Zick-Zack Regelung.
    Skript und Screenshots reiche ich natürlich nach, aktuell nicht möglich.

    Skript:

    let ids = {
        //Stromzähler
        gridSum: 'sonoff.0.Smartzaehler-Strom.SML_curr_w',    
        //WR_Steuerung
        solarLimit: 'opendtu.0.112182854324.power_control.limit_nonpersistent_absolute', 
        //           opendtu.0.114184519980.power_control.limit_nonpersistent_absolute                
        //WR_Trennung_und_Power_Messung
        solarInput: 'shelly.0.shellyplus1pm#a8032ab78318#1.Relay0.Power',
        }
    
    let inverterOutput = {
        min: 10, // Minimales Limit (Grundverbrauch)
        max: 100, // Maximales Limit (Wechselrichter Leistung max.)
        safetyMargin: -60, // Einspeisungsziel (da sonst kleine Anstiege im Stromverbrauch auf das Stromnetz gehen)
        minDifference: 15, // Kein neues Limit setzen, wenn Differenz alt neu <= dieser Wert ist
    }
    
    let oldLimit = 0;
    
    // Run every 15 seconds
    schedule('*/15 * * * * *', function () {
        let fromSolar = getState(ids.solarInput).val;
        let fromGrid = getState(ids.gridSum).val;
    
        let newLimit = fromSolar + fromGrid + inverterOutput.safetyMargin;
        if (newLimit < inverterOutput.min) newLimit = inverterOutput.min;
        if (newLimit > inverterOutput.max) newLimit = inverterOutput.max;
        if (inverterOutput.min > fromSolar) newLimit = inverterOutput.max;
    
        if(!(Math.abs(newLimit - oldLimit) <= inverterOutput.minDifference))
        {
            log(`Setting limit to ${fromSolar} + ${fromGrid} = ${newLimit}W`);
            setState (ids.solarLimit , newLimit);
            oldLimit = newLimit;
        }
    });
    

    Problem:
    Problem.JPG Problem_02.JPG

    habt ihr vllt. ein gutes Blockly Skript womit ich mein WR PV Akku Anlage Zuverlässig Steuern kann so das ich eine "null-Einspeisung" hin bekomme.
    ich habe über die suche schon geschaut aber nicht gefunden was ich verstehe :-)

    mit Skript Sprache bin ich nicht konform und habe das Skript auch nur via PN am Anfang bekommen wo ich meine PV Akkuanlage DIY gebaut habe.

    Ziel ist ein Mindesverbrauch, MaximalLeistung, ein Sicherheits Einspeiseziel und eine min. Differenzänderung
    also mit 4 Werten der WR Steuern, klar ist mir auch das es Zeitverzögert ist wegen dem auslesen, Reagieren und Ansteuern.

    Danke für eure hilfe

    Update: Skript und Problem beigefügt.

    paul53P 2 Replies Last reply
    0
    • R rebel85

      Hallo,

      ich habe aktuell ein Javaskript am laufen was mein WR mit Akku Steuert.
      Diese Steuerung läuft so naja gut.
      Wenn mein Stromzähler einen Minus wert hat z.b. -124 rechnet das skript eher mit (+)124 und regelt hoch und daher bekomme ich eine Zick-Zack Regelung.
      Skript und Screenshots reiche ich natürlich nach, aktuell nicht möglich.

      Skript:

      let ids = {
          //Stromzähler
          gridSum: 'sonoff.0.Smartzaehler-Strom.SML_curr_w',    
          //WR_Steuerung
          solarLimit: 'opendtu.0.112182854324.power_control.limit_nonpersistent_absolute', 
          //           opendtu.0.114184519980.power_control.limit_nonpersistent_absolute                
          //WR_Trennung_und_Power_Messung
          solarInput: 'shelly.0.shellyplus1pm#a8032ab78318#1.Relay0.Power',
          }
      
      let inverterOutput = {
          min: 10, // Minimales Limit (Grundverbrauch)
          max: 100, // Maximales Limit (Wechselrichter Leistung max.)
          safetyMargin: -60, // Einspeisungsziel (da sonst kleine Anstiege im Stromverbrauch auf das Stromnetz gehen)
          minDifference: 15, // Kein neues Limit setzen, wenn Differenz alt neu <= dieser Wert ist
      }
      
      let oldLimit = 0;
      
      // Run every 15 seconds
      schedule('*/15 * * * * *', function () {
          let fromSolar = getState(ids.solarInput).val;
          let fromGrid = getState(ids.gridSum).val;
      
          let newLimit = fromSolar + fromGrid + inverterOutput.safetyMargin;
          if (newLimit < inverterOutput.min) newLimit = inverterOutput.min;
          if (newLimit > inverterOutput.max) newLimit = inverterOutput.max;
          if (inverterOutput.min > fromSolar) newLimit = inverterOutput.max;
      
          if(!(Math.abs(newLimit - oldLimit) <= inverterOutput.minDifference))
          {
              log(`Setting limit to ${fromSolar} + ${fromGrid} = ${newLimit}W`);
              setState (ids.solarLimit , newLimit);
              oldLimit = newLimit;
          }
      });
      

      Problem:
      Problem.JPG Problem_02.JPG

      habt ihr vllt. ein gutes Blockly Skript womit ich mein WR PV Akku Anlage Zuverlässig Steuern kann so das ich eine "null-Einspeisung" hin bekomme.
      ich habe über die suche schon geschaut aber nicht gefunden was ich verstehe :-)

      mit Skript Sprache bin ich nicht konform und habe das Skript auch nur via PN am Anfang bekommen wo ich meine PV Akkuanlage DIY gebaut habe.

      Ziel ist ein Mindesverbrauch, MaximalLeistung, ein Sicherheits Einspeiseziel und eine min. Differenzänderung
      also mit 4 Werten der WR Steuern, klar ist mir auch das es Zeitverzögert ist wegen dem auslesen, Reagieren und Ansteuern.

      Danke für eure hilfe

      Update: Skript und Problem beigefügt.

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @rebel85 sagte: Blockly Skript womit ich mein WR PV Akku Anlage Zuverlässig Steuern kann so das ich eine "null-Einspeisung" hin bekomme.

      PI-Regler

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      R 1 Reply Last reply
      0
      • paul53P paul53

        @rebel85 sagte: Blockly Skript womit ich mein WR PV Akku Anlage Zuverlässig Steuern kann so das ich eine "null-Einspeisung" hin bekomme.

        PI-Regler

        R Offline
        R Offline
        rebel85
        wrote on last edited by
        #3

        @paul53
        Danke für den Hinweis.
        PUH das Programm PI Regler sieht über aus, Dachte eher so an Matheformeln oder so die Richtung.
        mir fehlt nur halt ein Anfang das ich mit Blockly arbeiten kann, das Verstehe ich eigentlich eher ;-)

        paul53P 1 Reply Last reply
        0
        • R rebel85

          Hallo,

          ich habe aktuell ein Javaskript am laufen was mein WR mit Akku Steuert.
          Diese Steuerung läuft so naja gut.
          Wenn mein Stromzähler einen Minus wert hat z.b. -124 rechnet das skript eher mit (+)124 und regelt hoch und daher bekomme ich eine Zick-Zack Regelung.
          Skript und Screenshots reiche ich natürlich nach, aktuell nicht möglich.

          Skript:

          let ids = {
              //Stromzähler
              gridSum: 'sonoff.0.Smartzaehler-Strom.SML_curr_w',    
              //WR_Steuerung
              solarLimit: 'opendtu.0.112182854324.power_control.limit_nonpersistent_absolute', 
              //           opendtu.0.114184519980.power_control.limit_nonpersistent_absolute                
              //WR_Trennung_und_Power_Messung
              solarInput: 'shelly.0.shellyplus1pm#a8032ab78318#1.Relay0.Power',
              }
          
          let inverterOutput = {
              min: 10, // Minimales Limit (Grundverbrauch)
              max: 100, // Maximales Limit (Wechselrichter Leistung max.)
              safetyMargin: -60, // Einspeisungsziel (da sonst kleine Anstiege im Stromverbrauch auf das Stromnetz gehen)
              minDifference: 15, // Kein neues Limit setzen, wenn Differenz alt neu <= dieser Wert ist
          }
          
          let oldLimit = 0;
          
          // Run every 15 seconds
          schedule('*/15 * * * * *', function () {
              let fromSolar = getState(ids.solarInput).val;
              let fromGrid = getState(ids.gridSum).val;
          
              let newLimit = fromSolar + fromGrid + inverterOutput.safetyMargin;
              if (newLimit < inverterOutput.min) newLimit = inverterOutput.min;
              if (newLimit > inverterOutput.max) newLimit = inverterOutput.max;
              if (inverterOutput.min > fromSolar) newLimit = inverterOutput.max;
          
              if(!(Math.abs(newLimit - oldLimit) <= inverterOutput.minDifference))
              {
                  log(`Setting limit to ${fromSolar} + ${fromGrid} = ${newLimit}W`);
                  setState (ids.solarLimit , newLimit);
                  oldLimit = newLimit;
              }
          });
          

          Problem:
          Problem.JPG Problem_02.JPG

          habt ihr vllt. ein gutes Blockly Skript womit ich mein WR PV Akku Anlage Zuverlässig Steuern kann so das ich eine "null-Einspeisung" hin bekomme.
          ich habe über die suche schon geschaut aber nicht gefunden was ich verstehe :-)

          mit Skript Sprache bin ich nicht konform und habe das Skript auch nur via PN am Anfang bekommen wo ich meine PV Akkuanlage DIY gebaut habe.

          Ziel ist ein Mindesverbrauch, MaximalLeistung, ein Sicherheits Einspeiseziel und eine min. Differenzänderung
          also mit 4 Werten der WR Steuern, klar ist mir auch das es Zeitverzögert ist wegen dem auslesen, Reagieren und Ansteuern.

          Danke für eure hilfe

          Update: Skript und Problem beigefügt.

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #4

          @rebel85 sagte: max: 100, // Maximales Limit (Wechselrichter Leistung max.)

          Die PV liefert nur maximal 100 W?
          Wie oft wird die Zählerleistung aktualisiert?

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          R 1 Reply Last reply
          0
          • R rebel85

            @paul53
            Danke für den Hinweis.
            PUH das Programm PI Regler sieht über aus, Dachte eher so an Matheformeln oder so die Richtung.
            mir fehlt nur halt ein Anfang das ich mit Blockly arbeiten kann, das Verstehe ich eigentlich eher ;-)

            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by paul53
            #5

            @rebel85 sagte: Dachte eher so an Matheformeln

            Ein PI-Regler arbeitet mit Formeln. Angepasst an die Vorgaben:

            let inverterOutput = {
                min: 10, // Minimales Limit (Grundverbrauch)
                max: 100, // Maximales Limit (Wechselrichter rel. max.)
                safetyMargin: -60, // Einspeisungsziel (da sonst kleine Anstiege im Stromverbrauch auf das Stromnetz gehen)
                minDifference: 15, // Kein neues Limit setzen, wenn Differenz alt neu <= dieser Wert ist
            }
            

            Blockly_temp.JPG

            Stellwerte: 10, 25, 40, 55, 70, 85, 100 %

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • paul53P paul53

              @rebel85 sagte: max: 100, // Maximales Limit (Wechselrichter Leistung max.)

              Die PV liefert nur maximal 100 W?
              Wie oft wird die Zählerleistung aktualisiert?

              R Offline
              R Offline
              rebel85
              wrote on last edited by
              #6

              @paul53 Zähler kommt alle 5 bis 10 sekunden, und das skript schaut ja alle 15 sekunden.
              ich vermute das das skript das negative vorzeichen irgendwie wegnimmt

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              301

              Online

              32.7k

              Users

              82.4k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe