Hallo zusammen,
Habe die Software RTOC um einige Funktionen erweitert.
Wer nicht weiß, um was es geht, hier ist mein erster Beitrag:
Beitrag "[Release] RealTime OpenControl"
Version 1.8 kommt mit einer kompletten Dokumentation auf Deutsch und
Englisch.
Außerdem ist RTOC jetzt im Python-Package-Manager pip verfügbar. Das
erleichtert die Installation enorm.
Diese Version enthält Features, die die Netzwerkfunktionalität deutlich
erweitern. Alle Funktionen, die in lokalen Instanzen zur Verfügung
stellen, stehen jetzt auch im Netzwerk (TCP) verfügbar.
New features in version 1.8:
- Telegram-Bot für Remote-Zugriff
- HTML-Server
- Voller Zugriff über TCP
- TCP kann jetzt AES-Ende-zu-Ende-verschlüsselt werden.
- Standalone-Builds für Windows (bald auch Linux)
Hier gehts zur Repository auf Github:
https://github.com/Haschtl/RealTimeOpenControl
Hallo Sebastian,
dein Tool käme mir gerade recht. Ich hab hier ein kleines Solarpanel
(20W), da müsste ich mal ermitteln was das bei dem derzeitig miesem
Wetter noch an Output hat. Hatte an Raspi + INA219-Modul (per I2C)
gedacht um mal über 14 Tage zumindest erstmal die Leerlaufspannung vom
Panel zu loggen. Wäre das mit dem RTOC möglich?
[Für den INA219 gibt es ja schon fertige Python-Libs, wie
https://pypi.org/project/pi-ina219/https://www.rototron.info/raspberry-pi-ina219-tutorial/
Evtl. könntest du sowas in der Richtung mal integrieren?]
Hallo Alexander,
Freut mich, dass für deine Applikation mein Tool in Frage kommt!
RTOC eignet sich genau für Projekte wie deines!
Ich habe selbst leider kein solches Solarpanel, werde mir das aber mal
ansehen und ein Plugin schreiben. Ich kann es aber leider nicht selbst
testen.
Ist auf jedenfall möglich!
Sebastian K. schrieb:> Ich habe selbst leider kein solches Solarpanel, werde mir das aber mal> ansehen und ein Plugin schreiben. Ich kann es aber leider nicht selbst> testen.
Wenn du ein passendes Plugin zur Verfügung stellst dann test ich das
auch, daran solls nicht scheitern.
Habe schnell ein Plugin für dich geschrieben.
Du kannst es hier herunterladen:
https://github.com/Haschtl/RTOC-Plugins
Befolge einfach die Anleitung aus der ReadMe.
Wenn es Fragen oder Unklarheiten gibt bezüglich der
Einrichtung/Benutzung, schreib mir bitte. Es ist zwar eigentlich alles
dokumentiert, aber ich habe noch keine Rückmeldungen bekommen, ob das
alles verständlich ist.
Möglicherweise musst du noch den I2C-Port und die anderen Parameter in
INA219_Modul.py anpassen.
So nur aus Neugierde: warum hast Du diese Ergaenzung nicht unter Deinen
ersten Beitrag "[Release] RealTime OpenControl"
gesetzt und stattdessen einen neuen Beitrag erstellt?
Waere es für alle nicht einfacher, wenn alles beisammen waere?
An Alexander:
Noch einige Tipps zur Einrichtung:
Nachdem du RTOC auf dem Raspberry installiert hast und das Plugin ins
Verzeichnis ~/Documents/RTOC/devices/ kopiert hast, solltest du noch ein
bisschen was einstellen.
Nachdem RTOC auf dem Raspberry läuft, möchtest du wahrscheinlich, dass
die Messaufzeichnung gleich mit dem Start von RTOC beginnt. Schreibe
dazu den Namen des Plugins 'INA219_Modul' in eine neue Zeile der Datei
~/Documents/RTOC/autorun_devices. Oder:
echo 'INA219_Modul' >> ~/Documents/RTOC/autorun_devices
Da du vermutlich die Messdaten nicht direkt am Raspberry, sondern übers
Netzwerk anschauen möchtest, musst du folgendes beachten:
1. Raspberry muss mit Netzwerk verbunden sein
2. Überprüfe die Einstellungen von RTOC: ~/Documents/RTOC/config.json
Für normales TCP-Remote müssen folgende Einträge gesetzt sein:
"tcpserver": True,
"tcpPort": 5050,
Für einen Telegram-Bot müssen folgende Einträge gesetzt sein:
"telegram_bot": True,
"telegram_name": "RTOC-Remote",
"telegram_token": "DEIN BOT TOKEN",
Für einen HTML-Server
"rtoc_web": True
3. Starte dann am Raspberry RTOC als Server (ohne GUI) mit 'python3 -m
RTOC -s'
4. Verbinde dich von einem anderen Netzwerkgerät - auf dem ebenfalls
RTOC installiert ist - mit dem RTOC-Raspberry mit:
'python3 -m RTOC -r raspberrypi' (statt raspberrypi, den RPi Hostname
oder IP-Adresse eintragen)
Fertig!
Nun zu deiner Aufzeichnungsdauer von ~2Wochen. RTOC zeichnet eine
eingestellte Anzahl Messwerte auf, keine Dauer direkt. Um jetzt zwei
Wochen aufzuzeichnen, muss man die Samplerate des Plugins und
Aufzeichnungsdauer in RTOC anpassen.
Ich habe im Plugin mal eine Samplerate von 1/minute eingestellt.
2 Wochen haben 20160 Minuten, also muss man die Aufzeichnungsdauer auf
20160 setzen. Das kannst du in der GUI machen, oder wieder in der
config.json unter "defaultRecordLength": 20160
Wenn du nicht jede Minute einen Messwert aufzeichnen willst, ändere
einfach die Samplerate im Plugin.
Tipp: In der GUI erscheint ein kleines Fenster, wenn man die Maus über
einen der Signal-buttons hält. Man sieht dort, wieviele Messwerte
bereits aufgezeichnet wurden, wie lange die Messung bisher dauert und
wie lang sie voraussichtlich werden wird, wenn die Samplerate konstant
bleibt.
An Mehmet:
Hätte ich tun können, ja ;)
Hallo Sebastian,
habe das auch gerade mal installiert, sieht sehr gut aus. Ich habe Daten
aus einer Temperaturregelung die über eine serielle Schnittstelle
reinkommen, die sende ich im Json Format:
1
{"id": 1337, "value": 49.557281}
2
{"id": 1338, "value": 0.237119}
3
{"id": 1337, "value": 49.625671}
4
{"id": 1338, "value": 0.200492}
5
{"id": 1337, "value": 49.671234}
6
{"id": 1338, "value": 0.176075}
wie müsste ein Plugin für eine serielle Schnittstelle aussehen, gibt es
da ein Beispiel?
Hallo Johannes,
Freut mich zu hören!
Das sollte schnell zu realisieren sein.
Habe in meiner RTOC-Plugin Repository ein Beispiel hinzugefügt.
https://github.com/Haschtl/RTOC-Plugins
Kopiere dir einfach mal die 'Template.py'.
Für ein Plugin mit einer Seriellen JSON-Schnittstelle helfen dir die
Python-Bibliotheken 'serial' und 'JSON' sicherlich weiter.
Bei Fragen oder Problemen bitte melden ;)
danke, das hilft mir weiter. Ich habe es jetzt erstmal quick and dirty
mit NodeRed, InfluxDB und Grafana visualisiert. Dein RTOC werde ich mir
am WE weiter ansehen, für schnellere Sachen ist der Umweg über die DB
umständlich. Ist zwar für eine eher träge Heizkreisregelung, aber zum
üben ist dein RTOC evtl. besser.
Hallo zusammen,
Seit meinem letzten Post hier, ist einige Zeit vergangen und ich habe
einige neue Features implementiert:
Top 3:
- Plugins sind jetzt nichtmehr in der normalen Repository, sondern in
einer eigenen und können im Programm selbst heruntergeladen werden.
- Dateien können mit eigenem Import-Dialog importiert und angepasst
werden (XLSX, CSV, ODF, MAT (MATLAB), WAV). Dabei werden im
Importfenster Spalten den Signalen zugewiesen
- Direktzugriff aus der GUI auf Plugin Funktionen und Parameter zur
Programmlaufzeit
Weitere neue Features:
- Benutzerordner unter ~/Documents/RTOC/ wurde nach ~/.RTOC/ verschoben
- Der TCP-Port für RTOC-Server kann jetzt frei gewählt werden.
- Legende der Signale wird nun an der Seite mit angezeigt
- plot-Funktion wurde erweitert
- Automatische Backups können eingerichtet werden
- Mehrere Dateien können gleichzeitig geladen werden
- Plotstile werden nun beim ersten Erscheinen eines Signals gespeichert
Außerdem wurden viele Fehler behoben, wie z.B. Anzeigefehler unter
Linuxrechnern und viele Probleme, dass einzelne Teile nicht
funktionierten (z.B.: Skripte). Diese Fehler bezogen sich nur auf die
PIP-Version.
An dieser Stelle möchte ich mich bei euch stellvertretend bei allen
bedanken, die RTOC nutzen und regelmäßig die Updates beziehen! Ich würde
mich auch sehr über Rückmeldungen oder von euch geschriebene Plugins
freuen, die ich in die Repository aufnehmen kann! (BITTE AUCH FEHLER
MELDEN!)
Als nächstes Feature wird kommen:
Das Standard-Plugin NetWoRTOC wird integriert in RTOC, sodass die
Remote-Geräte und Signale in der normalen Liste hervorgehoben
dargestellt werden. Gleiches gilt natürlich für Events.
Damit soll es dann auch möglich sein mithilfe der Skripte in 'Echtzeit'
auf dem Remote-Rechner auszuführen, sodass wirklich alle RTOC-Funktionen
Lokal wie auch Remote verfügbar sind! Das alles (und nebenzu sicherlich
noch viele Fixes und kleine Verbesserungen) wird Teil des nächsten
Release 2.0 sein. Dazu gehören auch Performance-Verbesserungen.
Der Release 2.0 wird dann auch als Windows und Linux Installer
veröffentlicht. In welcher Form ist noch offen.