Skip to content

Latest commit

 

History

History
260 lines (167 loc) · 8.42 KB

README_german.md

File metadata and controls

260 lines (167 loc) · 8.42 KB

RealTime OpenControl (RTOC)

Version 1.8.7.5

This README is available in ENGLISH here.

Dokumentation

RealTime OpenControl ermöglicht die einfache Echtzeit-Datenaufzeichnung, -darstellung und Bearbeitung. Die Aufzeichnung kann mit lokale Python-Skripten oder über TCP lokal oder aus dem Netzwerk erfolgen. Darstellung und Bearbeitung ist lokal, im Netzwerk (TCP und HTML) und über Telegram am Smartphone verfügbar.

Neben Datenaufzeichnung können auch Events/Ergeignisse aufgezeichnet werden. Diese können z.B. eine Telegram-Mitteilung auslösen.

Mögliche Einsatzbereiche:

  • Zentrale Messdatenaufzeichnung von Laborgeräten mit PC-Anbindung (z.B. Netzteil, Multimeter, Sensoren, Microcontroller)
  • Zentrale Messdatenaufzeichnung von Internetgeräten (z.B. mobilen Wetterstationen, Drohnen, Smartphones)
  • Remote-Überwachung und Steuerung von Prozessen und Geräten mit PC und Smartphone (Telegram) (z.B. 3D-Druck, Heizung, Custom-SmartHome)
  • Steuerung und Regelung zwischen mehreren Geräten (z.B.: Leistungsregelung eines Netzteils auf Temperatursensor eines Multimeters)
  • Dezentrale Datenaufzeichnung (z.B auf Raspberry) und Zugriff über Netzwerkverbindung (Smarte Projekte)

Übersicht

Getting Started

RTOC ist geschrieben in Python 3. Getestet unter Windows und Linux.

Python 3 (und pip3) muss dazu auf dem Rechner installiert sein.

Installing with Python3 (recommended)

RTOC ist verfügbar im Python-Paketmanager PIP:

pip3 install RTOC

Jetzt kann RTOC gestartet werden

// Für lokale RTOC-Instanz mit GUI
python3 -m RTOC
// Für lokale RTOC-Instanz ohne GUI (nur TCP-Server, [HTTP-Server, Telegram-Bot])
python3 -m RTOC -s
// Für remote RTOC-Instanz mit GUI
python3 -m RTOC -r <ADRESSE>

Nach dem ersten Start erzeugt RTOC ein Verzeichnis für Benutzerplugins, temporäre Nutzerdaten und Einstellungen.

user@rtoc-server:~$ ls Documents/RTOC
config.json  // Einstellungsdatei für RTOC
devices/ 	 // Verzeichnis für Nutzerplugins
plotStyles.json // Angepasste Plotstile werden gespeichert

Installing with Builds (not tested well)

Lade die aktuellen Release-Builds für Windows (bald auch Linux) hier herunter.

Entpacke die .zip-Datei in ein Verzeichnis. RTOC wird mit Doppelklick auf "RTOC.exe" gestartet. Alternativ über die Kommandozeile

// Für lokale RTOC-Instanz mit GUI
./RTOC
// Für lokale RTOC-Instanz ohne GUI (nur TCP-Server, [HTTP-Server, Telegram-Bot])
./RTOC -s
// Für remote RTOC-Instanz mit GUI
./RTOC -r <ADRESSE>

Nach dem ersten Start erzeugt RTOC ein Verzeichnis für Benutzerplugins, temporäre Nutzerdaten und Einstellungen.

user@rtoc-server:~$ ls Documents/RTOC
config.json  // Einstellungsdatei für RTOC
devices/ 	 // Verzeichnis für Nutzerplugins
plotStyles.json // Angepasste Plotstile werden gespeichert

Manuelle Installation

Um RTOC zu benutzen müssen folgende Abhängigkeiten vorhanden sein

pip3 install numpy pyqt5 pyqtgraph markdown2 xslxwriter scipy

Folgende Pakete sollten ebenfalls installiert werden

pip3 install python-telegram-bot matplotlib requests python-nmap bokeh pycryptdomex

You can use different stylesheets if you want. Just install one of these with pip: 'QDarkStyle', 'qtmodern', 'qdarkgraystyle'.

Dann kann die RTOC-Repository geklont werden mit

git clone git@git.kellerbase.de:haschtl/kellerlogger

Nun kann RTOC gestartet werden:

cd kellerlogger
// Für lokale RTOC-Instanz mit GUI
python3 RTOC
// Für lokale RTOC-Instanz ohne GUI (nur TCP-Server, [HTTP-Server, Telegram-Bot])
python3 RTOC -s
// Für remote RTOC-Instanz mit GUI
python3 RTOC -r <ADRESSE>

Nach dem ersten Start erzeugt RTOC ein Verzeichnis für Benutzerplugins, temporäre Nutzerdaten und Einstellungen.

user@rtoc-server:~$ ls Documents/RTOC
config.json  // Einstellungsdatei für RTOC
devices/ 	 // Verzeichnis für Nutzerplugins
plotStyles.json // Angepasste Plotstile werden gespeichert

First steps

Beispielschematik

Wiki

Lese die Dokumentation

Standart/Beispiel Plugins:

  • Funktionsgenerator: Erzeugt Sinus, Square, Sawtooth, Random, AC, DC
  • NetWoRTOC: Steuerung und Datenaustausch zwischen mehreren RTOC's im Netzwerk

Weitere Plugins gibt es in der RTOC-Plugin-Repository:

  • System: Zur Aufzeichnung vieler Systemvariablen (CPU, Memory, Network,...)
  • Octoprint: Aufzeichnung für 3D-Drucker
  • DPS5020: Netzgerät-Aufzeichnung und Steuerung (evtl. auch DPS5005, ...)
  • HoldPeak VC820: Multimeter Messaufzeichnung (wahrsch. auch andere VC820)
  • ...

First GUI-Run

Die graphische Oberfläche von RTOC bietet eine Fülle an Funktionen zur Datendarstellung und Bearbeitung.

  • Messwerkzeuge
  • Plotstile anpassen und speichern
  • Session speichern und laden
  • Mehrere Plots erzeugen
  • Im Hintergrund laufen
  • Daten importieren und exportieren
  • Skripte:
    • Multi-Tab Skript-Editor
    • Der Nutzer kann während der Laufzeit mit den Signalen und Plugins interagieren:
      • Pluginfunktionen ausführen oder Pluginparameter setzen
      • Signale bearbeiten, neue Signale erzeugen, zuschneiden, überlagern, ...
      • Skalieren, verschieben von Signalen
    • Mehrere Skripte parallel laufen lassen

Vollständige Anleitung zur GUI hier.

Write simple Python-Plugin

Python-Plugins werden in RTOC integriert und können

  • Daten als Stream(=append) oder Plot(=replace) an RTOC senden
  • Events senden

Aber nicht auf Messdaten zugreifen. Hierzu muss das Plugin per TCP auf RTOC zugreifen.

Beispiel-Plugins hier.

Einfacher lokaler TCP-Datensender

TCP-Clients können am selben Rechner oder im Netzwerk (Firewall-Einstellungen prüfen) eine Verbindung zum RTOC-Server herstellen. Mit den nötigen Port-Freigaben am Router und dynamischer DNS kann auf den RTOC-Server auch aus dem Internet zugegriffen werden.

Die TCP-Kommunikation findet mit JSONs statt. Dadurch lässt sich die Kommunikation in allen Programmiersprachen und auch z.B. mit einem ESP8266/ESP32-Microcontroller realisieren. Der Client kann

  • Daten als Stream(=append) oder Plot(=replace) an RTOC senden
  • Events senden
  • Auf alle Messdaten und Events des RTOC-Servers zugreifen
  • Auf RTOC-Server-Funktionen zugreifen
  • Auf RTOC-Server-Pluginfunktionen und -parameter zugreifen

Die Verbindung zwischen RTOC-Server und Client kann mit einem Passwort Ende-zu-Ende verschlüsstelt werden (AES).

Beispiele für TCP hier.

Telegram einbinden

Anleitung zu Telegram hier.

Screenshots

MultiWindow

multiWindow

Crosshair-Tool

multiWindow

Cutting-Tool

multiWindow

Rechteck-Messtool

multiWindow

Plotstile anpassen

multiWindow

Plot-Tools-DropDown

multiWindow

Plot-Ansicht-Dropdown

multiWindow

Signal

multiWindow

Plot

multiWindow

Scripte

multiWindow

Built With

Externe Bibliotheken und Skripte

Alle Icons, die in dieser Software (inklusive Plugins) benutzt werden, werden freundlicherweise zur Verfügung gestellt von [Icons8](

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details