Sma-bluetooth

Aus

Es geht hier um das Tool sma-bluetooth zum Einsatz auf einer Synology NAS

Bisher getestet auf folgenden Diskstations:

DS1010+
  • Vorraussetzungen 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.

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