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 wenig Sonnenschein). Abhängig davon wird der Akku geladen oder entladen.
Da mich immer wieder Nachfragen erreichen wie ich das mit der Birdcam gemacht habe und die Antwort nicht immer wie erwartet ausfällt, habe ich mir gedacht ich "dokumentiere" das hier damit sich Jeder ein Bild davon machen kann. Den Aufbau des Nistkastens habe ich mir nicht selbst überlegt, sondern habe mich mehr oder weniger genau an diesem Vorbild orientiert. Ein paar Details habe ich geändert (z.B. nutze ich externe WLAN Antennen) und die Halterung der Kamera ist einfacher gestaltet (eine simple Presspassung). Die Lichtsteuerung und die Abmessungen habe ich übernommen. Falls es die Kamera nicht mehr zu kaufen gibt bzw nur ein aktuelleres Modell, muss man natürlich die ggf. geänderten Abmessungen berücksichtigen.
Der IT Teil entsprang dann doch eher dem Nerd in mir. Die Skizze gibt einen Überblick über die Komponenten. Man kann das sicher einfacher gestalten, aber...naja ;-) Es hat sich letztlich bewährt, weil ich so ein paar Vorteile habe. Die Synology zB speichert bei Bewegung eine kurze Videosequenz, die ich mir später anschauen kann. Außerdem puffert sie das Videosignal, was bei WLAN Übertragunsstörungen von Vorteil ist, weil der Restreamer so auf einen kontinuierlichen Videostream zugreifen kann. Dadurch hat der Zuschauer immer ein ruckelfreies Videobild - es sei denn draußen tobt ein Unwetter... Ein weiterer Vorteil ist, dass die Kamera nicht direkt über das Internet erreichbar ist. Die günstigen Modelle sind schließlich nicht gerade für ihre Sicherheit bekannt.
Die ganze Lösung läuft in einer virtuellen Umgebung unter Proxmox. Proxmox ist ein Linux, dass man auf einem kleinen Mini PC installieren kann und erlaubt es einem, mehrere virtuelle Computer zu betreiben. Das ist nicht nur für den Nistkasten eine praktische Lösung, sondern auch für viele andere IT Projekte/Frickeleien.
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:
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 -lmysqlclientDownload the Sourcecode, Config file and binary as archive.
Binary was compiled for AMD64 on Ubuntu 22.04.1 LTS.