Donnerstag, 8. April 2021

PV-Anlagedaten in Home Assistant auswerten

 

Heute wird es hier mal un-photographisch:


Seit einiger Zeit beschäftige ich mich mit der Smart Home Software Home Assistant, die ich auf einem Raspberry Pi 4 betreibe.

Das System ist in der Lage verschiedene Automatisierungs-Plattformen in einem System zu vereinen, so dass das System die Automatisierungskomponeneten  der Fritzbox (Fritz!DECT – u.a. die Heizungsautomation die hier vor einigen Jahren beschrieben wurde) und vieles Andere zusammenführen kann (Z-Wave, ZigBee, WiFi).

Hier soll es jetzt im Detail darum gehen, wie ich an die Messwerte meiner Solaranlage im HA-System gekommen bin.

Unser 5kWh SENEC LI2.1 Batteriespeicher liefert die Daten über Web-Schnittstellen der Herstellers, was für die persönliche Information ok ist, aber für die Nutzung in Automatisierungen nichts nutzt.

Im ersten Schritt wurde über die Erweiterung HACS eine Datenintegration für den SENEC-Speicher installiert. Danach stehen die wesentlichen Daten zur Verfügung, wobei die Frequenz der Daten, wie in den Web-Interfaces eher gemächlich ist.

Erste praktische Nutzung war die Solargesteuerte Schaltung unseres 5l Warmwasser-Untertischgerätes in der Küche. Die Spannungsversorgung wird Abends um 22:00 ausgeschaltet und falls es nicht genug Solarstrom gibt spätestens um 10:00 Morgens wieder aktiviert. Die Restwärem reich in der Regel morgens aus solange man keinen großen Abwasch in der Zeit hat.

Solargesteuert wird der Speicher dann nach Sonnenaufgang eingeschaltet, sobald der Speicher mindestens einen Ladezustand von 5% hat und mindestens 500 Watt PV-Strom erzeugt werden.

Als zweite Anwendung wurde in einem bestimmten Zeitfensters am Morgen das Küchenrollo (über ein Shelly 2.5 WiFi Modul) zur Hälfte geschlossen wurde sobald die Sonne blendet ( > 3.000 Watt Energie erzeugt). Hier zeigte sich jedoch dass der Integral-Wert aus dem Senec-Speicher nicht präzise genug war, da unsere PV-Anlage nur 12 Module in Ost-Richtung (Küchenseite) hat und zusätzlich 20 Module auf der West-Seite so dass die „Störleistung“ vom Westen gegen Mittag deutlich zunimmt.

Der vorgeschaltete Wechselrichter von SMA weist über das Display Strom und Spannung über das eingebaute Display für Ost- & West-Seite separat aus. Nachdem ich festgestellt hatte, dass der Wechselrichter über eine ModBus-Schnittstelle verfügt habe ich mich auf die Suche nach Auslesemöglichkeiten gemacht und die Hypothese, dass sowas mit der grafischen Programmieroberfläche Node Red klappen könnte wurde nach einer kurzen Netz-Recherche bestätigt.

Also habe ich die Noder Red Erweiterung in Home Assistant installiert. Außerdem war die Installation einer Node Red Integration notwendig um die ausgelesenen Daten in das HA-System übergeben zu können.

Im Netz fand ich eine gut dokumentierte Umsetzung für so ein Problem (Hausbau Becker: Modbus Integration in Node-RED von SMA) wobei die Komplexität dieser Umsetzung deutlich reduziert werden konnte.


Meine abgespeckte Struktur, die tagsüber alle 60 Sekunden die Leitung von Ost- und West-Seite ausliest, sieht dann so aus – wobei die Abfrage bei ausgeschaltetem Wechselrichter (z.B.bei Dämmerung oder nachts) einen Messwert von -2,8 Mrd  liefert, den ich dann abfangen musste.

Obwohl ich mittlerweile weitere Automatisierungen mit Node Red gebaut habe habe ich festgestellt, dass ich immer noch mit gefährlichem Halbwissen unterwegs bin, dann an der Aufgabe die beiden Messwerte für Ost und West zu einem gemeinsamen Total-Wert zu addieren und zu übergeben bin ich bisher gescheitert – wenn als da jemand bitte einen Tip für mich hätte……

Da der aktuelle Total-Wert noch aus der Senec-Anlage kommt führen Verluste und Unterschiede in der Aufzeichnungsfrequenz momentan dazu, dass der West-Messwert gelegentlich den Total-Wert überschreitet.

Die grafische Umsetzung in der Lovelace sieht dann so aus:

 

In der Garfana-Erweiterung lassen sich die Messwerte so darstellen:


 

----------------------------------------------------------------------------------------------------------------------------

Für Nerds und Nachahmer jetzt noch etwas Programm-Code:

Node Red:

 [
    {
        "id": "d2d6601a.7125f8",
        "type": "tab",
        "label": "SMA-Gt",
        "disabled": false,
        "info": "Regelmäßiges Auslesen von Daten der Solaranlage \n\nSMA- Wechselrichter über ModBus"
    },
    {
        "id": "929489d6.baa6b8",
        "type": "inject",
        "z": "d2d6601a.7125f8",
        "name": "60s Abfrage",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "60",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 140,
        "y": 100,
        "wires": [
            [
                "875fd828.40cc58"
            ]
        ]
    },
    {
        "id": "cca0add4.907ac8",
        "type": "modbus-getter",
        "z": "d2d6601a.7125f8",
        "name": "30769 - 30774",
        "showStatusActivities": false,
        "showErrors": false,
        "logIOActivities": false,
        "unitid": "3",
        "dataType": "InputRegister",
        "adr": "30769",
        "quantity": "6",
        "server": "101bd986.8eac7e",
        "useIOFile": false,
        "ioFile": "",
        "useIOForPayload": false,
        "emptyMsgOnFail": false,
        "keepMsgProperties": false,
        "x": 280,
        "y": 260,
        "wires": [
            [
                "a18b0ca9.912008"
            ],
            []
        ]
    },
    {
        "id": "a18b0ca9.912008",
        "type": "buffer-parser",
        "z": "d2d6601a.7125f8",
        "name": "",
        "data": "responseBuffer.buffer",
        "dataType": "msg",
        "specification": "spec",
        "specificationType": "ui",
        "items": [
            {
                "type": "int32be",
                "name": "IDC1",
                "offset": 0,
                "length": 1,
                "offsetbit": 0,
                "scale": "0.001",
                "mask": ""
            },
            {
                "type": "int32be",
                "name": "UDC1",
                "offset": 4,
                "length": 1,
                "offsetbit": 0,
                "scale": "0.01",
                "mask": ""
            },
            {
                "type": "int32be",
                "name": "PDC1",
                "offset": 8,
                "length": 1,
                "offsetbit": 0,
                "scale": "1",
                "mask": ""
            }
        ],
        "swap1": "",
        "swap2": "",
        "swap3": "",
        "swap1Type": "swap",
        "swap2Type": "swap",
        "swap3Type": "swap",
        "msgProperty": "payload",
        "msgPropertyType": "str",
        "resultType": "keyvalue",
        "resultTypeType": "output",
        "multipleResult": false,
        "fanOutMultipleResult": false,
        "setTopic": true,
        "outputs": 1,
        "x": 490,
        "y": 260,
        "wires": [
            [
                "955c6aca.99d25",
                "57ae0485.de5dd4"
            ]
        ]
    },
    {
        "id": "551b7111.b1355",
        "type": "comment",
        "z": "d2d6601a.7125f8",
        "name": "STP 7000TL-20 711",
        "info": "",
        "x": 110,
        "y": 20,
        "wires": []
    },
    {
        "id": "955c6aca.99d25",
        "type": "function",
        "z": "d2d6601a.7125f8",
        "name": "P-DC1",
        "func": "var temp = (msg.payload.PDC1)\nmsg.payload = temp;\nmsg.topic = \"PDC1\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 670,
        "y": 260,
        "wires": [
            [
                "8e18adba.7a6b08"
            ]
        ]
    },
    {
        "id": "2da0ac02.2aa7cc",
        "type": "function",
        "z": "d2d6601a.7125f8",
        "d": true,
        "name": "Wirkungsgrad",
        "func": "var temp = (msg.payload[\"PAC1\"] / msg.payload[\"PDC1\"]) * 100\nmsg.payload = temp; \nmsg.payload = msg.payload.toFixed(1).replace('.', ',');\nmsg.topic = \"W1\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 1720,
        "y": 1480,
        "wires": [
            [
                "f6c144b5.8804d8"
            ]
        ]
    },
    {
        "id": "9d45249.2ec42d8",
        "type": "join",
        "z": "d2d6601a.7125f8",
        "d": true,
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "2",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 1550,
        "y": 1480,
        "wires": [
            [
                "2da0ac02.2aa7cc"
            ]
        ]
    },
    {
        "id": "f6c144b5.8804d8",
        "type": "ui_text",
        "z": "d2d6601a.7125f8",
        "d": true,
        "group": "bad4a5be.f7833",
        "order": 6,
        "width": 0,
        "height": 0,
        "name": "Wirkungsgrad1",
        "label": "Wirkungsgrad",
        "format": "{{msg.payload}} %",
        "layout": "row-spread",
        "x": 1720,
        "y": 1520,
        "wires": []
    },
    {
        "id": "fde7ffd7.08bf28",
        "type": "comment",
        "z": "d2d6601a.7125f8",
        "name": "Erklärung",
        "info": "Einfache Procedur zum Auslesen der beiden Momentanleistungen (Ost=2, West=1) vom SMA Wechselrichter.\n\nTechnisch im Wesentlichen eine Abgespeckte Kopie von: \nhttp://hausbau-becker.blogspot.com/2020/09/modbus-integration-in-node-red-von-sma.html\n\n----------------------------------------------------\n\n\n\n\n\n\n\n\n\n\n\nErklärung Modbus Wert S32 / U32:\n\n1 Register besteht aus 2x 8bit = 2x 1 byte.\n1 Wert besteht aus 2 Registern = 32bit bzw. 4 byte.\n\nUm einen Wert abzufragen, fragt man immer 2 Register ab.\nAlso ist Quantity =2.\n\nOffset fängt bei 0 an.\nOffset 0 = 1. 8bit, 1 = 2. 8bit (1. Register)\nOffset 2 = 2. 8bit, 3 = 3. 8bit (2. Register)\n= ein 32bit Wert\n\nOffset für den nächsten Wert fängt bei 4 an.",
        "x": 340,
        "y": 60,
        "wires": []
    },
    {
        "id": "57ae0485.de5dd4",
        "type": "modbus-getter",
        "z": "d2d6601a.7125f8",
        "name": "30957 - 30962",
        "showStatusActivities": false,
        "showErrors": false,
        "logIOActivities": false,
        "unitid": "3",
        "dataType": "InputRegister",
        "adr": "30957",
        "quantity": "6",
        "server": "101bd986.8eac7e",
        "useIOFile": false,
        "ioFile": "",
        "useIOForPayload": false,
        "emptyMsgOnFail": false,
        "keepMsgProperties": false,
        "x": 280,
        "y": 360,
        "wires": [
            [
                "408f41b.ad9324"
            ],
            []
        ]
    },
    {
        "id": "408f41b.ad9324",
        "type": "buffer-parser",
        "z": "d2d6601a.7125f8",
        "name": "",
        "data": "responseBuffer.buffer",
        "dataType": "msg",
        "specification": "spec",
        "specificationType": "ui",
        "items": [
            {
                "type": "int32be",
                "name": "IDC2",
                "offset": 0,
                "length": 1,
                "offsetbit": 0,
                "scale": "0.001",
                "mask": ""
            },
            {
                "type": "int32be",
                "name": "UDC2",
                "offset": 4,
                "length": 1,
                "offsetbit": 0,
                "scale": "0.01",
                "mask": ""
            },
            {
                "type": "int32be",
                "name": "PDC2",
                "offset": 8,
                "length": 1,
                "offsetbit": 0,
                "scale": "1",
                "mask": ""
            }
        ],
        "swap1": "",
        "swap2": "",
        "swap3": "",
        "swap1Type": "swap",
        "swap2Type": "swap",
        "swap3Type": "swap",
        "msgProperty": "payload",
        "msgPropertyType": "str",
        "resultType": "keyvalue",
        "resultTypeType": "output",
        "multipleResult": false,
        "fanOutMultipleResult": false,
        "setTopic": true,
        "outputs": 1,
        "x": 490,
        "y": 360,
        "wires": [
            [
                "8e51436.29a97c"
            ]
        ]
    },
    {
        "id": "8e51436.29a97c",
        "type": "function",
        "z": "d2d6601a.7125f8",
        "name": "P-DC2",
        "func": "var temp = (msg.payload.PDC2)\nmsg.payload = temp;\nmsg.topic = \"PDC2\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 670,
        "y": 360,
        "wires": [
            [
                "31f909c7.6b172e"
            ]
        ]
    },
    {
        "id": "69891463.07084c",
        "type": "ha-entity",
        "z": "d2d6601a.7125f8",
        "name": "SMA Power West",
        "server": "3ee43a18.3e87e6",
        "version": 1,
        "debugenabled": false,
        "outputs": 1,
        "entityType": "sensor",
        "config": [
            {
                "property": "name",
                "value": "sensor.pv_power_west"
            },
            {
                "property": "device_class",
                "value": "sensor"
            },
            {
                "property": "icon",
                "value": "mdi:solar-power"
            },
            {
                "property": "unit_of_measurement",
                "value": "W"
            }
        ],
        "state": "payload",
        "stateType": "msg",
        "attributes": [],
        "resend": true,
        "outputLocation": "",
        "outputLocationType": "global",
        "inputOverride": "allow",
        "outputOnStateChange": false,
        "outputPayload": "$entity().state ? \"on\": \"off\"",
        "outputPayloadType": "jsonata",
        "x": 1030,
        "y": 280,
        "wires": [
            []
        ]
    },
    {
        "id": "7c127324.031a54",
        "type": "ha-entity",
        "z": "d2d6601a.7125f8",
        "name": "SMA Power East",
        "server": "3ee43a18.3e87e6",
        "version": 1,
        "debugenabled": false,
        "outputs": 1,
        "entityType": "sensor",
        "config": [
            {
                "property": "name",
                "value": "sensor.pv_power_east"
            },
            {
                "property": "device_class",
                "value": "sensor"
            },
            {
                "property": "icon",
                "value": "mdi:solar-power"
            },
            {
                "property": "unit_of_measurement",
                "value": "W"
            }
        ],
        "state": "payload",
        "stateType": "msg",
        "attributes": [],
        "resend": true,
        "outputLocation": "",
        "outputLocationType": "global",
        "inputOverride": "allow",
        "outputOnStateChange": false,
        "outputPayload": "$entity().state ? \"on\": \"off\"",
        "outputPayloadType": "jsonata",
        "x": 1030,
        "y": 380,
        "wires": [
            []
        ]
    },
    {
        "id": "db32e83a.8f577",
        "type": "ha-entity",
        "z": "d2d6601a.7125f8",
        "name": "SMA Power total",
        "server": "3ee43a18.3e87e6",
        "version": 1,
        "debugenabled": false,
        "outputs": 1,
        "entityType": "sensor",
        "config": [
            {
                "property": "name",
                "value": "sensor.pv_power_total"
            },
            {
                "property": "device_class",
                "value": "sensor"
            },
            {
                "property": "icon",
                "value": "mdi:solar-power"
            },
            {
                "property": "unit_of_measurement",
                "value": "W"
            }
        ],
        "state": "payload",
        "stateType": "msg",
        "attributes": [],
        "resend": true,
        "outputLocation": "",
        "outputLocationType": "global",
        "inputOverride": "allow",
        "outputOnStateChange": false,
        "outputPayload": "$entity().state ? \"on\": \"off\"",
        "outputPayloadType": "jsonata",
        "x": 1030,
        "y": 480,
        "wires": [
            []
        ]
    },
    {
        "id": "875fd828.40cc58",
        "type": "within-time-switch",
        "z": "d2d6601a.7125f8",
        "name": "",
        "nameInt": "",
        "positionConfig": "7b813a32.05963c",
        "startTime": "sunriseStart",
        "startTimeType": "pdsTime",
        "startOffset": "",
        "startOffsetType": "none",
        "startOffsetMultiplier": 60000,
        "endTime": "sunsetEnd",
        "endTimeType": "pdsTime",
        "endOffset": "",
        "endOffsetType": "none",
        "endOffsetMultiplier": 60000,
        "timeRestrictions": 0,
        "timeRestrictionsType": "none",
        "timeDays": "*",
        "timeOnlyOddDays": false,
        "timeOnlyEvenDays": false,
        "timeMonths": "*",
        "timedatestart": "",
        "timedateend": "",
        "propertyStart": "",
        "propertyStartType": "none",
        "propertyStartCompare": "true",
        "propertyStartThreshold": "",
        "propertyStartThresholdType": "num",
        "startTimeAlt": "",
        "startTimeAltType": "entered",
        "startOffsetAlt": 0,
        "startOffsetAltType": "none",
        "startOffsetAltMultiplier": 60000,
        "propertyEnd": "",
        "propertyEndType": "none",
        "propertyEndCompare": "true",
        "propertyEndThreshold": "",
        "propertyEndThresholdType": "num",
        "endTimeAlt": "",
        "endTimeAltType": "entered",
        "endOffsetAlt": 0,
        "endOffsetAltType": "none",
        "endOffsetAltMultiplier": 60000,
        "tsCompare": "0",
        "x": 320,
        "y": 180,
        "wires": [
            [
                "cca0add4.907ac8"
            ],
            []
        ]
    },
    {
        "id": "8e18adba.7a6b08",
        "type": "switch",
        "z": "d2d6601a.7125f8",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "lt",
                "v": "0",
                "vt": "str"
            },
            {
                "t": "btwn",
                "v": "0",
                "vt": "num",
                "v2": "9999",
                "v2t": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 830,
        "y": 260,
        "wires": [
            [],
            [
                "69891463.07084c"
            ]
        ]
    },
    {
        "id": "31f909c7.6b172e",
        "type": "switch",
        "z": "d2d6601a.7125f8",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "lt",
                "v": "0",
                "vt": "str"
            },
            {
                "t": "btwn",
                "v": "0",
                "vt": "num",
                "v2": "9999",
                "v2t": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 830,
        "y": 360,
        "wires": [
            [],
            [
                "7c127324.031a54"
            ]
        ]
    },
    {
        "id": "101bd986.8eac7e",
        "type": "modbus-client",
        "name": "SMA-Gt",
        "clienttype": "tcp",
        "bufferCommands": true,
        "stateLogEnabled": false,
        "queueLogEnabled": false,
        "tcpHost": "192.168.1.149",
        "tcpPort": "502",
        "tcpType": "TPC-RTU-BUFFERED",
        "serialPort": "/dev/ttyUSB",
        "serialType": "RTU-BUFFERD",
        "serialBaudrate": "9600",
        "serialDatabits": "8",
        "serialStopbits": "1",
        "serialParity": "none",
        "serialConnectionDelay": "100",
        "unit_id": "3",
        "commandDelay": "200",
        "clientTimeout": "1000",
        "reconnectOnTimeout": true,
        "reconnectTimeout": "2000",
        "parallelUnitIdsAllowed": true
    },
    {
        "id": "bad4a5be.f7833",
        "type": "ui_group",
        "name": "Test2",
        "tab": "",
        "order": 3,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "3ee43a18.3e87e6",
        "type": "server",
        "name": "Home Assistant",
        "legacy": false,
        "addon": true,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true
    },
    {
        "id": "7b813a32.05963c",
        "type": "position-config",
        "name": "",
        "isValide": "true",
        "longitude": "0",
        "latitude": "0",
        "angleType": "deg",
        "timeZoneOffset": "99",
        "timeZoneDST": "0",
        "stateTimeFormat": "3",
        "stateDateFormat": "12"
    }
]

------------------------------------------------------------------------------------------------------------------

Die YAML-Oberfläche für Lovelace:

 type: vertical-stack
cards:
  - type: gauge
    entity: sensor.senec_battery_charge_percent
    min: 0
    max: 100
    severity:
      green: 40
      yellow: 20
      red: 0
  - type: entities
    entities:
      - entity: sensor.senec_battery_state_power
      - entity: sensor.senec_grid_exported_power
        name: Netz Einspeisung
      - entity: sensor.senec_grid_imported_power
        name: Netz Bezug
      - entity: sensor.senec_system_state
    state_color: true

type: 'custom:mini-graph-card'
entities:
  - entity: sensor.senec_house_power
    name: Total
    show_state: true
    fill: true
points_per_hour: 6
line_width: 2
height: 200
smoothing: false
font_size: 60
hours_to_show: 24
show:
  fill: true
  labels: true
  labels_secondary: false
name: Hausverbrauch

type: 'custom:mini-graph-card'
entities:
  - entity: sensor.senec_solar_generated_power
    name: Total
    show_state: true
    fill: true
  - entity: sensor.sensor_pv_power_east
    name: Ost
    show_state: true
    show: null
    fill: false
  - color: green
    entity: sensor.sensor_pv_power_west
    name: West
    show_state: true
    show: null
    fill: false
  - color: yellow
    entity: sensor.senec_battery_charge_percent
    name: Akku Beladung
    show_state: true
    decimals: 1
    show_points: false
    y_axis: secondary
    upper_bound_secondary: 100
    group_by: hour
    align_icon: right
points_per_hour: 2
line_width: 2
height: 200
smoothing: false
font_size: 60
hours_to_show: 24
show:
  fill: true
  labels: true
  labels_secondary: false
name: PV-Leistung

 

 



 

Sonntag, 27. Dezember 2020

Mein fotogarfisches Corona-Jahr 2020

Diese verrückte Jahr 2020 neigt sich dem Ende und ich möchte hier mal versuchen zurückzuschauen. Nach über 30 Jahren war es das erste Jahr ohne Dienst- und Flugreisen. Trotz vieler Einschränkungen ist aber doch so einiges gelaufen.

Januar: Dunkles Wetter, aber im Studio gibt es ja genug Licht

 

Februar: Das Jahr gibt sich noch harmlos. Die Museen haben noch geöffnet und im Kunstpalast Düsseldorf läuft die Lindbergh-Ausstellung

 

März: Die Nachrichten verdichten sich, aber in der Kölner Toyota-Show sind die Tore noch mal geöffnet

 

April: Lockdown mit Homeoffice und Besinnung auf die eigenen 4 Wände. Überraschenderweise wird die Anfang Januar bestellte Küche aber trotzdem Fristgerecht geliefert 

Bild mit dem alten Pentax K-Fisheye 17/4 (entzerrt) 
 

Mai: Glücklicherweise kann man sich ja wenigstens in der Natur frei bewegen - z.B. bei einem Niers-Spaziergang

 

Juni: Wetter und Stimmung werden besser und es ist auch ein Nordseeurlaub mit den (erwachsenen) Kindern drin. Einige Dinge im Stadtbild (z.B. in Stade) sehen aber anders aus

 

Juli: Zeit sich im Ruhrgebiet umzuschauen - Horizontobservatorium auf der Halde Hoheward bei Herten 


August: Bevor der nächste Lockdown kommt kann man am Maarkermeer sogar noch selgeln gehen 

 

September: Zeit für ein langes Motorradwochenende im Taunus bei Braunfels

 

Oktober: Noch einmal Zeit für eine Wanderurlaub in der EIfel bei Waxweiler... vor dem nächsten Lockdown


 

November: Egentlich sollte es ein Objekiv-Review für ein Lydith 30/3.5 werden, aber die Kleinbildfilme wurden fehlerhaft entwickelt. Ein schönes Makro ist dann trotzdem dabei gewesen


Dezember: Dieses Bild ist all denen gewidmet, die dieses Jahr Grill und Küche haben heißlaufen lassen und die am Ende des Corona-Jahres mit mehr kulinarischer Kompetenz und einigen Zusatz-Killos belohnt worden sind. 

Exemplarisch: Schichtfleich aus dem Dutch Oven

 

Einiges wurde ausgelassen und der Monatsgliederung geopfert - aber es war ein Ereignisreiches Jahr ....in einer Weise wie ich es nicht so schnell wieder brauche!

Mittwoch, 10. Juni 2020

Ship-Spotting - so nebenbei

Aktuell sind wir im Urlaub in Otterndorf an der Nordsee in der Elbmündung bei Cuxhaven. Dann kam in den Nachrichten: "Größtes Containerschiff der Welt im Hamburger Haven eingelaufen".

DIe HMM Algeciras ist mit 400m Länge, 61m Breite und einer Transportmöglichkeit von fast 24.000 Containern aktuell wohl weltweit am größten und auf Jungfernfahrt.

Da kam mir der Gedanke, das Schiffe die einlaufen auch wieder auslaufen und das Schiff dann bei uns an der Küste vorbeikommen müßte. Der angekündigte Auslauf war am 10.6.20 gegen 14:00 und eine Suche im Internet zeigte, daß die Fahrstrecke die Elbe runter bis zu uns ca. 4 1/2 h dauern würden.


Hilfe kam dann aus dem Internet mit der Seite Vesselfinder.com, auf der man die Ankunft des Schiffes gut verfolgen konnte.

Hier nun ein paar der Bilder:





Für so ungeplant war es eine interessante Abwechslung und wir waren bei weitem nicht die einzigen Schiffsgucker am Deich.

Ein schaler Beigeschmack bleibt für mich, wenn ich sieht, dass selbst so aktuelle und ertragskräftige Schiffe in Panama registriert sind  😟

Sonntag, 24. Mai 2020

Ein Jahr Solar – Ein Erfahrungsbericht


Hier mal wieder ein Blog-Beitrag, der nichts mit der Photographie zu tun hat: Anfang 2019 haben wir uns für eine Photovoltaik-Anlage mit Li-Speicher entschieden, die dann Ende April aufgebaut wurde und ans Netz gehen konnte.


Disclaimer: Es handelt sich hier um einen persönlichen Erfahrungsbericht – genannte Anbieter und Hersteller sind an diesem persönlichen Bericht nicht beteiligt und ich habe mich in keiner Weise finanziell Unterstützung erhalten – also keine bezahlte Werbung!


Rahmenbedingungen:

  • 3-Personen-Haushalt
  • Reihenendhaus aus dem Jahr 1992
  • Giebelausrichtung Nord (~10° Richtung Osten)
  • Dachschräge 45°
  • Warmwasser über elektronische Durchlauferhitzer (18 KWh Bad/11 kWh Küche)
  • Jahresstromverbrauch ca. 4.500 kWh

 Bei der Suche eines Anbieters für mein Vorhaben hatte ich zuerst ein Solar-Internet-Portal angeschrieben. Die beiden Vertreter, die daraufhin auftauchten waren nicht kompetent und die Angebote wenig fundiert.

Über eine Verbrauchermesse kam ich dann in Kontakt mit Herrn Häussler von der  Fa. ETM GmbH in Neuss, die dem ENERIX-Verbund angeschlossen ist. Von ihm wurden wir auch bei allen Anträgen und dem notwendigen Papierkram unterstützt


Die Installation:

  • 34 Solarmodule Heckert Solar NeMo 60P275 (275 Watt)
  • 12 Module Ost, 22 Module West
  • Leistung der Anlage 9,3 kWh peak
  • Prognostizierte Leistung 6928 kWh p.a.
  • Wechselrichter  SMA STP 7000TL-20
  • Batteriespeicher Senec Home 2.1 – 5 kWh
  • Gesamtkosten ~ 20.000€ brutto
  • EEG-Einspeisung: 0,1111€/kWh (für 20 Jahre)*

* Dieser Wert ist abhängig vom Zeitpunkt der Inbetriebnahme und fällt – der sogenannte Solar-Deckel, der die EEG Förderung ab einem bestimmten Ausbau begrenzt steht aktuell (Mai 2020) auf der Kippe.


Ost-Seite


Der Aufbau der Anlage und die Inbetriebnahme dauerten 3 Tage – der Zweirichtungszähler wurde durch die Stadtwerke eine Woche später installiert. Wichtig ist noch zu erwähnen, dass man für Berieb von Wechselrichter und Speicher am Aufstellungsort 2 Netzwerkanschlüsse (LAN) benötigt, die wir über einen WLAN-Access-Point eingerichtet haben.

West-Seite

Nun zu den Erfahrungen: Mai- Juli sind die ertragsstärksten Monate mit viel und lange Sonne, doch trotzdem  war der Speicher, der abends voll war, morgens sehr oft  leer. Die Suche nach den hohen Nachtverbräuchen zeigte dass  hauptsächlich eine größere Anzahl von Halogenstrahlern und ein defekter Kühlschrank dafür verantwortlich waren. Nach deren Austausch und etwas Feintuning an den Dauerverbrauchern (Standby und EDV-Netzwerk) konnte dann den Nachtverbrauch (wenn Alles Schläft) auf unter 200 W/h drücken. Damit war dann morgens fast immer genug Strom da, bis die Solaranlage wieder nachliefern konnte.Von Februar bis November sind die Erträge deutlich geringer und es werden weniger als 200 kWh/Monat erzeugt - das reicht dann nicht mehr, den Speicher zu füllen.


Der Speicher war ca. 6.000€ Netto ein großer Anteil der Investition . Nach den eben beschriebenen Optimierungen wurden von März bis Oktober etwa 4 kWh pro Tag entnommen. Legt man zugrunde, dass ich Strom aktuell für knapp 24€cent beziehe und für 11€cent einspeise spare ich durch den Speicher aktuell etwa 0,5 €  pro Tag à ~180 € p.a. Damit ist klar, dass der Speicher eine Liebhaberei ist, die sich wirtschaftlich nicht rechnen wird!


Eine weitere Besonderheit des Speichers, die ich so vorher nicht auf dem Schirm hatte, ist dass er beim Laden maximal 1,2 kW/h aufnimmt und beim Entladen maximal 2,4 kW/h abgibt. In der Praxis heißt das, dass beim Duschen über einen der Durchlauferhitzer 2,4 kWh aus dem Speicher, je nach Zeit und Sonne etwas vom Dach kommt, aber der Löwenanteil aus dem Netz gekauft werden muss.  Trotzdem wurde über das Jahr 2/3 des verbrauchten Stroms selber erzeugt. Dieser Wert verbesserte sich dann noch, nachdem wir den kleinen Durchlauferhitzer in der Küche durch ein 5-l-Untertischgerät ersetzt hatten.


Der geplante Ertrag der Anlage wurde im ersten Jahr mit etwas mehr als 8.000 kWh um mehr als 1.000 kWh übertroffen.


Die verfügbare SENEC App gibt eine gute Übersicht über die aktuellen Daten und den Status der Anlagen. Die Anlage lief im Wesentlichen gut – nach 11 Monaten musste allerdings der Wechselrichter des Speichers auf Garantie erneuert werden.


Papierkrieg:


Die Anlage muss beim Finanzamt angemeldet werden!


Umgeht man dabei die sogenannte Kleinunternehmerregelung bekommt man vom Versorger die Eispeisevergütung inkl. 19% Umsatzsteuer die man zusammen mit der Umsatzsteuer auf den Eigenverbrauch monatlich an das Finanzamt abführen muss. 
Vorteil diese Vorgehensweise ist, dass man sich dann die gezahlte Umsatzsteuer auf die gesamte Anlage (wenn zusammen installiert inkl. Speicher) erstatten lassen kann. Nach 6 Jahre kann man dann in die Kleinunternehmerregelung ohne Umsatzsteuer wechseln. Das ist etwas Aufwand – rechnet sich aber.


Zusätzlich muss man jährlich eine Einkommensüberschussrechnung vorlegen und den Gewinn der Anlage bei der Einkommensteuer mit angeben.


Hinweise für die Planung: 

Eine Ost/West-Anlage, wie bei mir installiert, hat den Nachteil, dass über den Tag verteilt weniger Strom erzeugt wird, aber dafür über eine längere Zeit des Tages - das kommt also dem Eigenverbrauch, der wirtschaftlicher als die Einspeisung ist, entgegen. Außerdem umgeht man das Problem mit der sogenannten 70% Regel.


Aktuell muss man, wenn man mehr als 70% der Peak-Leistung einspeisen will eine Einspeiseregelung installieren (teuer) was praktisch dazu führt, dass fast alle Anlage bei Einspeisung von 70% der Peak-Leistung abgeregelt werden. Be einer Ost/West-Anlage wie meiner kommt man nicht in die Verlegenheit, bei reinen Süd-Anlagen kann es aber sein, dass im Sommer mittags viel Strom abgeregelt statt eingespeist wird. Dieser Verlust lässt sich durch einen Speicher mit „peak shaving“-Funktion vermeiden. Dabei wird der Speicher vormittags prognosebasiert weniger geladen um zu Spitzenzeiten die überschüssige Energie zu speichern.

Bei Anmerkungen oder Fragen freue ich mich über Euren Kommentar! 
 
 
Nachträge Februar 2024/ Mai 2026:


 
2022 wurde der Speicher von Senec nach Bränden einzelner Geräte zeitwiese stillgelegt und zeitweise  gedrosselt. Im Nov. 22 wurden die beiden Speichemodule getauscht und ich nuitzte die Gelegenheit auf 10 kWh Kapazität aufzustocken.
 
Im August 2023 wurde der Speicher erneut, nach weiteren Zwischefällen bei anderen Kunden, auf 70% gedrosselt und ab Februar 2024 weiter auf 50%. Aktuell plant Senec den Speicher ab Sommer 24- Sommer 25 gegen ein V3-Modell mit LFP-Akku-Modulen auszutauschen.

Für die Ausfall- und Drosselungszeiträume wurde von Senec jeweils eine angemessene Entschädigung gezaht.

Im Oktober 2024 wurde schließlich unser Speicher V2.1 gegen eine V3 duo mit LFP-Akkus ausgetauscht. Statt 4 x 2,5 kWh sind jetzt nominell 2 x 5 kWh Module verbaut, die praktisch aber eher ein größere Kapazität von fast 12 kWh zu haben scheinen. Bei dem neuen Gerät wurde auch die maximale Abgabeleistung von 2,5 auf 3,8 kW erhöht, was den Fremdbezug in den Sommermonaten deutlich senkt. Bisher läuft der V3 duo LFP jetzt seit ca. 18 Monaten ohne Problem (wobei andere, günstigere Speicher mittlerweile eine bessere Leistung liefern.
Auf ein Umklemmen der PV-Anlage auf den internern Wechselrichter des V3 duo, was eine DC-Beladung über den Ost-String ermöglichen würde (bessere Wirkungsgrad), habe ich bisher verzichtet. Unser West-String überschreitet ohnehin den zulässigen Spannungsbereich des Senec WR.