Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Mabbi

    NEWS

    • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    M
    • Profile
    • Following 3
    • Followers 0
    • Topics 10
    • Posts 98
    • Best 14
    • Groups 1

    Mabbi

    @Mabbi

    20
    Reputation
    30
    Profile views
    98
    Posts
    0
    Followers
    3
    Following
    Joined Last Online

    Mabbi Follow
    Starter

    Best posts made by Mabbi

    • RE: Suche Tester für komerz. Visu und Scriptbaukasten

      Ich tue sowas normalerweise nicht, aber hier dann doch....

      Ich habe bei dem Ersteller dieses threads vor gar nicht all zu langer Zeit eine kostenpflichtige support-Dienstleistung bestellt.

      Wir haben dann zusammen 1,5 - 2 h an dem Problem gearbeitet und konnten es aber leider nicht lösen.

      Entgegen meiner Erwartung und auch Erfahrung im Support Bereich wollte Matthias KEINE Bezahlung, hat also seine Zeit geopfert und wollte nur bei der Lösung des Problems auch bezahlt werden. Und das hat er auch so ehrlich und offen kommuniziert, seine Enttäuschung nicht helfen zu können hat den kommerziellen Aspekt (und ich hatte es ja aktiv gebucht) völlig überschattet.

      Auch wenn wir das Problem bei mir nicht gemeinsam lösen konnten, war er in meinen Augen fachlich versiert, freundlich und hilfsbereit.

      Abschliessend.... ich denke Matthias hätte in seinem Starterpost mehr Informationen zum Wesenskern seines Projekts machen sollen. Ich denke aber auch, das er einer der 'guten' ist, mich hat seine selbstlose Hilfedienstleistung beeindruckt.
      Deswegen dieser post.

      Just my 2 cents.

      P.S.: Habe per PP freiwillig gespendet. Ich hoffe es war angemessen.

      posted in Marktplatz
      M
      Mabbi
    • RE: Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)

      @maxclaudi
      Habe Dir das Ergebnis geschickt.

      posted in JavaScript
      M
      Mabbi
    • RE: Netatmo Authentifizierungfehler

      Nachtrag:

      mit etweas Glück ist das Problem schon identifiziert:

      https://github.com/iobroker-community-adapters/ioBroker.netatmo-crawler/issues/95#issuecomment-3323165302

      IMHO: Es Bedarf wohl einer neuen Adapterversion/-fix.

      smartcuc created this issue in iobroker-community-adapters/ioBroker.netatmo-crawler

      closed Stopped working #95

      posted in ioBroker Allgemein
      M
      Mabbi
    • RE: Wallbox per Modbus integrieren

      @Fox223

      Grundsätzlich, das ist aber meine persönliche und eventuell technisch nicht ganz durchdachte Antwort, würde ich erstmal den TCP MODBUS zum Laufen bekommen, dann per Script Befehle in die richtigen Register schreiben. Wenn Du dann Deine WB unter Kontrolle hast, Laden und Ladestrom z.B., dann kannst Du Dich immer noch mit EVCC beschäftigen.

      Ich habe auf EVCC verzichtet und steuere PV-Überschuss laden mit einem simplen Script.
      Das muss aber jeder für sich entscheiden, EVCC ist ein mächtiges und soweit ich höre auch gutes tool. Das kann aber nur funktionieren, wenn du den TCP-Modbus wirklich fehlerfrei am Laufen hast. Macht dann auch das Fehlersuchen/Debuggen einfacher, wenn alles was passiert aus Deinem Script kommt.

      Hier mal mein EV-Steuerscript (ist simpel, ich bin kein Java Profi und man kann das sicher besser machen, aber es funktioniert und ich habe es selber gebastelt):

      var Strombegrenzung_Wallbox_EV_laden, Aktuelle_Ladeleistung, Lade_Restart_Delay;
      // Strombegrenzung MINIMUM 60 Ampere (Hersteller)
      Strombegrenzung_Wallbox_EV_laden = 60;
      Aktuelle_Ladeleistung = 60;
      // Pause nach Ladeende bis Neustart in Millisekunden
      Lade_Restart_Delay = 1 * 60000;
      schedule("* * * * * *", async () => {
        // 1 Sekunden Timer
        // Wallbox Ladestrom EV
        setState('0_userdata.0.Datenpunkte.EV_Wallbox.EV-Ladestrom' /* EV-Ladestrom */, (String(Math.round(parseFloat(getState('modbus.1.holdingRegisters.16_Wirkleistung_L1').val) + parseFloat(getState('modbus.1.holdingRegisters.20_Wirkleistung_L2').val) + parseFloat(getState('modbus.1.holdingRegisters.24_Wirkleistung_L3').val)))));
        // Wallbox Ladekabel in Auto eingesteckt
        if (getState('modbus.1.holdingRegisters.2_Kabel_Status').val == 0) {
          setState('0_userdata.0.Datenpunkte.EV_Wallbox.Lade-Kabel_Status' /* Lade-Kabel Status */, (String(0)));
        } else {
          setState('0_userdata.0.Datenpunkte.EV_Wallbox.Lade-Kabel_Status' /* Lade-Kabel Status */, (String(1)));
        }
        // Wallbox max. Ladestrom berechnen
        // Ladestrombegrenzung neu berechnen
        //
        // ((Einspeisung / 1,5) + Ladestrom Aktuell
        // - (Netzbezug +675))
        // / 68,75
        // Ladegrenzen 3 phasig:
        // -> 11KW / 68,75 = 160
        // -> 4,1 KW / 68,75 = 60
        Strombegrenzung_Wallbox_EV_laden = Math.round(((parseFloat(getState('0_userdata.0.Datenpunkte.Strom.Einspeisung').val) / 1.5 + parseFloat(getState('0_userdata.0.Datenpunkte.EV_Wallbox.EV-Ladestrom').val)) - (parseFloat(getState('0_userdata.0.Datenpunkte.Strom.Netzbezug').val) + 675)) / 68.75);
        if (Strombegrenzung_Wallbox_EV_laden < 60) {
          // min. 60 Ampere Herstellervorgabe
          Strombegrenzung_Wallbox_EV_laden = 60;
        }
        if (Strombegrenzung_Wallbox_EV_laden > 160) {
          // max. 160 Ampere Herstellervorgabe
          Strombegrenzung_Wallbox_EV_laden = 160;
        }
        // Wallbox Strombegrenzung steuern
        if ((Strombegrenzung_Wallbox_EV_laden - Aktuelle_Ladeleistung >= 10) || (Strombegrenzung_Wallbox_EV_laden < Aktuelle_Ladeleistung) || ((Strombegrenzung_Wallbox_EV_laden - Aktuelle_Ladeleistung >= 1) && (Strombegrenzung_Wallbox_EV_laden == 160))) {
          // Nur in das Register schreiben wenn notwendig
          //
          // Strombegrenzung STEIGT  >= 10
          // ODER
          // Strombegenzung FÄLLT
          // ODER
          // Strombegenzung STEIGT und erreicht 160 (LIMIT)
          // -> Nachregeln in der Wallbox
          setState('modbus.1.holdingRegisters.91_Strombegrenzung_RW' /* Strombegrenzung */, Strombegrenzung_Wallbox_EV_laden);
          // Neuen Wert speichern für die Nachregelung
          Aktuelle_Ladeleistung = Strombegrenzung_Wallbox_EV_laden;
        }
        // Es muessen min. 4.2 KW PV-Ueberschuss vorhanden sein im Delta 5 min wie auch aktuell mindestens 4.5 kw
        if ((getState('0_userdata.0.Datenpunkte.Strom.Delta-Einspeisung-5-min').val > 4200) && (getState('0_userdata.0.Datenpunkte.Strom.Einspeisung').val > 4500) && (getState('0_userdata.0.Datenpunkte.EV.EV_Ladepause_nach_abschalten').ts < (new Date().getTime()) - Lade_Restart_Delay)) {
          if ((getState('modbus.1.holdingRegisters.2_Kabel_Status').val == 1) && (getState('0_userdata.0.Datenpunkte.Strom.Delta-Netzbezug-5-min').val <= 100)) {
            // Laden freigegeben
            setState('modbus.1.holdingRegisters.93_Lademodus_RW' /* Lademodus */, 0);
            setState('modbus.1.holdingRegisters.95_Ladebefehl_RW' /* Ladebefehl */, 1);
            setState('0_userdata.0.Datenpunkte.EV.EV_Ladepause_nach_abschalten' /* EV_Ladepause_nach_abschalten */, formatDate(getDateObject((new Date().getTime())), 'JJJJ.MM.TT SS:mm:ss.sss'), true);
            console.info(('Freies laden / Laden aktiviert / Strombegrenzung gesetzt auf: ' + String(Strombegrenzung_Wallbox_EV_laden)));
          }
        } else {
            // Bei 400W Netzbezug Delta 5 Minunten aussteigen (kleiner Puffer für kurze Verschattung)
            if ((getState('0_userdata.0.Datenpunkte.Strom.Delta-Netzbezug-5-min').val > 400) && (getState('modbus.1.holdingRegisters.95_Ladebefehl_RW').val == 1)) {
            // min. 60 Ampere Herstellervorgabe
            Strombegrenzung_Wallbox_EV_laden = 60;
            setState('modbus.1.holdingRegisters.91_Strombegrenzung_RW' /* Strombegrenzung */, Strombegrenzung_Wallbox_EV_laden);
            Aktuelle_Ladeleistung = 60;
            // Laden nur mit RFID Card manuell schalten (override)
            setState('modbus.1.holdingRegisters.95_Ladebefehl_RW' /* Ladebefehl */, 2);
            setState('modbus.1.holdingRegisters.93_Lademodus_RW' /* Lademodus */, 1);
            console.info(('RFID Card laden / Laden deaktiviert / min. Ladestrom gesetzt:  ' + String(Strombegrenzung_Wallbox_EV_laden)));
          }
        }
        // Laden aktiviert aber Kabel wurde gezogen
        if ((getState('modbus.1.holdingRegisters.2_Kabel_Status').val == 0) && (getState('modbus.1.holdingRegisters.95_Ladebefehl_RW').val == 1) && (getState('modbus.1.holdingRegisters.93_Lademodus_RW').val == 0)) {
          // Laden nur mit RFID Card
          setState('modbus.1.holdingRegisters.95_Ladebefehl_RW' /* Ladebefehl */, 2);
          setState('modbus.1.holdingRegisters.93_Lademodus_RW' /* Lademodus */, 1);
          Strombegrenzung_Wallbox_EV_laden = 60;
          // Laden nur mit RFID Card manuell schalten (override)
          setState('modbus.1.holdingRegisters.91_Strombegrenzung_RW' /* Strombegrenzung */, Strombegrenzung_Wallbox_EV_laden);
          Aktuelle_Ladeleistung = 60;
          console.info('Kabel gezogen -> RFID Card laden / Laden deaktiviert');
        }
      });
      

      Die hier in modbus.1.holdingRegisters. angegebenen Register sind spezifisch für meine em2go WB und NICHT generisch zu verwenden!

      Für die Profis unter Euch, ein sehr altes script, wo ich noch dachte, es ist eine gute Lösung, alle eigenen Datenpunkte als String anzulegen. Man lernt halt nie aus 🙂

      posted in Einsteigerfragen
      M
      Mabbi
    • RE: Test Adapter mhi-wfrac v2.1.x GitHub

      @hacki11 said in Test Adapter mhi-wfrac v2.1.x GitHub:

      @mabbi Die elektrische Energie bezieht sich wohl auf den aktuellen Tag. Es handelt sich um den Wert, der in der App ganz oben auf der Detailseite steht. Wie genau der Wert ist kann ich dir nicht sagen. Ich vertraue hier lieber auf einen vorgeschalteten Hutschienenzähler.

      Ok, ich habe leider keine Verbrauchsmessung auf den Leitungen, an denen die beiden Aussengeräte angeschlossen sind. Und meine Schaltschränke sind so voll, dass ich um jeden Platz auf den Hutschienen kämpfe. Mein Tigo Funk Adapter sitzt schon draussen, kein Witz:

      a8d910dd-f084-4023-9870-e76e35ee8d71-grafik.png

      Wenn ich auf die Eco Taste drücke, bekomme ich vom IG keinen Bestätigungston, daher gehe ich davon aus, dass dies bei dem Modell ohne Funktion ist.

      Das ist bei mir anders, die Innengeräte piepen bei jedem Durchschlaten mit der HI/Eco Taste auf der Fernbedienung.
      Schade, dass es damlas nicht reverse engineerd wurde, wäre halt cool gewesen

      Bzgl. Blockierzeit verstehe ich, und auch, dass du andere schützen willst aber ich sehe aktuell dennoch keine Regelungslogik im Adapter. Ich glaube die anderen Klimaadapter funktionieren hier ähnlich.

      Ok, verstehe ich. Und ich habe ja für mich eine Lösung schon umgesetzt, die unabhängig vom Adapter funktioniert.

      Danke für Deine Antworten.

      posted in Tester
      M
      Mabbi
    • RE: HowTo: Zusatz-Programme fuer jarvis v3

      @mcu: Mir hätte der Hinweis gereicht, dass ich dazu Expertenmodus brauche 🙂

      Das wäre z.B. der untere chart für die Akku-Visualisierung:

      • die XXX repräsentieren Platzhalter für persönliche Daten
      • die Skalierung bei der Energiefluss-Visualisierung ist auf 20 KW begrenzt obwohl die Anlage in der Spitze knapp 23 KW-Peak kann, mich interessieren die seltenen Spitzen einfach nicht und so ist es optisch besser dargestellt
      {
        "common": {
          "name": "D_Akku"
        },
        "native": {
          "url": "",
          "data": {
            "lines": [
              {
                "name": "SOC",
                "id": "zendure-solarflow.0.XXX.XXX.electricLevel",
                "instance": "system.adapter.history.0",
                "thickness": "1",
                "chartType": "spline",
                "aggregate": "minmax",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": "",
                "unit": "  %",
                "color": "#0052ff",
                "fill": 0.4,
                "shadowsize": "",
                "min": "-100",
                "max": "100",
                "ignoreNull": "0",
                "noFuture": false,
                "percentile": 50,
                "integralUnit": 60,
                "integralInterpolation": "none",
                "yticks": "2",
                "xaxe": "",
                "xticks": "6",
                "yOffset": "0",
                "points": false,
                "hide": false,
                "yaxe": "off"
              },
              {
                "name": "Laden",
                "id": "zendure-solarflow.0.XXX.XXX.gridInputPower",
                "instance": "system.adapter.history.0",
                "thickness": "1",
                "chartType": "steps",
                "aggregate": "minmax",
                "symbolSize": 3,
                "validTime": "",
                "xaxe": "off",
                "unit": "  kw",
                "min": "-2.300",
                "max": "2.300",
                "color": "#147e4b",
                "fill": 0.2,
                "commonYAxis": "",
                "yticks": "-1",
                "ignoreNull": "0",
                "noFuture": false,
                "yaxe": "left",
                "convert": "val / 1000"
              },
              {
                "name": "Entladen",
                "id": "zendure-solarflow.0.XXX.XXX.outputHomePower",
                "instance": "system.adapter.history.0",
                "thickness": "1",
                "chartType": "steps",
                "aggregate": "minmax",
                "symbolSize": 3,
                "validTime": "",
                "xaxe": "off",
                "unit": "W",
                "color": "#901d1e",
                "convert": "val * -1 / 1000",
                "max": "2.300",
                "min": "-2.300",
                "fill": 0.2,
                "yOffset": "",
                "ignoreNull": "0",
                "noFuture": false,
                "yticks": "1",
                "yaxe": "off",
                "commonYAxis": "1"
              },
              {
                "name": "Leistung gesamt",
                "id": "0_userdata.0.Datenpunkte.PV.Leistung_gesamt",
                "instance": "system.adapter.sql.0",
                "thickness": "1",
                "chartType": "line",
                "aggregate": "onchange",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": 35,
                "fill": 0.1,
                "min": "-8",
                "max": "22",
                "convert": "val / 1000",
                "color": "#b89021",
                "xticks": "4",
                "commonYAxis": "1",
                "ignoreNull": "0"
              }
            ],
            "marks": [
              {
                "color": "#0051ff",
                "lineId": "0",
                "upperValueOrId": "10",
                "lowerValueOrId": "",
                "lineStyle": "dashed",
                "text": "10 % ",
                "textColor": "#0051ff"
              },
              {
                "color": "#5c1011",
                "lineId": "2",
                "upperValueOrId": "-0.5",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "500 W ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#5c1011",
                "lineId": "2",
                "upperValueOrId": "-1",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "1000 W ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#5c1011",
                "lineId": "2",
                "upperValueOrId": "-1.5",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "1500 W ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#1d6923",
                "lineId": "1",
                "upperValueOrId": "2",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "2000 W ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "1",
                "upperValueOrId": "1.5",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "1500 W ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "1",
                "upperValueOrId": "1",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "1000 W ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "1",
                "upperValueOrId": "0.5",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "500 W ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#5c1011",
                "lineId": "2",
                "upperValueOrId": "-2",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "2000 W ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              }
            ],
            "timeType": "relative",
            "relativeEnd": "now",
            "range": "1440",
            "aggregateType": "step",
            "aggregateSpan": "1",
            "legend": "",
            "hoverDetail": true,
            "zoom": true,
            "animation": 0,
            "live": "300",
            "ticks": "",
            "width": "",
            "height": "",
            "noBorder": "",
            "window_bg": "#000000",
            "bg_custom": "",
            "x_labels_color": "",
            "y_labels_color": "",
            "border_color": "#343434",
            "grid_color": "",
            "grid_hideX": true,
            "grid_hideY": true,
            "border_width": "5",
            "barColor": "",
            "barLabels": "topover",
            "barWidth": "",
            "barFontSize": "",
            "barFontColor": "",
            "title": "",
            "titlePos": "",
            "titleColor": "",
            "titleSize": "",
            "legColumns": "",
            "legBgOpacity": "",
            "legBg": "",
            "timeFormat": "",
            "export": false,
            "legendDirection": "",
            "useComma": false,
            "noBackground": true,
            "legActual": false,
            "legFontSize": "",
            "legendHeight": "",
            "resetZoom": "600",
            "autoGridPadding": false,
            "theme": "default",
            "hoverNoInterpolate": false,
            "hoverNoNulls": false,
            "timeFormatCustom": false,
            "border_style": "ridge",
            "border_padding": "5"
          }
        },
        "type": "chart",
        "_id": "echarts.0.D_Akku",
        "acl": {
          "object": XXX,
          "owner": "XXX.XXX.XXX",
          "ownerGroup": "XXX.XXX.XXX"
        },
        "from": "XXX.XXX.XXX.0",
        "user": "XXX.XXX.XXX",
        "ts": XXX
      }
      

      Und der obere Energiefluss-Visualisierung:

      {
        "common": {
          "name": "D_Energie"
        },
        "native": {
          "url": "",
          "data": {
            "lines": [
              {
                "name": "PV-Leistung",
                "id": "0_userdata.0.Datenpunkte.PV.Leistung_gesamt",
                "instance": "system.adapter.sql.0",
                "thickness": "1",
                "chartType": "auto",
                "aggregate": "max",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": "",
                "unit": "  kW",
                "color": "#1a98a6",
                "fill": 0.2,
                "shadowsize": "",
                "min": "-14",
                "max": "20",
                "ignoreNull": "0",
                "noFuture": false,
                "percentile": 50,
                "integralUnit": 60,
                "integralInterpolation": "none",
                "yticks": "-1",
                "xaxe": "",
                "xticks": "6",
                "yOffset": "0",
                "points": false,
                "hide": false,
                "yaxe": "left",
                "convert": "val / 1000",
                "afterComma": "3"
              },
              {
                "name": "EV-Ladestrom",
                "id": "0_userdata.0.Datenpunkte.EV_Wallbox.EV-Ladestrom",
                "instance": "system.adapter.history.0",
                "thickness": "1",
                "chartType": "auto",
                "aggregate": "max",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": "",
                "fill": 0.2,
                "min": "-8",
                "max": "22",
                "convert": "val / 1000 * -1",
                "color": "#702ce6",
                "xticks": "4",
                "commonYAxis": "0",
                "ignoreNull": "0",
                "afterComma": "3"
              },
              {
                "name": "Eigenverbrauch",
                "id": "0_userdata.0.Datenpunkte.Strom.Eigenverbrauch",
                "instance": "system.adapter.sql.0",
                "thickness": "1",
                "chartType": "auto",
                "aggregate": "onchange",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": 35,
                "fill": 0.2,
                "min": "-8",
                "max": "22",
                "convert": "val / 1000 * -1",
                "color": "#00687d",
                "xticks": "4",
                "commonYAxis": "0",
                "ignoreNull": "0",
                "afterComma": "3"
              },
              {
                "name": "Netzbezug",
                "id": "0_userdata.0.Datenpunkte.Strom.Netzbezug",
                "instance": "system.adapter.sql.0",
                "thickness": "1",
                "chartType": "auto",
                "aggregate": "onchange",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": 35,
                "fill": 0.3,
                "min": "-8",
                "max": "22",
                "convert": "val / 1000 * -1",
                "color": "#b82124",
                "xticks": "4",
                "commonYAxis": "0",
                "ignoreNull": "0",
                "afterComma": "3"
              },
              {
                "name": "Einspeisung",
                "id": "0_userdata.0.Datenpunkte.Strom.Einspeisung",
                "instance": "system.adapter.sql.0",
                "thickness": "1",
                "chartType": "auto",
                "aggregate": "onchange",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": 35,
                "fill": 0.4,
                "min": "-8",
                "max": "22",
                "convert": "val / 1000",
                "color": "#10952f",
                "xticks": "4",
                "commonYAxis": "0",
                "ignoreNull": "0",
                "afterComma": "3"
              },
              {
                "name": "Klima Buero OG Betrieb",
                "id": "0_userdata.0.Datenpunkte.Temperatur-Steuerung.Klima_Buero_OG_Betrieb",
                "instance": "system.adapter.sql.0",
                "thickness": "1",
                "chartType": "line",
                "aggregate": "minmax",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": "",
                "fill": 1,
                "min": "0",
                "max": "10",
                "convert": "val * 0.25",
                "color": "#008b47",
                "xticks": "4",
                "commonYAxis": "",
                "ignoreNull": "false",
                "yOffset": "0",
                "percentile": 50,
                "integralUnit": 60,
                "integralInterpolation": "none",
                "yticks": "-1"
              },
              {
                "name": "Klima Buero Betrieb",
                "id": "0_userdata.0.Datenpunkte.Temperatur-Steuerung.Klima_Buero_Betrieb",
                "instance": "system.adapter.sql.0",
                "thickness": "1",
                "chartType": "line",
                "aggregate": "minmax",
                "isBoolean": null,
                "symbolSize": 3,
                "validTime": "",
                "fill": 1,
                "min": "0",
                "max": "10",
                "convert": "(val * 0.125)",
                "color": "#007583",
                "xticks": "4",
                "commonYAxis": "",
                "ignoreNull": "false",
                "yOffset": "0",
                "yticks": "-1"
              }
            ],
            "marks": [
              {
                "color": "#5c1011",
                "lineId": "0",
                "upperValueOrId": "-2",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "2 KW ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#5c1011",
                "lineId": "0",
                "upperValueOrId": "-4",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "4 KW ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#5c1011",
                "lineId": "0",
                "upperValueOrId": "-6",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "6 KW ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "2",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "2 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "4",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "4 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "6",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "6 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "8",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "8 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "10",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "10 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "12",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "12 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "14",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "14 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "16",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "16 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "18",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "18 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              },
              {
                "color": "#5c1011",
                "lineId": "0",
                "upperValueOrId": "-8",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "8 KW ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#5c1011",
                "lineId": "0",
                "upperValueOrId": "-10",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "10 KW ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#5c1011",
                "lineId": "0",
                "upperValueOrId": "-12",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "12 KW ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#5c1011",
                "lineId": "0",
                "upperValueOrId": "-14",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "14 KW ",
                "textSize": "10",
                "textColor": "#9b2e2f"
              },
              {
                "color": "#1d6923",
                "lineId": "0",
                "upperValueOrId": "20",
                "lowerValueOrId": "",
                "fill": 0,
                "lineStyle": "dotted",
                "text": "20 KW ",
                "textSize": "10",
                "textColor": "#1d6923"
              }
            ],
            "timeType": "relative",
            "relativeEnd": "now",
            "range": "1440",
            "aggregateType": "step",
            "aggregateSpan": "1",
            "legend": "",
            "hoverDetail": true,
            "zoom": true,
            "animation": 0,
            "live": "300",
            "ticks": "",
            "width": "",
            "height": "",
            "noBorder": "",
            "window_bg": "#000000",
            "bg_custom": "",
            "x_labels_color": "",
            "y_labels_color": "",
            "border_color": "#343434",
            "grid_color": "",
            "grid_hideX": true,
            "grid_hideY": true,
            "border_width": "5",
            "barColor": "",
            "barLabels": "topover",
            "barWidth": "",
            "barFontSize": "",
            "barFontColor": "",
            "title": "",
            "titlePos": "",
            "titleColor": "",
            "titleSize": "",
            "legColumns": "",
            "legBgOpacity": "",
            "legBg": "",
            "timeFormat": "",
            "export": false,
            "legendDirection": "",
            "useComma": false,
            "noBackground": true,
            "legActual": false,
            "legFontSize": "",
            "legendHeight": "",
            "resetZoom": "600",
            "autoGridPadding": false,
            "theme": "default",
            "hoverNoInterpolate": false,
            "hoverNoNulls": false,
            "timeFormatCustom": false,
            "border_style": "ridge",
            "border_padding": "5"
          }
        },
        "type": "chart",
        "_id": "echarts.0.D_Energie",
        "acl": {
          "object": XXX,
          "owner": "XXX.XXX.XXX",
          "ownerGroup": "XXX.XXX.XXX"
        },
        "from": "XXX.XXX.XXX.XXX",
        "user": "XXX.XXX.XXX",
        "ts": XXX
      }
      

      Ich weiss aber nicht, ob das wirklich als Vorlage taugt, ich benutze ja viele eigene Datenpunkte die in scripts errechnet/geschrieben werden. Deren Bezeichnung ist allerdings imho ziemlich eindeutig.

      Ich hoffe es hilft anderen User weiter.

      So sieht dann ein guter Tag aus:

      59a9af95-3dab-4bb3-a843-bb7cf90b5d2f-grafik.png

      Viel Sonne, keine Wolken aber etwas dunstig...

      Das sollte grob das ober Diagramm erklären:

      • grün nach oben ist PV-Einspeisung, rot nach unten Netzbezug
      • die fast transparenten Flächen mit Outlines nach oben und unten Gesamt-PV-Ertrag bzw. eigener Energiebedarf
      • die beiden Balken unten repräsentieren die Verwendung der Klmaanlagen im EG und OG
      • Morgens liegen wir leider bis ca. 10:30 im Baumschatten von hohen Eichen - wenig PC-Ertrag und 'nur' 10 Module auf der Ostseite
      • zuerst wurde der Haus-Akku geladen (letzte Nacht völlig leer gefahren bis in die Abschaltung bei SOC 15% )
      • als genug PV Überschuss da war kamen dann nacheinander die 4x Klimas dazu, repräsentiert durch die Balken unten im oberen Diagramm für EG und OG und heizten das Haus
      • danach hat sich dann das PV-Überschussladen des EV mit ca. 4 kW Minimum zugeschaltet
      • als der Hausakku voll war hat das EV bis zu 10.7 KW Ladeleistung erhalten, man sieht schön wie ich ab einem Level über 5 KW Ladeleistung anfange, einen 1 KW Einspeisepuffer aufzubauen, damit ich die Wallbox nicht zu oft ansteuern muss
      • gegen 15:00 Uhr hatte sich das EV seine benötigten ca. 22 KWh gesichert und die Wallbox wurde runtergefahren
      • gegen 18:45 Uhr gingen dann die Klimaanlagen mangels PV-Überschuss automatisch aus
      • zwischendurch habe ich manuell die Klimaanlagen im EG aus und später wieder eingeschaltet, mir war nachmittags einfach gefühlt zu warm im Büro

      Das untere Akku-Diagramm ist glaube ich selbsterklärend, SOC ist blau, grün ist Akku laden, rot Akku entladen und die gelbe Linie ist die PV-Gesamtleistung

      ...und ja, es ist noch ein weiterer 3kwh Akkupack(dann knappe 9 kwh gesamt) unterwegs, habe mich bei unserem regulären nächtlichen Energiebedarf nach einem sonnigen Tag etwas verkalkuliert, der Sonnenschein wird halt täglich zeitlich kürzer aktuell 🙂

      Fragen? Fragen!

      posted in JavaScript
      M
      Mabbi
    • RE: Test Adapter Zendure Solarflow

      Hi,

      ich habe gestern Nacht noch ein paar Fortschritte gemacht:

      Heute morgen:
      AC_charging.png

      Akku lädt mit 2300 Watt, kann nun auch mit 2400 Watt das Haus unterstützen.
      Der technisch interessierte Nutzer fragt sich nun, warum 2 unterschiedliche Werte ?

      Antwort: Weil die Zendure APP beim Input nur max. 2300 W erlaubt, beim Output aber das eigentlich für beide Werte beworbene 2400 W. Ich hoffe auf ein Update.

      Aktuell:
      76b5c3f3-4354-40dd-bc6e-8adfea57fcb1-grafik.png

      Wie man sieht, habe ich eben noch 5 Minuten in das vis investiert...

      Was ich aus dem Datalog heute Nacht gelernt habe:
      Das Haus hat Nachts eine durchschnittliche Grundlast von ca. 310 W.
      Durch meine träges und konservatives Script war der durchschnittliche Stromverbrauch heute Nacht 49 W.
      Der Akku hat mit durchschnittlich 258 W eingespeist.
      Und wieder Messungenauigkeiten...sigh.
      Um 7.03 Uhr heute morgen hat der Akku wegen SOC <= 9% abgeschaltet.
      Seit 9:32 Uhr lädt er wieder, da hatte er aber nur noch einen SOC von 8 % ? Habe nichts am Notstrom dran, ich packe das mal unter Messtoleranzen. (to be monitored)

      Script funktioniert, die Klimas/Wärmepumpen waren alle schon am Start als der Akku endlich ran durfte.
      Ladeleistungsregelung scheint auch zu funktionieren, um 11:01 Uhr war der Akku voll.

      Langsam werde ich zum happy camper. 🖖

      fyi: Ich habe einen shelly vor dem AC 2400. Die durchschnittlichte Differenz zwischen effektiver Stromaufnahme und effektiver Stromabgabe sind bei mir so ca. 16-18%, schwankt ein bisschen.
      Finde ich für einen reinen Stecker-Akku, der muss den Strom ja 2x wechselrichten, ganz OK oder ?

      posted in Tester
      M
      Mabbi
    • RE: Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)

      @maxclaudi
      Den screenshot habe ich mit der alten Version des universellen Scripts gemacht.
      Idz aber die letzte Version des scripts ohne Änderungen (60sec) eingebunden und das läuft einwandfrei

      posted in JavaScript
      M
      Mabbi
    • RE: Test Adapter Zendure Solarflow

      @schimi

      Jo, ich teste seit 3 Tagen mit dem AC 2400

      heute habe ich das erste 'träge' script zum Laufen gebracht, mangels ecoTracker im Versandweg einfach mal probiert, das über die cloud zu regeln.

      Steuern lässt sich der AC2400 einwandfrei, die Fehlermeldungen aus der letzten release-version sind weg (Danke an @nograx, echt schnell gelöst), an 2 Stellen habe ich aber noch den Wurm drin:

      Nummer 1:

      Ich kann den AC2400 auf inputLimit/outputLimit jeweils auf bis zu 2400W setzen im Object/Control.
      Allerdings pfuscht mir die cloud(denke ich?) da rein....nach kurzer sind die Werte wieder auf 800 begrenzt.
      Und das, obwohl ich vorher in der APP die Grenzen mit Bestätigung rausgenommen habe.

      Da ist aktuell unklar, warum das passiert...vor 2 Tagen konnte ich den noch problemlos auf 2400 stellen und er blieb da auch. Ich muss dass noch genauer austesten, was nun anders ist.

      Ansonsten, das Script steuert den AC 2400 alle 10 Sekunden und zieht die Einspeise- respektive Ladeleistung den aktuellen Werten nach...
      Ist natürlich träge und nicht genau, aber schon viel besser als mit Zeitplan zu laden und zu entladen....

      Mal ein Beispiel:
      1b1feecf-4b1a-4df7-839c-8211a85d5472-grafik.png

      Grundlast des Hauses am Abend so um die 500-550W, meine Frau bügelt (kein Witz), das Bügeleisen schaltet dauernd an und aus, Netzbezug pulst bis 3 KW hoch.
      Info: In meinem script habe ich die Limits aktuell auf 2000 W gesetzt aktuell.
      Man sieht im Log, wie das script den Akku ansteuert mit 2000 W Einspeisung, auf meiner vis tauchen die 2000 W auch kurz auf und werden dann nach 1-2 Sekunden auf 800 zurückgesetzt, im Protokoll kann man sehen, dass das nicht vom script kam. Da sind dann 10 Sekunden später nur noch 506W notwendig, weitere 10 Sekunden später zieht das Bügeldings wieder Saft etc.

      Ansonsten ganz unten im Bild:
      Komme mit dieser trägen Regelung ziemlich dicht an meinen realen Verbrauch ran, für eine cloudbasierte Steuerung deutlich besser als erwartet, das 800 W Limit ist halt noch zu knacken.

      Problem 2:
      ... ist nur witzig, hat aber nicht wirklich mit dem Adapter zu tun.
      Natürlich produziert meine Steuerung auch Einspeisung, sie regelt ja nur alle 10 Sekunden.
      Dann passiert was richtig krasses...mein Sunny Home Manager Smartmeter kommt darauf nicht klar und setzt einfach mal alle Werte auf 0.
      Sobald wieder Netzbezug da ist, kommen nach 2-3 Sekunden wieder brauchbare Werte.
      Ich denke, das Smarty versteht nicht, dass es eine Einspeisung geben kann, wenn der Wechselrichter keinen PV-Ertrag meldet.
      Ich habs erstmal rausprogrammiert und senke die Einspeisung durch den AC 2400 drastisch wenn alle Daten im Smarty 0 sind, um dann schnell wieder in den minimalen Netzbezug zu kommen, voila...Smarty liefert wieder brauchbare Werte.
      Ist halt ein dirty hotfix, nicht für die Ewigkeit hoffe ich.

      Noch 10 Tage bis der ecotracker kommt... dann pack ich das script als Fingerübung an die Seite und klemme den AC2400 hoffentlich nur noch im Automodus per Trackersteuerung an oder verbiete Ihm per Adapter zu Laden, wenn ich Strom für den Start meiner Klimaanlagen/Wärmepumpen brauche.

      @nograx : Danke für Deine Arbeit und Unterstützung 👍

      Nachtrag: Nochmal etwas gepfeilt, da jetzt keine Großverbraucher mehr pulsen, regelt der sich schön bei 15-60 W Netzbezug ein.
      Als Zielwert habe ich 50 W Netzbezg in der Berechnung angepeilt, um möglichst selten den Smarty abzuschiessen...

      0d999cdb-7414-472b-a6dc-fef01698431d-grafik.png

      posted in Tester
      M
      Mabbi
    • RE: Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)

      @schimi

      ... bin vor einiger Zeit schon den 1-click-way gegangen, da waren die Teile gerade mal stark reduziert:

      IMG_20251102_171903.jpg

      posted in JavaScript
      M
      Mabbi

    Latest posts made by Mabbi

    • RE: Test Adapter Zendure Solarflow

      @unterums

      Hi,
      wenn Du per mqtt steuern willst brauchst du nicht den Adapter von @nograx
      Deaktiveiere oder deinstallliere diesen bitte.

      Das anbinden an MQTT ist eigentlich einfach:
      Installiere den mqtt Broker/Client.
      In der Zendure App den Schalter für HEMS ausmachen und bei Einstellungen(Geräte) auf den mqtt Button klicken.
      Dort die IP deines Iobrokers eingetragen, den Port 1886, mqtt-Username und PW.
      Im IOBroker in der mqtt-Instanz 'Server/Broker' einstellen.
      Den 'Zugriff von allen IPs zulassen' und den Port, mqtt-Username und PW eintragen.
      Bei Server Settings immer leere Session für alle Clients anklicken.

      Danach kannst Du sogar HEMS wieder einschalten oder mit einem eigenen script steuern.

      Optional:
      Hol dir das js-script von @maxclaudi (https://forum.iobroker.net/topic/82723/zendure-solarflow2400-ac-evcc-tibber-und-pv-forecast)
      Stellst dort wie im ersten Post beschrieben die geforderten Daten ein und führe es dann aus.
      Das gibt Dir eine einfache Kontrolle über den Smartmode Deines Zendure (sollte immer 1 sein) und Prüfung/Steuerung der mqtt-Verbindung.

      posted in Tester
      M
      Mabbi
    • RE: Zendure SolarFlow2400 AC (EVCC, Tibber und PV-Forecast)

      @schimi
      45b59511-e8cb-4742-b1c8-daa897113185-grafik.png

      genau das mache ich auch.
      Aber wenn die Akkus nicht synchron sondern im Wechsel angesteuert werden, fängt der 'Regelkreis' manchmal an zu pumpen (nur bei Einspeisung), und das obwohl ich sowohl die Gesamtleistung plus/minus der Akkus heranziehe und auch die Einzelleistung pro Akku vergleiche und Loadbalancing zwischen den beiden mache, und das optional mit IST-Werten oder einem Delta über den Regelzeitraum der Akkus.

      Die Problematik ist wohl, dass bei niedrigem PV-Ertrag, wo die Akkus theoretisch zwischen Laden und Entladen schalten würden, je nachdem welcher Verbraucher sich gerade zu oder abschaltet, die ganze Regellung in eine Schwingung versetzt wird, aus der Sie nicht mehr rauskommt.
      Rein technisch habe ich die Regelung in .net mit simulierten Daten laufen lassen (ist halt viel einfacher zu debuggen), da bekomme ich ein relativ sauberes Verhalten, Schwingungen werden im Load-Balancing wieder eingefangen.
      Aber ich habe hier gerade einen klassischen 'Theorie und Realität' Fall.
      Im Augenblick habe ich die Trägheit der Steuerung im Verdacht, ich regel ja nur alle 15 Sekunden und genau an der PV-Ertrags Grenze können in dem Zeitraum auch in den Delta/Zeit Werten schon wilde Sachen passieren.
      Ich will das aber nicht mit einer übermässig grossen Totzone erschlagen.

      Wenn ich mit exakt der gleichen Steuerung auf die abwechselnde Ansterung der Akkus verzichte
      6023692f-9852-40f2-be4b-fe2407282368-grafik.png

      ist alle scool und ich kann ohne Totzone sauber regeln.

      Ich werde mal alle relevanten Regel-Daten in Datenpunkte schreiben, die Historie aktivieren und mir das dann per Diagramm anschauen... im zeilenweisen Textdebugging komme ich hier aktuell nicht mehr wirklich weiter.

      posted in JavaScript
      M
      Mabbi
    • RE: Zendure SolarFlow2400 AC (EVCC, Tibber und PV-Forecast)

      Die Dämpfung, die ich eingebaut habe (fast ein Integral 🙂 ) führt im Wechselbetrieb der beiden AC2400 zu einem pumpen, und das nur bei der Enspeisung. Wenn ich die AC2400 synchron laufen lasse, dann ist es weg ... ?
      7c41d697-162e-442b-b58f-28b2742b13ac-grafik.png

      Das wechselseitig ansteuern der AC2400 ist komplexer als ich dachte, vor allem in dem dynamischen Bereich, wenn es gerade um die PV-Ertragsschwelle wo das Haus versorgt ist zwischen Laden und Entladen schwankt.
      Dafür war eigentlich die Dämpfung drin.... am WE nochmal an die Tastatur 🙂

      Nicht das ich schon 3 Loadbalancing/Dämpfungs-Funktionen in den letzten Wochen durch hätte...
      cd12e593-4509-4bcb-be34-60614fe1d6e4-grafik.png

      Nach dem check der Daten von heute habe ich die Nachts-Nicht-Laden Logik erweitert:
      f45d74ee-3369-45c5-b91b-99c002799376-grafik.png

      Wenn der durchschnittliche PV-Ertrag der letzten 5 Minuten unter 250 W fällt wird Akku-Laden nun auch verhindert.
      Diese Abfrage versetzt beide Akkus strikt in den output-Modus(Entladen) solange mindestens eines der beiden Argumente erfüllt ist.

      posted in JavaScript
      M
      Mabbi
    • RE: Zendure SolarFlow2400 AC (EVCC, Tibber und PV-Forecast)

      @schimi

      Ah ok, da bin ich auf der neusten Version, letztes Update kam vor ca. 2 Wochen.
      Hat Dein AC2400 irgendwo einen Hinweis auf die Hardwarerevision ?
      Meine sind vom Juni und von Oktober, nicht das sich da was geändert hat, weil die evtl. neuer sind als Deiner ?

      Btw...für alle Interessierten, Zendure verkauft den AC2400 plus 1x AB3000X (2.88 KWh) aktuell für 3 stellig.
      Ich war kurz geneigt den 3. zu kaufen, was ich eigentlich erst in 2026 machen wollte.

      posted in JavaScript
      M
      Mabbi
    • RE: Zendure SolarFlow2400 AC (EVCC, Tibber und PV-Forecast)

      Mein Status:

      • 2x @maxclaudi script ist an(eins je Akku), Smartmodeinfo: 1 , mqttconnectinfo: 1
      • Meine 2x mqtt settings sind mit Deinen identisch
        3d45dd2e-0e76-45bc-8cba-4b2795fa27f3-grafik.png
      • Beide Akkus sthen keine 2 Meter von einem Accesspoint entfernt
      • Pings sind ok:
        34d4de44-9088-4740-b188-c25e24c1cd6e-grafik.png
      • Die 2 Akkus sind in der App alls offline vermerkt, HEMS bei beiden aus, Mqtt EInstellungen passen, bin aus der App abgemeldet.
      • Die 2 Akkus sind vom WAN ausgesperrt, der EcoTracker habe ich in der App abgemeldet und ihm dann WAN Zugang gesperrt. Sperre umfasst sowohl IP wie auch MAC-Adresse bei allen 3 Geräten.

      Hier: 0_userdata.0.zendure.XXXXXXXXXXXXXXX.solarFlow2400AC.version steht bei mir stumpf eine 2 drin
      Das ist wohl kaum die Firmware.
      @schimi : Wo sehe ich die Firmmware ?

      posted in JavaScript
      M
      Mabbi
    • SMA Wechselrichter Probleme seit letztem Update

      Hi,

      eigentlich gehört dieses Thema nicht in dieses Forum, da hier aber sehr viele technisch versierte Mitglieder sind, will ich mal eine Frage stellen.....

      Thema:
      Vor ca. 5 Wochen hat die Firma SMA ein Update für Wechselrichter (SMA TripowerX 20-50) ausgerollt und ota installiert.

      Seit dem SMA Versions Update (Version 03.14.22.R) fallen bei mir fast täglich einzelne Strings kurz (bis zu 20 Minuten) aus.
      Jeder meiner 3 Strings ist betroffen, 2 davon haben Tigo Optimierer. Shadefix im Wechselrichter ist deaktiviert.

      2a01e59b-cd17-48a4-b563-55326cf3db9c-grafik.png
      Verhalten ist immer gleich: Stringleistung ist niedrig, dann 'pumpt' ein String komplett runter auf 0 Watt.

      Ich habe das in einem PV-Forum gepostet auf der Suche nach Hilfe, bis jetzt habe ich einen weiteren Betroffenen gefunden, dieser scheint sich mit dem Problem schon intensiver beschäftigt zu haben, er könnte eine Verbindung zum MPPT gefunden zu haben:
      28ac175d-f591-4521-855a-205b3076310b-grafik.png
      Credits an amigaherbie @ Photovoltaik-Forum, Post #9 & #13
      https://www.photovoltaikforum.com/thread/253526-neue-firmware-sunny-tripower-x-03-14-22-r/?pageNo=1

      Sein Lösungsansatz ist aber für mich aufgrund der Modulanzahl pro String nicht möglich laut meinem Solateur.

      Frage: Kann jemand von Euch ähnliche Beobachtungen machen (es sind wohl nicht alle SMA Setups betroffen) ?

      Schmeisst doch mal bitte die einzelnen String Leistungen (kann man per tcpModbus einfach auslesen) in die Überwachung und schaut Euch das ein paar Tage später in einem Diagramm an. Vielen Dank.

      posted in Off Topic
      M
      Mabbi
    • RE: Zendure SolarFlow2400 AC (EVCC, Tibber und PV-Forecast)

      Kleine aber sinnvolle Fortschritte:

      @Schimi:
      Ich habe mich von Deinem Integral getrennt 😞

      Was aktuell im Blockly funktioniert:
      Beide Zendure AC2400 takten und steuern im Wechsel
      Hat mir viel Kopfzerbrechen gemacht die beiden Regelungen sinnvoll vom Aufschauckeln abzuhalten
      76d8e8c5-0a3f-4f06-bf3a-175ef9df7e4a-grafik.png
      bis hin zu einer lädt und der andere speist ein...
      a37167b5-a751-4bf5-ba43-d89896f13d39-grafik.png

      Das ist beides gelöst und ich habe nun ein sinnvolles Leistungs-Synchronisation (Loadbalancing) zwischen den beiden:
      68a3a5d0-d042-47eb-b146-c6dc9be8c6e9-grafik.png

      Sieht doch schon besser aus 🙂

      • Es gibt nun einen Nachtmodus (Sonnenuntergang bis Sonnenaufgang) der beide Zendure strikt im Output-Modus festhält, ich nutze ja kein Tibber o.ä.

      • SOC Balancing zwischen den beiden Akkus
        Erstaunlicherweise Laden und Entladen die beiden nicht wirklich parallel (beide Akkus liefen da noch synchron in der Ansteuerung ohne Wechseltaktung):
        4b1f3b41-15cb-47ac-911c-ca597a6a01c9-grafik.png

      Vielleicht ist SOC gar nicht so wichtig bei diesem Akkutyp, der blaue und der lila Graph sind die SOC-Werte.
      Vielleicht laden und entladen die auch unterschiedlich, weil der eine aktuell im Technikraum und der andere bei mir im Büro steht... ergo unterschiedliche Temperaturn in der Nacht (wir reden hier von gerade mal 20° zu 16° Grad Unterschied) ?

      Aktuell steure ich die Akkus beim einem SOC Unterschied von mehr als 5% gezielter an um das auszugleichen.
      Bin aber nicht sicher, ob ich den Part behalten werde.

      • Eine indirekte Unterstützung für meine Wallbox ist integriert.
        Es gibt ein prozentuales Prio-System, bei gleicher Priorität zwischen Haus-Akku und EV 'sieht' die WB einen Teil der Akku-Ladeleistung als zus. virtuellen PV-Überschuss. Damit wird die WB früher motiviert das EV zu laden.
        Über einem bestimmten SOC halten die Akkus die Wallbox virtuell (ja. hier kann es zu kurzem geringen Netzbezug kommen weil die Akkus nicht schnell genug schalten auf Entladen) am Leben. Funktioniert noch nicht ganz optimal, aktuell steuert meine go-E nur alle 90 Sekunden per Adapter. Und für genau den Adapter erzeuge ich eine teilweise gefakete PV-Einspeisungs-Leistungswerte.
        Funktioniert aber schon ganz gut, hier war der Haus-Akku etwas höher in der Prio und hat der WB immer mehr Leistung geklaut, als der Akku fast voll war, bekam die WB wieder mehr Leistung freigeschaltet:
        41525309-a0e2-4953-838d-2471ad154309-grafik.png
        Lila oben ist die WB, grün unten die Ladeleistung beider Akkus kombiniert, man kann sogar die kurzen Einspeisungpeaks sehen, als die WB von 1- auf 3-phaisg geschaltet hat und ca. 20 Minuten später wieder zurück wegen insgesamt sinkendem Solarertag.

      Und auch wenn die roten Netzbezugs-Peaks (ich nutze da MAX-Werte) im oberen Diagramm wild aussehen, das Haus hat heute insgesamt laut Smartmeter gerade mal 560 Wh verbraucht. Und das obwohl ich von 29,3 KWh Produktion nur 3,39KWh eingespeist habe, alles andere ist in Wärme, Haus-Akku für die Nacht und EV geflossen.

      Langsam bekommt es Hand und Fuß.
      Ich muss noch etwas an den scripten feilen und testen, dann würde ich die hier auch zu Verfügung stellen, solange @Schimi damit grün ist.

      Und nun der Wehrmutstropfen am Schluss:
      Wenn ich die ZendureAC2400 einzeln schneller als 14 Sekunden in der Ansteuerung takte, dann sieht man zwar die mqtt Änderung in den NUMBER/xxx-Limit Werten wie diese vom SET übernommen werden im ca. 1 Sekundentakt, die Werte im Sensor/ gridinput/homeoutput power frieren aber ein und mein Smartmeter bestätigt das auch.

      Ich komme einfach nicht dahinter, warum beide Zendure AC2400 sich bei mir so verhalten... 😞

      posted in JavaScript
      M
      Mabbi
    • RE: Zendure SolarFlow2400 AC (EVCC, Tibber und PV-Forecast)

      Habe fertig...alles nun schön in Funktionen gepackt (bis auf die Presets der Konstanten/Globals):

      29a817e2-c3fc-4d46-b636-664fb9e805e6-grafik.png

      Ein bisschen stolz bin ich auf das hier:

      d2452022-d588-4892-9580-745ae3ea0a22-grafik.png

      im Zusammenspiel mit dem hier (Beispiel):

      2e7ebbdc-485c-4d56-8c09-6aebe6ad0882-grafik.png

      Volle Flexibilität bei den Datenpunkten (werden aus Bausteinen je nach Akku_Nr zusammengebaut und um die Object-Subfolder, Zielobjekte und evtl '.SET' (je nachdem ob man liest oder schreibt) erstellt.

      So ist da hinzufügen eines weiteren Akkus einfach nur die Seriennummer und die MQTT.X Nummer in die Variable einzutragen und schon funzt es(hoffentlich).

      Ist noch ein bisschen rough, muss noch 'sonst falls' bei der Akku-Ansteuerung bekommen, die Variaben für den 3. Akku fehlen noch und die Object_ID Funktion werde ich noch mit einem Rückgabewert versehen, aber das Prinzip wird glaube ich schon ersichtlich.

      Heute leider keine Zeit mehr zum Testen... 😞

      posted in JavaScript
      M
      Mabbi
    • RE: Zendure SolarFlow2400 AC (EVCC, Tibber und PV-Forecast)

      Hi,

      cooles java script, danke fürs bauen

      Ich habe mal angefangen, Dein Javascript für Nerds wie mich in Blockly zu bauen:
      bb0a3dd6-18cb-4f6e-ba61-fc94a2e9d4cc-grafik.png

      Allerdings werde ich in meiner Version EVCC und Tibber weglassen, dafür wird Sie mit 2x Zendure AC2400 im Wechseltakt arbeiten. Entweder regel ich dann hoffentlich insgesamt schneller oder schone die Hardware etwas...wir werden sehen.

      posted in JavaScript
      M
      Mabbi
    • RE: Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)

      @schimi

      ... bin vor einiger Zeit schon den 1-click-way gegangen, da waren die Teile gerade mal stark reduziert:

      IMG_20251102_171903.jpg

      posted in JavaScript
      M
      Mabbi
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo