20.November 2017    

Google

   homeProjekteSoftwareYASDI-Daemon

 

Hobby 234x60
reichelt elektronik – Elektronik und PC-Technik
Seite zuletzt geändert: 19.12.2012 09:47

Voraussetzungen

  • Die yasdi C-Bibiliotheken von SMA
    Diese gemäß der README im Hauptverzeichnis des heruntergeladenen Archivs compilieren und installieren
  • Wer Protokollierung nach MySQL wünscht, benötigt noch die Perl-Module DBI und DBD-MySQL


yasdi-0.0.3.tgz

yasdi-0.0.2.tgz

yasdi-0.0.1.tgz

Installation

  • Herunterladen der yasdi-Bibliotheken von SMA über diesen Link
  • Entpacken der Archivdatei
  • Übersetzen und Installieren der yasdi-Bibliotheken gemäß der Anleitung in der README-Datei im Hauptverzeichnis des entpackten Archivs
  • Herunterladen (siehe oben) in das Unterverzeichnis projects und Entpacken des yasdi-daemon-Archivs mit
    tar -xzvf yasdi-0.0.2.tgz
  • Wechsel ins Verzeichnis yasdi-0.0.2
  • perl Makefile.PL
  • make
  • make test
  • make install


Aktuell wird der Daemon noch nicht in irgendeiner Weise aktiviert. Das muss derzeit noch manuell erfolgen, z.B. durch Anlegen eines Scripts mit dem Namen "S99yasdid" in /etc/rc2.d etwa in dieser Form:

#!/bin/bash
cd /usr/local/lib/perl/<perlversion>
./yasdid.pl -d 3 -D

Konfigurationsdateien

Es existieren zwei Konfigurationsdateien, die per default unter /etc/yasdi liegen:


yasdi.ini
Diese Datei wird für die SMA-yasdi-Bibliotheken benötigt. Die Parameter sind dort beschrieben.


yasdid.ini
Das ist die Konfigurationsdatei für den Daemon.
Es existieren mindestens zwei Abschnitte, [global] und [DEV1] (für das erste Device, weitere Devices entsprechend [DEV2], [DEV3],...,[DEVn]):



[global]

enthält alle globalen Einstellungen, derzeit gibt es die Werte pollinginterval und protocol:

pollinginterval=n
Wert in Sekunden
legt fest, alle wieviel Sekunden der SunnyBoy abgefragt werden soll


protocol=type:parameters
legt den Typ und Ort des Protokolls fest
mögliche Werte:

file
bewirkt die Speicherung der ausgelesenen Daten als CSV-Datei
parameters ist in diesem Fall der Speicherort und Name der Datei


Beispiel:
protocol=file:/var/log/sunny/protocol0.dat
legt für den Kanal 1 die Daten in der Datei protocol0_1.dat im Verzeichnis /var/log/sunny ab, für Kanal 2 wäre der Dateiname dann protocol0_2.dat usw.



mysql

bewirkt die Speicherung der ausgelesenen Daten in einer MySQL-Datenbank
parameters hat hier folgende Struktur:
<servername>:<datenbase>:<username>:<password>:<tablename>


Beispiel:
protocol=mysql:mysqlsrv.t0000000.de:solardb:myuser:mypass:sddata
legt für den Kanal 1 die Daten in der Tabelle sddata_1 auf dem angegebenen MySQL-Server ab.
Gleichzeitig wird eine Tabelle sddata_total mitgeführt, in welcher die Tagessummen abgelegt werden.


[DEVn]

enthält alle Device-spezifischen Einstellungen, derzeit gibt es hier nur die Werte serial und channel:

serial=1234567890
Hier muss die 10stellige Seriennummer des devices eingetragen werden, damit die Zuordnung eindeutig ist.


channel=xxxxxx
Dieser Wert kann mehrfach bei einem Device aufgeführt werden.
Der Parameter xxxxxx wird belegt mit dem Wert eines Kanals, der protokolliert werden soll. Für jeden Kanal ist also eine channel-Zeile erforderlich.


Beispiel:
channel=E-Total
channel=h-Total
channel=Status

 


Inhalt einer Beispieldatei:

[global]
pollinginterval=20
protocol=mysql:mysql.t000001.de:mydatabase:myusername:mypassword:sddata

[DEV1]
serial=2000167812
channel=Pac
channel=E-Total
channel=h-Total
channel=Status

Karsten, 01-05-13 15:17:
Ich habe Ihnen eine Email geschickt.
Ist diese angekommen?
Frank, 13-08-15 21:21:
Danke für dein Script, es läuft bei mir super und stabil. Ein Frage habe ich trotzdem noch und zwar: Was haben die Zahlen beim Status-Channel zu sagen? Z.B. Status:7 scheint ja der Code für "In Bertieb" zu sein.

MfG Frank
Kommentar hinzufügen

* - Pflichtfeld

*



*
Copyright © 2008-2017