DYI PV Akku - Nistkasten mit Kamera - SMA Energymeter

Do it yourself Photovoltaik Akku

Schematischer Aufbau:

Als Ergänzung zur bestehenden PV Anlage mit SMA Wechselrichter habe ich mir einen AC-seitigen PV Akku "gebaut". Die Steuerung übernehmen sog. Trucki Platinen, die es für bestimmte Wechselrichter und Ladegeräte zu kaufen gibt. Die Trucki Platinen beziehen ihre Daten von einem Shelly Energymeter und wissen zu jedem Zeitpunkt, ob gerade Strom im Überfluss vorhanden ist (viel Strom von der PV Anlage) oder ob Strom vom Energieversorger bezogen wird (zB Nachts oder bei wenig Sonnenschein). Abhängig davon wird der Akku geladen oder entladen.

Eine Auswertung über die erzeugte PV Leistung (Türkis), den Import und Export (Orange) und der Ladeleistung (Lila). Man kann erkennen, dass nachts der Akku entladen wird. Sobald morgens genügend Strom von der Solaranlage kommt, wird der Akku wieder geladen. Gegen 13:40 Uhr ist der Akku voll und der erzeugte Solarstrom wird exportiert. Abends beginnt dann wieder die Entladung des Akkus.

Diese u.g. Auswertung zeigt die absoluten Anteile im April 2025:


Prozentual sind das:

  • Direktverbrauch PV: 43 %
  • Bezug vom Energieversorger: 19 %
  • Akkuentladung: 32 %
  • Nicht erfasste Verluste, Messfehler, Überschüsse: 6 %
  • Birdcam im 'Detail'

    Da mich immer wieder Nachfragen erreichen, wie ich die Birdcam umgesetzt habe, und die Antwort nicht immer den Erwartungen entspricht, habe ich mich dazu entschlossen, das Ganze hier zu dokumentieren. So kann sich jeder ein Bild davon machen.

    Den Aufbau des Nistkastens habe ich nicht selbst entwickelt, sondern mich weitgehend an diesem Vorbild orientiert. Einige Details habe ich jedoch angepasst – zum Beispiel verwende ich externe WLAN-Antennen, und die Kamerahalterung habe ich einfacher gestaltet (eine simple Presspassung). Die Lichtsteuerung (sehr zu empfehlen) sowie die Abmessungen habe ich übernommen. Sollte die Kamera nicht mehr erhältlich sein oder ein neueres Modell verfügbar sein, muss man die eventuell geänderten Abmessungen natürlich berücksichtigen.

    Der IT-Teil hingegen ist eindeutig meinem inneren Nerd entsprungen. Die Skizze vermittelt einen Überblick über die Komponenten. Sicher könnte man das Ganze auch einfacher gestalten, aber... naja 😉. Letztlich hat sich diese Umsetzung bewährt, da sie einige Vorteile bietet.

    Die Synology beispielsweise speichert bei Bewegung eine kurze Videosequenz, die ich mir später anschauen kann. Zusätzlich puffert sie das Videosignal, was bei WLAN-Übertragungsstörungen nützlich ist, da der Restreamer so auf einen kontinuierlichen Videostream zugreifen kann. Dadurch sieht der Zuschauer in der Regel ein flüssiges Videobild.

    Ein weiterer Vorteil ist, dass die Kamera nicht direkt über das Internet erreichbar ist und der Zugriff auf den Stream keine zusätzliche App auf dem Smartphone erfordert. Die günstigen Kameramodelle sind schließlich nicht gerade für ihre Sicherheit bekannt.

    Das gesamte System läuft in einer virtuellen Umgebung unter Proxmox. Proxmox ist ein Linux-System, das sich auf einem kleinen Mini-PC installieren lässt und es ermöglicht, mehrere virtuelle Maschinen zu betreiben. Das ist nicht nur für den Nistkasten eine praktische Lösung, sondern auch für zahlreiche andere IT-Projekte und Bastelideen.

    Die Streamqualität ist einstellbar. Da jeder Stream über den privaten Internet Anschluss läuft, muss man den Punkt ggf. berücksichtigen weil je nach Anzahl der Zuschauer die Upload Bandbreite ausgelastet sein kann. Mit meinen Einstellungen belege ich ca. 3-6 MBit/s pro Zuschauer (FullHD/30fps).

    Fragen, Anmerkungen gerne per Mail: birdcam [at] planethell [dot] de


    SMA Energymeter / Sunny Home Manager Analyzer Tool

    The tool shows the measured values of the SMA Energymeter (or Sunny Home Manager), who transmits the values to the local network via multicast. Additionally you can export the data to a MQTT Broker or mySQL database.

    I tested the tool with an Ubuntu 22.04 VM under Proxmox 7. Maybe you need some more steps to get it to work on other systems like RaspberryPi.

    Comments and questions are welcome: smaemtool [at] planethell [dot] de.

    Keep in mind I am not a software developer :)

    Example output:

            andreas@ds-logger:~$ ./smaemtool --break --mqtt --sql
            Version 1.0
            Timestamp: 24.02.2023 16:19:22
            Unix timestamp: 1677251962
            Break set, running only once.
            MQTT set, export to MQTT enabled.
            SQL set, export to SQL enabled.
            Listening for multicast packets on 239.12.255.254:9522...
            Received 600 bytes from 192.168.0.124:
            Power Import:    492 W
            Power Export:    0 W
            Phase 1 Import:  88 W
            Phase 2 Import:  346 W
            Phase 3 Import:  57 W
            Phase 1 Export:  0 W
            Phase 2 Export:  0 W
            Phase 3 Export:  0 W
            Message sent to MQTT broker 192.168.0.60 on topic smaemtool.
            Starting SQL export to server 192.168.0.50, Database PV.
            Data successfully inserted into table smaemtool.
        

    The output is the summary of the import/export power and the import/export power on each of the 3 phases.
    As you can see, there are 3 command line parameters available:

  • --break: To only run once. If not set the tool stays active and receives new data every second
  • --mqtt: Export the data to a MQTT broker
  • --sql: Export the data to a SQL database
  • Beware: If you do not set --break but --sql, you will have one SQL input query every second!

    Parameters for MQTT and SQL are stored in a config file (smaemtool.conf):

            ###########################
            ## MQTT
            ###########################
    
            mqtt-address=192.168.0.60
            mqtt-clientid=smaemtool
            mqtt-topic=smaemtool
    
            ###########################
            ## mySQL
            ###########################
    
            sqlserver=192.168.0.50
            sqldb=PV
            sqltable=smaemtool
            sqluser=sqluser
            sqlpw=sqlpassword
        

    For the SQL part, you have to create a table to store the data:

            --
            CREATE TABLE `smaemtool` (
                `id` int NOT NULL,
                `timestamp` int DEFAULT NULL,
                `imp` int DEFAULT NULL,
                `exp` int DEFAULT NULL,
                `L1imp` int DEFAULT NULL,
                `L2imp` int DEFAULT NULL,
                `L3imp` int DEFAULT NULL,
                `L1exp` int DEFAULT NULL,
                `L2exp` int DEFAULT NULL,
                `L3exp` int DEFAULT NULL,
                `date` datetime DEFAULT CURRENT_TIMESTAMP
            ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
            --
            ALTER TABLE `smaemtool`
                ADD PRIMARY KEY (`id`);
            --
            ALTER TABLE `smaemtool`
                MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
        

    Install the packages and compile the source code:

            sudo apt-get update
            sudo apt-get install build-essential libssl-dev libpaho-mqtt-dev
            sudo apt install libmysqlclient-dev
                    
            gcc -o smaemtool smaemtool.c -lpaho-mqtt3c -lmysqlclient
        

    Download the Sourcecode, Config file and binary as archive.

    Binary was compiled for AMD64 on Ubuntu 22.04.1 LTS.