Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. E3DC Hauskraftwerk steuern

    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

    E3DC Hauskraftwerk steuern

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

      @da_hood
      Da musst du das Script an deine Bedürfnisse anpassen 🙂

      Hier mal ohne Wallbox:

      // Script my-pv Heizstab Version 1.0.2 
      // defintion which instances has to be used 
      const instanzE3DC_RSCP       = 'e3dc-rscp.0' 
      const instanzHeizstab_Modbus = 'modbus.1'
      
      // E3DC Komponenten Definition 
      const sID_PV_Leistung       = `${instanzE3DC_RSCP}.EMS.POWER_PV`; // PV power
      const sID_Netz_Leistung     = `${instanzE3DC_RSCP}.EMS.POWER_GRID`; // Grid power
      const sID_Batterie_Leistung = `${instanzE3DC_RSCP}.EMS.POWER_BAT`; // Battery power
      const sID_Power_Mode        = `${instanzE3DC_RSCP}.EMS.MODE`; // Power mode state
      const sID_Batterie_Status   = `${instanzE3DC_RSCP}.EMS.BAT_SOC`; // Battery status state
      const sID_Bat_Charge_Limit  = `${instanzE3DC_RSCP}.EMS.SYS_SPECS.maxBatChargePower`;// Batterie Ladelimit
      
      // selbst definierte Variablen
      const sID_Eigenverbrauch    = '0_userdata.0.Charge_Control.Allgemein.Hausverbrauch'; 					// Household consumption power
      const sID_M_Power_W         = '0_userdata.0.Charge_Control.Allgemein.Akt_Berechnete_Ladeleistung_W'; 	// Calculated required charging power
      const sID_LeistungLW_Pumpe_W = 'modbus.2.holdingRegisters.40104_Leistung_aller_WP';                     // Pfad zu den Leistungswerte Wärmepumpe eintragen ansonsten leer lassen
      
      // Heistab Modbus Variablen 
      const sID_LeistungHeizstab_W        = `${instanzHeizstab_Modbus}.holdingRegisters.1000_Power`; // Current power consumption of heating element in W
      const sID_Soll_LeistungHeizstab_W   = `${instanzHeizstab_Modbus}.holdingRegisters.1000_Power`; // Target heating element power
      const sID_IstTempHeizstab           = `${instanzHeizstab_Modbus}.holdingRegisters.1001_Temp1`; // Current temperature at the heating element
      const sID_MaxTempHeizstab           = `${instanzHeizstab_Modbus}.holdingRegisters.1002_WW1_Temp_max`; // Maximum temperature
      
      // Heistab states manuell zu erstellen für Statistikwerte
      const sID_previousHeizstabLeistung_W    = '0_userdata.0.Heizung.E3DC.previousHeizstabLeistung'; // Previous heating element load power
      const sID_Heizstab_Gesamtenergie        = '0_userdata.0.Heizung.E3DC.Heizstab_Gesamtenergie'; // Cumulative energy
      const sID_Heizstab_LetzteAktualisierung = '0_userdata.0.Heizung.E3DC.Heizstab_LetzteAktualisierung'; // Last update
      
      // Defintion von Heizstabparametern und Sicherheitsmechanismen
      const debounceInterval          = 3000; // Minimum interval between updates in milliseconds
      const temperatureBuffer         = 3;    // Buffer in degrees Celsius to prevent frequent on/off cycling
      const minimumHeizstabLeistung   = 300;  // Minimum power for heating element
      const sicherheitspuffer         = 300;  // Safety buffer to avoid frequent switching
      const MaximalLeistungHeizstab_W = 3000; // Maximum power in watt of the heating element
      
      let debounceTimer;
      
      async function fetchAndUpdateHeizstabLeistung() {
          try {
              // Zustände abfragen
              const states = await Promise.all([
                  getStateAsync(sID_Netz_Leistung),
                  getStateAsync(sID_LeistungHeizstab_W),
                  getStateAsync(sID_Eigenverbrauch),
                  getStateAsync(sID_M_Power_W),
                  getStateAsync(sID_Batterie_Leistung),
                  getStateAsync(sID_IstTempHeizstab),
                  getStateAsync(sID_MaxTempHeizstab),
                  getStateAsync(sID_PV_Leistung),
                  getStateAsync(sID_Soll_LeistungHeizstab_W),
                  getStateAsync(sID_Power_Mode),
                  getStateAsync(sID_Batterie_Status),
                  getStateAsync(sID_Bat_Charge_Limit),
      			sID_LeistungLW_Pumpe_W ? getStateAsync(sID_LeistungLW_Pumpe_W) : Promise.resolve({ val: 0 })
              ]);
      
              const [
                  Netz_Leistung, LeistungHeizstab, Eigenverbrauch, M_Power, Batterie_Leistung,
                  IstTempHeizstab, MaxTempHeizstab, PV_Leistung, SollLeistungHeizstab, 
                  Power_Mode, Batterie_Status, Bat_Charge_Limit, LeistungWP
              ] = states;
      
              // Ensure all states are fetched correctly
              const stateNames = [
                  'Netz_Leistung', 'LeistungHeizstab', 'Eigenverbrauch', 'M_Power', 'Batterie_Leistung',
                  'IstTempHeizstab', 'MaxTempHeizstab', 'PV_Leistung', 'SollLeistungHeizstab',
                  'Power_Mode', 'Batterie_Status', 'Bat_Charge_Limit', 'LeistungWP'
              ];
      
              stateNames.forEach((name, index) => {
                  if (states[index] === null || states[index] === undefined) {
                      console.error(`State ${name} is null or undefined`);
                  }
              });
      
              if (states.some(state => state === null || state === undefined)) {
                  throw new Error('One or more states are null or undefined');
              }
      
              // Werte extrahieren
              let [
                  NetzLeistung_W, LeistungHeizstab_W, Hausverbrauch_W, M_Power_W, BatterieLeistung_W,
                  IstTemp, MaxTemp, PV_Leistung_W, SollLeistungHeizstab_W, 
                  PowerMode, BatterieStatus, Charge_Limit, LeistungWP_W
              ] = states.map(state => state.val);
      
              console.log(`Zustände abgefragt: Netz=${NetzLeistung_W}W, PV=${PV_Leistung_W}W, Hausverbrauch=${Hausverbrauch_W}W, LeistungHeizstab=${LeistungHeizstab_W}W, Batterie=${BatterieLeistung_W}W, IstTemp=${IstTemp}°C, MaxTemp=${MaxTemp}°C, SollLeistungHeizstab=${SollLeistungHeizstab_W}W, PowerMode=${PowerMode}, BatterieStatus=${BatterieStatus}, Charge_Limit=${Charge_Limit}, M_Power_W=${M_Power_W}W, LeistungWP = ${LeistungWP}W`);
      
              // Bedingungen prüfen
              if (PowerMode === 2) {
                  if (Charge_Limit === M_Power_W && NetzLeistung_W < -Math.abs(minimumHeizstabLeistung + 500)) {
                      M_Power_W = BatterieLeistung_W;
                  }
              } else {
                  M_Power_W = 0;
              }
      
              // Verfügbaren Überschuss berechnen
              let verfuegbarerUeberschuss_W = PV_Leistung_W - Hausverbrauch_W - M_Power_W- LeistungWP_W - sicherheitspuffer; // Verfügbarer Überschuss unter Berücksichtigung von PV-Leistung, Hausverbrauch, Wärmepumpe, Soll-Ladeleistung und Sicherheitspuffer
              verfuegbarerUeberschuss_W = Math.max(verfuegbarerUeberschuss_W, 0); // Stellen Sie sicher, dass der Wert nicht negativ wird
      
              if (M_Power_W !== 0) {
                  verfuegbarerUeberschuss_W -= sicherheitspuffer;
              }
      
              // Heizstab-Leistung bestimmen
              let HeizstabLadeleistung_W = 0;
              if (IstTemp < MaxTemp - temperatureBuffer && verfuegbarerUeberschuss_W >= minimumHeizstabLeistung) { // Stellen Sie sicher, dass die Temperaturbedingung mit Puffer erfüllt ist und die Mindestleistung verfügbar ist
                  HeizstabLadeleistung_W = Math.min(verfuegbarerUeberschuss_W, MaximalLeistungHeizstab_W); // Begrenzen Sie auf 3000W oder verfügbare Energie
              } else {
                  HeizstabLadeleistung_W = 0; // Heizstab ausschalten, wenn die Bedingungen nicht erfüllt sind
              }
              await setStateAsync(sID_Soll_LeistungHeizstab_W, HeizstabLadeleistung_W);
      
              // Aktualisiere den vorherigen Wert der Heizstabladeleistung
              await setStateAsync(sID_previousHeizstabLeistung_W, HeizstabLadeleistung_W);
      
              // Kumulierte Energieberechnung, Aktualisierung und Logging
              const jetzt = Date.now();
              const letzteAktualisierung = await getStateAsync(sID_Heizstab_LetzteAktualisierung);
              const vergangeneZeitInStunden = (jetzt - (letzteAktualisierung.val || 0)) / (1000 * 60 * 60);
              const verbrauchteEnergie = (LeistungHeizstab_W * vergangeneZeitInStunden) / 1000; // In kWh umrechnen
              const aktuelleGesamtenergie = (await getStateAsync(sID_Heizstab_Gesamtenergie)).val || 0;
              const neueGesamtenergie = aktuelleGesamtenergie + verbrauchteEnergie;
      
              await setStateAsync(sID_Heizstab_Gesamtenergie, neueGesamtenergie);
              await setStateAsync(sID_Heizstab_LetzteAktualisierung, jetzt);
      
              console.log(`Update: Netz=${NetzLeistung_W}W, PV=${PV_Leistung_W}W, Heizstab=${HeizstabLadeleistung_W}W, Überschuss=${verfuegbarerUeberschuss_W}W`);
          } catch (error) {
              // @ts-ignore
              console.error('Fehler bei der Aktualisierung der Heizstab-Leistung:', error.message);
              console.error(error.stack);
          }
      }
      
      function debounceUpdate() {
          if (debounceTimer) return;
          fetchAndUpdateHeizstabLeistung();
          debounceTimer = setTimeout(() => {
              debounceTimer = null;
          }, debounceInterval);
      }
      
      // Register listeners for relevant state changes
      const ids = [
          sID_PV_Leistung,
          sID_Netz_Leistung,
          sID_Eigenverbrauch,
          sID_Batterie_Leistung,
          sID_LeistungHeizstab_W,
          sID_M_Power_W,
          sID_Power_Mode,
          sID_Batterie_Status
      ];
      
      ids.forEach(id => {
          on({ id, change: "ne" }, debounceUpdate);
          console.log(`Listener registered for ${id}`);
      });
      
      // Initial call
      fetchAndUpdateHeizstabLeistung();
      
      D 1 Reply Last reply Reply Quote 0
      • A
        ArnoD last edited by

        @da_hood sagte in E3DC Hauskraftwerk steuern:

        Und mir ist aufgefallen dass Charge Control bei aktuell berechneter Ladeleistung immer über 12000 Watt meldet obwohl der Akku bereits voll ist. Das wird auch zu Fehlberechnungen führen da dies ja mitgerechnet wird?

        Das Spielt keine Rolle, da dieser Wert nur verwendet wird, wenn e3dc-rscp.0.EMS.MODE = 2 ist.

        1 Reply Last reply Reply Quote 0
        • A
          ArnoD @psrelax last edited by ArnoD

          @psrelax sagte in E3DC Hauskraftwerk steuern:

          Ist aber nicht aktuell vorhanden.

          Die ist bereits etwas älter, weil ich die View schon zum Testen mal geändert hatte.

          Kannst du bitte z.B. den Programmablauf als "Info" ausgeben, damit in den Logs nicht immer "Fehler" gekennzeichnet werden?

          Fehler wäre ja error und nicht warn. Aber das kann ich jetzt generell deaktivieren, war nur zum Fehlersuchen wichtig.

          Kann es sein, dass die maximale Ladeleistung, die man einstellen kann mittlerweile generell ignoriert wird?
          Auch wenn ich die Script Steuerung an lasse und kurz die Ladung starte (hält ja ca. 1 Minute), startet die Ladung immer mit voller Leistung.

          Sollte nicht sein. Ist es auch in der aktuellen Version von Charge-Control der Fall?
          Muss ich mir bei Gelegenheit mal ansehen.

          Nachtrag:
          Habe es bei mir getestet und konnte dein Problem nicht nachstellen. Bei mir wird die Eingestellte max. Ladeleistung berücksichtigt.

          P 1 Reply Last reply Reply Quote 1
          • A
            ArnoD @psrelax last edited by ArnoD


            1 Reply Last reply Reply Quote 0
            • A
              ArnoD @psrelax last edited by ArnoD

              Doppelter Eintrag

              1 Reply Last reply Reply Quote 0
              • D
                DA_HOOD @ArnoD last edited by DA_HOOD

                @arnod said in E3DC Hauskraftwerk steuern:

                Da musst du das Script an deine Bedürfnisse anpassen

                Das hätte ich im nächsten Schritt versucht, aber ob ich das so hinbekommen hätte... 😄

                Vielen Dank für deine Hilfe bisher, ist echt geil von dir...

                Nun sieht es so aus aktuell:

                javascript.0 12:11:35.801 info script.js.common.Heizstab: Zustände abgefragt: Netz=-14695W, PV=18635W, Hausverbrauch=0W, LeistungHeizstab=0W, Batterie=990W, IstTemp=84.6°C, MaxTemp=85°C, SollLeistungHeizstab=0W, PowerMode=2, BatterieStatus=66, Charge_Limit=12480, M_Power_W=1002W, LeistungWP = [object Object]W
                influxdb.0 12:11:35.803 silly States user redis pmessage */modbus.1.holdingRegisters.1.1000_Power:{"val":0,"ack":false,"ts":1743675095801,"q":0,"c":"script.js.common.Heizstab","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1743675001621}
                javascript.0 12:11:35.804 warn at fetchAndUpdateHeizstabLeistung (script.js.common.Heizstab:118:15)
                javascript.0 12:11:35.805 error script.js.common.Heizstab: Fehler bei der Aktualisierung der Heizstab-Leistung:
                javascript.0 12:11:35.805 error script.js.common.Heizstab: undefined

                Dass er derzeit nicht heizt ist ok, ist ja schon warm. Aber wie du siehst meldet Charge Control den Hausverbrauch nicht. Da steht leider immer "0". Ich könnte jetzt natürlich hier das Modbus Objekt nehmen, aber darüber läuft ja auch die Leistung des Heizstabes dann, wird also von der Berechnung nicht klappen oder? Woher ziehst du dir den Punkt Hausverbauch ohne Heizstab und Wärmepumpe? Da wäre ja Theoretisch ein zusätzlicher Leistungsmesser notwendig.
                Oder soll ich via Blockly den gesamten Hausverbrauch nehmen und die Heizstab Leistung wegrechnen lassen?
                Die Frage ist aber warum funktioniert dieses Objekt in Charge Control nicht? Ich hab es auch schon mal gelöscht dass es neu angelegt wird - ändert leider nichts.
                Und warum meldet JavaScript den error bei der Aktualisierung der Heizstableistung? Tatsächlich aktualisiert er den Wert schon, bringt aber den Fehler dennoch.

                Vielen Dank dir, für deine tolle Hilfe!

                Edit:
                Ich hab den Hausverbrauch jetzt zum testen mal via Blockly berechnet also Modbus Hausverbrauch abzüglich Heizstab power.
                Funktionieren tut das ganze ... naaajja.. ich verstehe z.B. nicht warum er über 2000 Watt ins Netz haut anstatt in den Heizstab. Denn Sicherheitspuffer habe ich auf 300 belasssen.

                Aussehen tut das so:
                javascript.0 16:47:47.091 info script.js.common.Heizstab: Zustände abgefragt: Netz=-2672W, PV=8525W, Hausverbrauch=2548W, LeistungHeizstab=1562W, Batterie=1743W, IstTemp=82.5°C, MaxTemp=85°C, SollLeistungHeizstab=1562W, PowerMode=2, BatterieStatus=96, Charge_Limit=12480, M_Power_W=1792W, LeistungWP = [object Object]W

                Er meldet also selbst ein Haufen Netzeinspeisung, regelt die Heizstab Leistung nicht hoch. Ich konnte auch kein "Schema" erkennen. manchmal ist es soviel wie jetzt, manchmal nur 1000 Watt. Dass er sich an die 300 Watt Puffer annähert passiert aber gar nicht.

                1 Reply Last reply Reply Quote 0
                • A
                  ArnoD last edited by

                  @da_hood sagte in E3DC Hauskraftwerk steuern:

                  Aber wie du siehst meldet Charge Control den Hausverbrauch nicht.

                  Welche Version von Charge Control hast du?
                  Existiert bei dir die Objekt-ID 0_userdata.0.Charge_Control.Allgemein.Hausverbrauch und hat diese auch den Wert 0 ?
                  Hast du im Script Charge Control auch den Pfad zu deinem Heizstab eingetragen?

                  const sID_LeistungHeizstab_W = ``;                                                                      // Pfad zu den Leistungswerte Heizstab eintragen ansonsten leer lassen
                  
                  D 1 Reply Last reply Reply Quote 0
                  • P
                    psrelax @ArnoD last edited by

                    @arnod sagte in E3DC Hauskraftwerk steuern:

                    Nachtrag:
                    Habe es bei mir getestet und konnte dein Problem nicht nachstellen. Bei mir wird die Eingestellte max. Ladeleistung berücksichtigt.

                    Ich habe es gerade noch einmal getestet
                    Test 1
                    ScriptAktiv ist aus -> BatterieLaden ist ein -> maxLadeleistung steht auf ca. 450W -> Lädt mit ca. 8600W den Speicher

                    Test 2
                    ScriptAktiv ist ein-> BatterieLaden ist ein (nur kurz bevor es wieder inaktiv ist) -> maxLadeleistung steht auf ca. 450W -> Lädt mit ca. 8600W den Speicher

                    Hier noch die Log von Test 1

                    2025-04-03 22:15:38.112 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Tibber: ******************* Debug LOG Tibber Skript Version 1.3.16 *******************
                    2025-04-03 22:15:40.689 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal maxLadeleistung wurde in 447 geändert ====-
                    2025-04-03 22:15:40.689 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Tibber: -==== User Parameter maxLadeleistung wurde in 447 geändert ====-
                    2025-04-03 22:15:40.872 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Tibber: ************************************************************************************
                    
                    
                    2025-04-03 22:24:20.944 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Tibber: -==== User Parameter ScriptAktiv wurde in false geändert ====-
                    2025-04-03 22:24:21.735 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal BatterieLaden wurde in true geändert ====-
                    2025-04-03 22:24:21.735 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal BatterieLaden wurde in true geändert ====-
                    2025-04-03 22:24:21.735 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal BatterieLaden wurde in true geändert ====-
                    2025-04-03 22:24:21.735 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal BatterieLaden wurde in true geändert ====-
                    2025-04-03 22:24:27.134 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: ******************* Debug LOG Charge-Control *******************
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 10_Offset_sunriseEnd = 1
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 10_minWertPrognose_kWh = 0
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 10_maxEntladetiefeBatterie = 90
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 10_Systemwirkungsgrad = 88
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 40_minPvLeistungTag_kWh = 3
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 40_maxPvLeistungTag_kWh = 100
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 40_KorrekturFaktor = -5
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 40_WirkungsgradModule = 19
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bAutomatikAnwahl =true
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bAutomatikRegelung =true
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Einstellungen =2
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Start Regelzeitraum = 07:20
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ende Regelzeitraum= 13:20
                    2025-04-03 22:24:27.135 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ladeende= 15:49
                    2025-04-03 22:24:27.185 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Unload = 100
                    2025-04-03 22:24:27.191 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ladeende = 80
                    2025-04-03 22:24:27.197 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ladeende2 = 98
                    2025-04-03 22:24:27.206 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ladeschwelle = 70
                    2025-04-03 22:24:27.218 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Unterer Ladekorridor = 0
                    2025-04-03 22:24:27.228 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Offset Regelbeginn = 06:00
                    2025-04-03 22:24:27.245 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Offset Regelende = 00:00
                    2025-04-03 22:24:27.262 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Offset Ladeende = 04:00
                    2025-04-03 22:24:27.275 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom min = 0
                    2025-04-03 22:24:27.296 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom Sockel = 0
                    2025-04-03 22:24:27.297 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Verbrauch für night am Donnerstag: 979 Wh
                    2025-04-03 22:24:27.297 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Eigenverbrauch Nacht = 979 Wh
                    2025-04-03 22:24:27.425 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Power_Home_W (Hausverbrauch & Wallbox) = 7357W
                    2025-04-03 22:24:27.447 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Batterie Leistung = -2082 W
                    2025-04-03 22:24:27.452 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: PV Leistung = 0 W
                    2025-04-03 22:24:27.452 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Speichergroesse = 15kWh
                    2025-04-03 22:24:27.504 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Batterie SoC = 66 %
                    2025-04-03 22:24:27.504 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_SOC_Proz= 0 %
                    2025-04-03 22:24:27.504 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_SOC_erreicht = false
                    2025-04-03 22:24:27.504 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bNotstromVerwenden =false
                    2025-04-03 22:24:27.504 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bNotstromAusNetz =false
                    2025-04-03 22:24:27.546 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_Status = 2
                    2025-04-03 22:24:27.547 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bM_Notstrom = false
                    2025-04-03 22:24:27.547 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: M_Power = 9000
                    2025-04-03 22:24:27.547 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Set_Power_Value_W = 0
                    2025-04-03 22:24:27.547 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: ProgrammAblauf = 1,36,
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: ******************* Debug LOG Charge-Control *******************
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 10_Offset_sunriseEnd = 1
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 10_minWertPrognose_kWh = 0
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 10_maxEntladetiefeBatterie = 90
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 10_Systemwirkungsgrad = 88
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 40_minPvLeistungTag_kWh = 3
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 40_maxPvLeistungTag_kWh = 100
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 40_KorrekturFaktor = -5
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: 40_WirkungsgradModule = 19
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bAutomatikAnwahl =true
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bAutomatikRegelung =true
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Einstellungen =2
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Start Regelzeitraum = 07:20
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ende Regelzeitraum= 13:20
                    2025-04-03 22:24:36.044 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ladeende= 15:49
                    2025-04-03 22:24:36.087 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Unload = 100
                    2025-04-03 22:24:36.089 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ladeende = 80
                    2025-04-03 22:24:36.091 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ladeende2 = 98
                    2025-04-03 22:24:36.092 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Ladeschwelle = 70
                    2025-04-03 22:24:36.093 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Unterer Ladekorridor = 0
                    2025-04-03 22:24:36.095 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Offset Regelbeginn = 06:00
                    2025-04-03 22:24:36.096 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Offset Regelende = 00:00
                    2025-04-03 22:24:36.097 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Offset Ladeende = 04:00
                    2025-04-03 22:24:36.099 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom min = 0
                    2025-04-03 22:24:36.100 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom Sockel = 0
                    2025-04-03 22:24:36.101 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Verbrauch für night am Donnerstag: 979 Wh
                    2025-04-03 22:24:36.101 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Eigenverbrauch Nacht = 979 Wh
                    2025-04-03 22:24:36.143 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Power_Home_W (Hausverbrauch & Wallbox) = 3552W
                    2025-04-03 22:24:36.144 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Batterie Leistung = 8670 W
                    2025-04-03 22:24:36.146 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: PV Leistung = 0 W
                    2025-04-03 22:24:36.147 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Speichergroesse = 15kWh
                    2025-04-03 22:24:36.187 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Batterie SoC = 66 %
                    2025-04-03 22:24:36.188 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_SOC_Proz= 0 %
                    2025-04-03 22:24:36.188 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_SOC_erreicht = false
                    2025-04-03 22:24:36.188 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bNotstromVerwenden =false
                    2025-04-03 22:24:36.188 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bNotstromAusNetz =false
                    2025-04-03 22:24:36.229 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Notstrom_Status = 2
                    2025-04-03 22:24:36.230 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: bM_Notstrom = false
                    2025-04-03 22:24:36.230 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: M_Power = 9000
                    2025-04-03 22:24:36.230 - info: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: Set_Power_Value_W = 0
                    2025-04-03 22:24:36.230 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: ProgrammAblauf = 1,36,
                    2025-04-03 22:24:38.576 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Tibber: -==== User Parameter ScriptAktiv wurde in true geändert ====-
                    2025-04-03 22:24:38.718 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal BatterieLaden wurde in false geändert ====-
                    2025-04-03 22:24:38.718 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal BatterieLaden wurde in false geändert ====-
                    2025-04-03 22:24:38.718 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal BatterieLaden wurde in false geändert ====-
                    2025-04-03 22:24:38.719 - warn: javascript.0 (399) script.js.E3DC_ChargeControl.Charge_Control: -==== Tibber output signal BatterieLaden wurde in false geändert ====-
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • D
                      DA_HOOD @ArnoD last edited by

                      @arnod

                      Ich nutze die aktuellste Version 1.5.16

                      @arnod said in E3DC Hauskraftwerk steuern:

                      Existiert bei dir die Objekt-ID 0_userdata.0.Charge_Control.Allgemein.Hausverbrauch und hat diese auch den Wert 0 ?

                      ja diesen Wert habe ich und der steht immer auf 0, das hatte ich ja oben geschrieben.
                      Ich habe mir da ersatzweise jetzt derweil mit einem anderen berechneten Hausverbrauchswert beholfen via Blockly (Modbus hausverbrauch - Heizstab Power)

                      Den Pfad bei Charge Control habe ich auch eingetragen.

                      Und zwar so:
                      const sID_LeistungHeizstab_W = modbus1.holdingRegisters.1000_Power;

                      oder muss das auch so sein?

                      const sID_LeistungHeizstab_W = modbus1.holdingRegisters.1.1000_Power;

                      Charge Control meldet folgendes:

                      javascript.0 08:27:13.128 info script.js.common.Charge_Control: Fehler bei der Berechnung des reinen Hausverbrauchs: Cannot read properties of null (reading 'val')
                      javascript.0 08:27:15.002 info script.js.common.Charge_Control: Fehler bei der Berechnung des reinen Hausverbrauchs: Cannot read properties of null (reading 'val')

                      Beim Heizstab Script gibt es einen weiteren Fehler:

                      Er lässt den Heizstab sogar Heizen, obwohl die eingestellten 60% der Batterie noch nicht erreicht sind (bis zu dieser Schwelle ist E3DC das Laden überlassen und er sollte die volle Leistung in den Akku stecken)

                      javascript.0 08:29:54.519 info script.js.common.Heizstab: Zustände abgefragt: Netz=-14W, PV=7585W, Hausverbrauch=1089W, LeistungHeizstab=2622W, Batterie=3879W, IstTemp=59.1°C, MaxTemp=85°C, SollLeistungHeizstab=2622W, PowerMode=0, BatterieStatus=44, Charge_Limit=12480, M_Power_W=12480W, LeistungWP = [object Object]W
                      influxdb.0 08:29:54.529 silly States user redis pmessage */modbus.1.holdingRegisters.1.1000_Power:{"val":6196,"ack":false,"ts":1743748194519,"q":0,"c":"script.js.common.Heizstab","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1743748194519}
                      javascript.0 08:29:54.530 warn at fetchAndUpdateHeizstabLeistung (script.js.common.Heizstab:118:15)
                      javascript.0 08:29:54.530 error script.js.common.Heizstab: Fehler bei der Aktualisierung der Heizstab-Leistung:
                      javascript.0 08:29:54.530 error script.js.common.Heizstab: undefined

                      Ich hoffe du kannst mir da irgendwie helfen, dass das vernünftig läuft, denn die Nutzung von Charge Control steht und fällt auch mit der Funktion des Heizstabs. Wenn das nicht vernünftig läuft kann ich Charge Control nicht nutzen da sonst je nach Bedingungen die Ladeleistung permanent an und ausgeht und das kann ich meinen Akkus nicht antun 🙂

                      1 Reply Last reply Reply Quote 0
                      • A
                        ArnoD last edited by

                        @psrelax sagte in E3DC Hauskraftwerk steuern:

                        ScriptAktiv ist aus -> BatterieLaden ist ein -> maxLadeleistung steht auf ca. 450W -> Lädt mit ca. 8600W den Speicher

                        Habe mir das Script noch mal angesehen. Ich weiß nicht, wo bei dir hier die 8600 W herkommen.
                        Das Script kann nur die eingestellten Werte vom Tibber Script verwenden.
                        Dieser Wert wird direkt an den Adapter e3dc.rscp übertragen.
                        Eventuell hast du da ein Problem.
                        Prüfe mal, was beim Adapter e3dc-rscp unter .EMS.SET_POWER_VALUE für Werte eingetragen werden.

                        P 1 Reply Last reply Reply Quote 0
                        • A
                          ArnoD last edited by

                          @da_hood sagte in E3DC Hauskraftwerk steuern:

                          ja diesen Wert habe ich und der steht immer auf 0, das hatte ich ja oben geschrieben.

                          Das ist seltsam, da dieser Wert direkt vom Adapter e3dc-rscp übernommen wird.
                          Kannst du mal bitte prüfen, ob beim Adapter e3dc-rscp e3dc-rscp.0.EMS.POWER_HOME der Wert aktualisiert wird.
                          Das Script CC reagiert nämlich auf die Aktualisierung von diesem Wert und übernimmt diesen für die weiteren Berechnungen.

                          oder muss das auch so sein?

                          const sID_LeistungHeizstab_W = modbus1.holdingRegisters.1.1000_Power;

                          Das musst du mir sagen 🙂 , nach deinem Bild weiter oben muss da die 1 rein.

                          Charge Control meldet folgendes:

                          javascript.0 08:27:13.128 info script.js.common.Charge_Control: Fehler bei der Berechnung des reinen Hausverbrauchs: Cannot read properties of null (reading 'val')

                          Das deutet darauf hin das eine Pfadangabe nicht stimmt 😉

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            DA_HOOD @ArnoD last edited by

                            @arnod said in E3DC Hauskraftwerk steuern:

                            Kannst du mal bitte prüfen, ob beim Adapter e3dc-rscp e3dc-rscp.0.EMS.POWER_HOME der Wert aktualisiert wird.

                            Ja der wird aktualisiert jede Sekunde
                            Hab es auch mit dem Modbus Wert versucht, da kommt der gleiche Fehler. Der Fehler muss fast im Script sein, oder?

                            @arnod said in E3DC Hauskraftwerk steuern:

                            Das musst du mir sagen , nach deinem Bild weiter oben muss da die 1 rein.

                            macht keinen Unterschied wie ich das eintrage, klappt dennoch nicht. 😞

                            A 1 Reply Last reply Reply Quote 0
                            • P
                              psrelax @ArnoD last edited by

                              @arnod sagte in E3DC Hauskraftwerk steuern:

                              Prüfe mal, was beim Adapter e3dc-rscp unter .EMS.SET_POWER_VALUE für Werte eingetragen werden.

                              Unter EMS.SET_POWER_VALUE ist 0 eingetragen.

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                ArnoD @psrelax last edited by

                                @psrelax
                                Während die Batterie aus dem Netz geladen wird ??
                                Über diese Objekt-ID wir die Ladeleistung vom Script CC vorgegeben und sollte, wenn über CC aus dem Netz geladen wird, nicht über den Wert maxLadeleistung gehen.

                                P 1 Reply Last reply Reply Quote 0
                                • A
                                  ArnoD @DA_HOOD last edited by

                                  @da_hood sagte in E3DC Hauskraftwerk steuern:

                                  Hab es auch mit dem Modbus Wert versucht, da kommt der gleiche Fehler. Der Fehler muss fast im Script sein, oder?

                                  Denke eher an den Einstellungen, da ja das Script bei mir und allen anderen funktioniert.
                                  Mach mal ein Screenshot von dem Bereich User Anpassungen im CC Sckript, was da eingetragen ist und ein Screenshot von den Objekten e3dc-rscp, dann kann ich mal vergleichen, ob die Pfadangaben alle stimmen.

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    psrelax @ArnoD last edited by psrelax

                                    @arnod sagte in E3DC Hauskraftwerk steuern:

                                    Während die Batterie aus dem Netz geladen wird ??
                                    Über diese Objekt-ID wir die Ladeleistung vom Script CC vorgegeben und sollte, wenn über CC aus dem Netz geladen wird, nicht über den Wert maxLadeleistung gehen.

                                    OK, heute ist es ja unter Tags und anscheinend wird ein Wert in diese Objekt-ID geschrieben.

                                    Wenn ich jetzt die Batterie manuell lade, wird in diesen Wert 9000 eingetragen und die Batterie lädt mit voller Leistung.
                                    Ich habe allerdings bei diesem Test nur ca. 1000W maximale Ladeleistung eingestellt.

                                    Ich habe jetzt noch einen Test durchgeführt.
                                    Über PV wird die Battrie mit 2-3000W geladen. Wenn ich die maximale Ladeleistung auf ca. 1000W stelle, vermindert sich die Ladeleistung der Batterie kein bisschen.
                                    0_userdata.0.TibberSkript.USER_ANPASSUNGEN.maxLadeleistung wird aber korrekt auf meinen eingestellten Wert gesetzt.

                                    A 1 Reply Last reply Reply Quote 0
                                    • A
                                      ArnoD @psrelax last edited by

                                      @psrelax sagte in E3DC Hauskraftwerk steuern:

                                      Über PV wird die Battrie mit 2-3000W geladen. Wenn ich die maximale Ladeleistung auf ca. 1000W stelle, vermindert sich die Ladeleistung der Batterie kein bisschen.

                                      Dir ist aber schon klar, dass die max Ladeleistung nur berücksichtigt wird, wen aus dem Netz geladen wird.
                                      Das hat nichts damit zu tun, wenn die Batterie über PV-Leistung geladen wird.

                                      P 1 Reply Last reply Reply Quote 0
                                      • A
                                        ArnoD last edited by

                                        Neue Version Charge-Control auf GitHub hochgeladen.
                                        Version: 1.5.17
                                        Änderungen:

                                        • Es wird bei den User Anpassungen geprüft, ob Objekt-ID's existieren und wenn nicht, wird eine Warnung im LOG ausgegeben.

                                        Bitte erst nach dem Update vom e3dc-rscp Adapter auf Version 1.4.1 verwenden.

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          psrelax @ArnoD last edited by

                                          @arnod sagte in E3DC Hauskraftwerk steuern:

                                          Dir ist aber schon klar, dass die max Ladeleistung nur berücksichtigt wird, wen aus dem Netz geladen wird.
                                          Das hat nichts damit zu tun, wenn die Batterie über PV-Leistung geladen wird.

                                          Jetzt ists mir klar 😊
                                          Allerdings wird immer die maximale Ladeleistung genommen, auch wenn ich aus dem Netz lade. Habs grad noch einmal getestet.

                                          A 1 Reply Last reply Reply Quote 0
                                          • A
                                            ArnoD @psrelax last edited by

                                            @psrelax sagte in E3DC Hauskraftwerk steuern:

                                            Allerdings wird immer die maximale Ladeleistung genommen, auch wenn ich aus dem Netz lade. Habs grad noch einmal getestet.

                                            Wenn du aus dem Netz lädst, was wird dann bei 'e3dc-rscp.0.EMS.SET_POWER_VALUE` angezeigt ?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            801
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3333
                                            1365043
                                            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