2.4 KiB
2.4 KiB
#Weatherstation ##Overview Python (2/3), Bash, Tinkerforge
Setup
- Konfiguration mittels
config.jsonanpassen (Vorlage:config.sample.json)- Notwendig:
- hosts:
- Ein Eintrag pro brickd-Host mit:
- host: Hostname/IP + Port
- sensors: Auflistung der Sensoren mit: Name, UID, SensorType
- Ein Eintrag pro brickd-Host mit:
- sensor_properties:
- Pro SensorType:
- Callbackzeit
- Divisor
- Einheit
- Pro SensorType:
- hosts:
- Optional:
- tempmaxdiff: Maximaler Unterschied zwischen zwei SensorType.temp-Callbacks des gleichen Sensors
- prev_temps_default: Hilfswert für Berechnung von tempmaxdiff
- logs: Ordner für Logs
- locks: Ordner für Locks
- records: Ordner für aktuelle Aufzeichnungen
- arch: Ordner für Archiv der Aufzeichnungen
- lockname: Lock für Hauptprogramm
- logname: Logdatei für Hauptprogramm
- exceptionlog: Logdatei für Exceptions bei Verbindungsaufbau
- recordlog: Logdatei für neue, einheitliche Aufzeichnungen
- movelog: Logdatei für Archivierung
- movelock: Datei zur Feststellung der letzten Archivierung
- waitDelay: Wartezeit zwischen Verbindungsversuchen
- loglevel: Loglevel für Hauptprogramm
- datalog: Loglevel für Aufzeichnungen (warn, error,critical verhindern Aufzeichnung)
- dataecho: Loglevel für Wiedergabe der Aufzeichnungen (warn, error,critical verhindern Wiedergabe)
- legacy_record: Speichern von Aufzeichnungen in einzelne Dateien pro Sensor (true, false)
- Notwendig:
- Tinkerforge-Python-Bindings installieren
main.pystarten, um Aufzeichnung zu starten- Aufzeichnung des aktuellen Tages werden in records gespeichert
Optional: Verschieben der Aufzeichnungen in ein Archiv:
move.pyz.B. als Cronjob starten
Optional: Upload der Aufzeichnungen mit SFTP an einem Server (beinhaltet Archivierung mit move.py):
- Pfade, Urls und Benutzer in
ftpconfig.xmlanpassen (Vorlage:ftpconfig.sample.xml)- (ftp.sh bzw move.py) Nach dem Upload und dem Tagesende werden die Aufzeichnungen nach
archverschoben
- (ftp.sh bzw move.py) Nach dem Upload und dem Tagesende werden die Aufzeichnungen nach
- Cronjob für Upload mit
ftp.sheinrichten
TODOS
- TODOS ausdenken
- rugged approach http://www.tinkerforge.com/en/doc/Tutorials/Tutorial_Rugged/Tutorial.html
- Setup:
- cb_generic durch Referenz auf Logger austauschen
- cb_delta(bricklet=REF)
- unterscheidung durch enum in configs (if CB.delta in ...)
- ftp.sh:
- remote-pfad in xml