Sma-bluetooth

Aus

Es geht hier um das Tool sma-bluetooth zum Einsatz auf einer Synology NAS. Zur Geschichte siehe Forum-Thread: NAS und Solar Logger?

Bisher getestet auf folgenden Diskstations:

DS1010+
  • Voraussetzungen für den Einsatz von SMA Bluetooth schaffen:

Bluetooth muss funktionieren. Die Installation ist hier: Bluetooth_Treiber beschrieben.

  • Sourcecode für sma-bluetooth besorgen:
    • Original Source
hg pull https://code.google.com/p/sma-bluetooth/
    • Modifizierter Source mit mehr Inverter Codes und ein paar Hacks (Wenig getestet)
hg pull https://code.google.com/p/janus44444-sma-bluetooth/
  • Compilieren des Sourcecodes:
make
strip smatool
  • Erstellen der smatool Datenbank

<TODO> Die Datenbank muss mittels mysql Befehlen erstellt werden und mit einem Passwort versehen werden.

  • Kopieren der Binaries und erstellen der Config Dateien

<TODO: /opt/etc/smatool/smatool.conf anpassen> <TODO: /opt/etc/smatool/sma.in.new kopieren> <TODO: /opt/etc/smatool/invcode.in kopieren>

mkdir /opt/etc/smatool
cp smatool /opt/bin
  • Erstellen der Datenbank Strukturen mittels smatool
LD_LIBRARY_PATH=/opt/lib:/opt/lib/mysql; export LD_LIBRARY_PATH
/opt/bin/smatool --INSTALL
  • Script für benutzung von smatool im cron.

Bitte beachten, dass das Passwort, der User und der Datenbank Name eingesetzt werden müssen, damit der MySQL Hack funktioniert. Ein weiter Punkt ist das >6000 Mein Inverter kann maximal 5000 Watt bzw. 4600Watt verarbeiten. 6000 liegt damit weit über den von meinem Inverter lieferbaren Werten und alles über 6000 kann gelöschte werden, da das mit Sicherheit fehlerhafte Werte sind. Wenn also euer Inverter 10000Watt liefern kann, sollte der Wert von 6000 auf z.B. 11000 geändert werden.

File /opt/etc/smatool/sma-cron.sh:

#!/opt/bin/bash
#
# Startup script to use with cron to download sma data to the database with smatool
#
# crontab example entry to run every 5 minutes:
#  1,11,21,31,41,51     *       *       *       *       root    /opt/etc/smatool/sma-cron.sh
#
SMAHOME=/opt/etc/smatool
SMATOOL=/opt/bin/smatool
SMACFG=/opt/etc/smatool/smatool.conf
#DEBUG=-v
#DEBUG=-d
LD_LIBRARY_PATH=/opt/lib:/opt/lib/mysql
export LD_LIBRARY_PATH
#
# Main
cd ${SMAHOME}
touch logfile.log
${SMATOOL} -c ${SMACFG} ${DEBUG} $@ | tee -a logfile.log
cat << EOF | /opt/bin/mysql --password=<your mysql password> -u <your smatool mysql user> <your mysql smatool database> | tee -a logfile.log
select * from DayData where CurrentPower>6000;
delete from DayData where CurrentPower>6000;
select * from DayData WHERE DateTime LIKE "1970-%%-%% %%:%%:%%";
delete from DayData WHERE DateTime LIKE "1970-%%-%% %%:%%:%%";
EOF
# End
  • Utility Script um die aktuellen Einträge der Datenbank anzuzeigen

Bitte beachten, dass das Passwort, der User und der Datenbank Name eingesetzt werden müssen, damit der MySQL Hack funktioniert.

File /opt/etc/smatool/show-mysql.sh:

AKTDATE=`date +%Y-%m-%d`
cat << EOF | mysql --password=<your mysql password> -u <your smatool mysql user> <your mysql smatool database>
select * from DayData where CurrentPower>0 and DateTime LIKE "${AKTDATE} %%:%%:%%" order by DateTime;
EOF