Navigation

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

    NEWS

    • Monatsrückblick – September 2025

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

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    M
    • Profile
    • Following 2
    • Followers 0
    • Topics 7
    • Posts 67
    • Best 9
    • Groups 1

    Mabbi

    @Mabbi

    15
    Reputation
    20
    Profile views
    67
    Posts
    0
    Followers
    2
    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: 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: 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: 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: 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

      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: 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: Test Adapter Zendure Solarflow

      @karacho

      Der Ecotracker IR Stromzähler Aufsatz wird von Zendure unterstützt und geht mit Zendure + Akkus gut im Automatikmodus über die cloud.
      Man kann den Ecotracker zusätzlich per httpGet auslesen im IOBroker und die Daten per script nutzen.

      2357045d-7bb0-4144-8174-2af14764dea6-grafik.png

      power ist der aktuelle Netzbezug (positives Vorzeichen) oder Einspeisung (negatives Vorzeichen) in Watt.

      Über MQTT kann ich meinen AC 2400 nicht steuern aktuell, da ich ihn nicht aus der cloud gelöst bekomme. Das wäre halt die coole Lösung in Verbindung mit dem Ecotracker IR.

      posted in Tester
      M
      Mabbi

    Latest posts made by Mabbi

    • RE: Wallboc mit TCP Modbus

      @lesiflo
      Welches Modell hast Du denn bzw. welches 11KW Modell wäre vergleichbar ?

      posted in Hardware
      M
      Mabbi
    • Wallboc mit TCP Modbus

      Hi,

      ich brauche mal bitte Eure Hilfe....

      Aktuell habe ich eine em2go Wallbox, die seit nun 7 Monaten rumzickt wegen Kommunikationsabbrüchen die weder der Lieferant noch der Hersteller/Importeur(?) beheben konnte.
      Nach zig E-Mails und Versuchen geht diese nun zurück zum Lieferanten.

      Ich suche eine neue Wallbox für mein Haus und bin mit der Informationsflut online etwas überfordert:

      Diese WB soll folgendes können:

      • Steuerung per TCP-Modbus

        • Ladestrombegrenzung/-Steuerung
        • Stecker ziehen virtuell (habe einen R5 ETECH der manchmal echt zickig auf Ladeunterbrechungen reagiert bei PV-Überschussladen, deswegen sollte die neue WB virtuell disconnecten können, aktuell umgehe ich das Problem, indem ich per Renault API das Licht an und aus schalte, dann wacht er meistens wieder auf und lädt dann auch wieder nach einer Unterbrechung im PV-Überschussladen)
        • Auslesen ob Lade-Kabel im Auto steckt, generelle Steuerung (An/Aus etc.) der Wallbox
      • 1p/3p Laden, wenn möglich auch 2p, umschaltbar während des Ladevorgangs oder nur mit kurzer Unterbrechung.

      • Laden mit 2,x KW bis 11 KW

      • Stromzähler der WB muss fürs Finanzamt taugen

      • die WB sollte nicht mehr als 1k Euronen kosten (inkl. MwSt) wenn möglich, hier gibt es eine gewisse Flexibilität, wenn es knapp wird.

      • OPTIONAL: Mein EV kann V2H, was hoffentlich bald legal wird. Wäre cool ist aber kein muss, mein Hausakku ist idR voll ausreichend.

      RFID und andere Spielereien brauche ich eigentlich nicht, an der WB lädt nur der Renault.

      Cool wären Empfehlungen aufgrund eigener Erfahrung. Alle Empfehlungen sind natürlich unverbindlich.

      Danke für Eure Unterstützung im voraus.

      Nachtrag: Ich habe ein 3Phasen Anschluss-Kabel (Drehstrom?) und RJ45 für die Wallbox logischerweise schon verlegt.

      posted in Hardware
      M
      Mabbi
    • RE: Ausrichtung von PV-Modulen

      @ullij
      Hi,
      danke für das feedback, ich habe die beiden Posts editiert.
      Die Graphen zeigen die durchschnittliche Watt-Leistung je einzelnes PV-Modul.

      Formel: gerundet ohne NKS(Stringleistung / Anzahl der PV-Module im String)

      Ich hoffe, dass ist nun so auch technisch korrekt formuliert.

      posted in Off Topic
      M
      Mabbi
    • RE: Gleitkommazahl in Vis 2 anzeigen

      @roland-0

      Ich weiss nicht, ob das im html-code von vis geht, aber in den javascripten benutze ich immer parsefloat, um damit sinnvoll zu rechnen, Beispiel:

      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);
      

      Im vis html-Code sieht das dann so aus :

      {wert1:0_userdata.0.Datenpunkte.Strom.Einspeisung; (+wert1).toFixed(0)} W
      

      .toFixed(0) rundet ohne Nachkommastellen afair.

      In diesem Config von einem Label als Anzeige eintragen:

      58c32d98-c0ea-4bdf-b72f-c39b3c8d6338-grafik.png

      Mit folgendem Ergebnis im Vis:
      0352c1b8-b679-4009-82f0-ba3387530668-grafik.png

      Dort kann man mit etwas Einarbeitung ziemlich coole Sachen machen:

      Wertabhängige Farbsteuerung:

      {wert1:sma-em.0.3017XXXXX.psurplus; wert1 > 0 ? "#56e16b": "#bb4444"}
      

      hier eintragen:

      c65de9d4-2d99-48aa-8ec1-0d81ea0a1b4d-grafik.png

      Schaltet die Hintergrundfarbe des Labels von rot auf grün je nach Wert im Datenpunkt

      posted in Visualisierung
      M
      Mabbi
    • RE: Test eCharts Adapter

      @homoran

      Ich habe noch eine interessante Beobachtung gemacht:

      Wenn man die Visualisierung im Browser mehrfach mit Strg-R oder Strg-F5 (Windows) zum Nachladen zwingt, ändert sich das Verhalten der 'falschen' äusseren senkrechten Striche.
      Mal sind sie einseitig weg, oder kürzer oder dann wieder voll da. Verändert sich jedes mal beim manuellen Reload.

      Interessanterweise habe ich das Verhalten nicht in allen Diagrammen, kann aber in den Settings der unterschiedlichen Diagramme ausser den Datenpunkten keine deutlichen Diskrepanzen sehen. Hat jemand dazu eine Idee ?

      Hier hatte ich schon mal die Daten zu den beiden Diagrammen hochgeladen, das D_Energie ist das, das rumzickt (oben) während D_Akku eigentlich immer sauber anzeigt in der gleichen vis.

      Source zu den Diagrammen

      P.S.: Man kann sogar in dem alten Screenshot sehen, wie im oberen Diagramm der blaue nach unten expandierende spline links aussen eine Linie nach unten zieht.

      posted in Tester
      M
      Mabbi
    • RE: Ausrichtung von PV-Modulen

      Nachtrag:

      so sah es dann heute (1.10.2025) aus, gleiches Diagramm mit Durchschnittsleistung pro PV-Modul.
      Erstaunlicherweise nur gut 12% schlechter in der Spitze zu Anfang Juli, allerdings Wolken hier und da und insgesamt schon eine deutlich zeitlich reduzierte Sonnenscheindauer. Hier sieht man deutlich (Spitzenleistung), dass meine String Konfiguration mangels viele Module nach Süden eher über den Tag relativ ausgeglichen liefert (graue gestrichelte Linie Delta über alle Module):

      f9d057a5-de56-4891-964a-14868f4e192f-grafik.png

      Bemerkenswert ist, wie die hoch am Dach nach Westen montierten 10 Module(gelb) abends noch mal richtig liefern während der mit Optimierern ausgestattete 24er String(rot) darunter auch nach Westen fast nichts mehr beiträgt.

      posted in Off Topic
      M
      Mabbi
    • RE: Mitsubishi Heavy Industries Split Klimaanlage

      @saeft_2003
      Das sieht ja spannend aus, bin auf Deine weiteren Rückschlüsse zu den Sensordaten gespannt.
      Kannst du mit dem Microcontroller auch aktiv z.B. den ECO-Modus oder Self-Clean ansteuern ?

      Ist auf jeden Fall sehr interessant, ich will langfristig von der WLAN Steuerung meiner MHI-Klimas weg.

      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: Wallbox per Modbus integrieren

      @fox223

      Hi,

      ich habe eine em2go, die benötigt auf jeden Fall HOLDING-Register. Kann das evtl. Dein Problem sein ?
      Geräte ID 248, wo hast Du den Wert her ?

      Wenn Du kannst, dann besorg dir mal die TCP-Modbus config vom Hersteller mit den Registern.

      posted in Einsteigerfragen
      M
      Mabbi
    • Ausrichtung von PV-Modulen

      Hi,

      ich habe mit echarts (Adapter) mal den Leistung pro PV-Modul visualisiert (Datum: 1.7.2025, ein fast wolkenloser Tag mit echt viel Sonne):

      46d8afda-35a8-4472-9e01-0427a0aae1c6-grafik.png

      Grün:
      10x 435 W bifazial Richtung Osten, Dachschräge ca. 35° plus 6x 435 W nach Süden mit ca 50° Wandaufstellern, alle Module mit Optimierern wegen Bäumen(morgens)

      Rot:
      24x 435 W bifazial Richtung Westen, Dachschräge ca. 35°, alle Module mit Optimierern wegen Bäumen (abends)

      Gelb:
      10x 425 W Richtung Westen, Dachschräge ca. 35°,oberste Reihe, keine Optimierer

      Insgesamt stimmen die Himmelrichtungen nicht ganz, wir liegen mit der Südseite ca. 5-8° nach Osten gedreht, gleiches gilt für Ost und West.
      Die Module haben in der Spitze ca. 340 W geliefert, war eine ziemlich (blüten-)staubige Zeit denke ich.
      In der Regel erreiche ich die angegebene Leistung der Module nur, wenn es geregnet hat und direkt danach die Sonne ballert und zus. diffuses Licht von Wolken reflektiert.

      Mein Fazit nach knapp 3 Jahren:
      Bäume sind doof, wir haben im Osten (grün) eine Wand von uralten riesigen Eichen (nicht auf unserem Grundstück), wenn die kein Laub haben gehts mit der morgendlichen Solarlesitung, im Sommer bekommen wir erst ab so 9-10Uhr zufriedenstellende Werte. Besser ist es leicht wolkig, das diffuse Licht, das reflektiert wird, hilft echt bei Beschattung.
      Im Westen haben wir auch Bäume, die beschatten nachmittags/abends den unteren String (rot), auch doof, der weibliche Innenminister hat mit bis dato verboten, die Bäume alle auf eine sinnvolles Maß zu kürzen. Muss ich nichts weiter zu sagen oder ?
      Der String nach Osten produziert im Peak weniger, weil er mittags de facto schon von der Sonneinstrahlung 'wegkippt'.

      Unterm Strich lohnt sich bei mir die Ausrichtung in 3 Richtungen schon, Mittags haben wir eh genug PV-Leistung. Aber die Ostseite hilft mir morgens relativ früh den zus. Energiebedarfs meines Büros zu decken, sobald die Sonne rum kommt gehen dann auch sicher die Klimas/WP an bei Bedarf.
      Westen ist mit 34 Modulen natürlich die beste Seite, nach Süden bekomm ich einfach nicht mehr Module ans Haus.

      Wie sind Eure Erfahrungen denn so ?
      String mit einer Ausrichtung oder mehrfache Ausrichtungen bevorzugt ?

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