mikrocontroller.net

Forum: PC Hard- und Software [Update] RealTime OpenControl 1.8


Autor: Sebastian K. (haschtl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Alexander S. (alex998)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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?]

Autor: Sebastian K. (haschtl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Alexander S. (alex998)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sebastian K. (haschtl)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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.

Autor: Mehmet K. (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Sebastian K. (haschtl)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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 ;)

: Bearbeitet durch User
Autor: Johannes S. (jojos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
{"id": 1337, "value": 49.557281}
{"id": 1338, "value": 0.237119}
{"id": 1337, "value": 49.625671}
{"id": 1338, "value": 0.200492}
{"id": 1337, "value": 49.671234}
{"id": 1338, "value": 0.176075}
wie müsste ein Plugin für eine serielle Schnittstelle aussehen, gibt es 
da ein Beispiel?

: Bearbeitet durch User
Autor: Sebastian K. (haschtl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ;)

Autor: Johannes S. (jojos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sebastian K. (haschtl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.