You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+31-12Lines changed: 31 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,41 @@
1
1
# RealTime OpenControl (RTOC)
2
2
3
-
|[](https://realtimeopencontrol.readthedocs.io/en/latest/)|[](https://github.com/Haschtl/RealTimeOpenControl/releases)|[](https://pypi.python.org/pypi/RTOC/)|[](https://pypi.python.org/pypi/RTOC/)|[](https://pypi.python.org/pypi/RTOC/)|[](https://github.com/Haschtl/RealTimeOpenControl/releases/)|[](https://github.com/Haschtl/RealTimeOpenControl/releases/)|
3
+
|[](https://realtimeopencontrol.readthedocs.io/en/latest/)|[](https://github.com/Haschtl/RealTimeOpenControl/releases)|[](https://pypi.python.org/pypi/RTOC/)|[](https://pypi.python.org/pypi/RTOC/)|[](https://pypi.python.org/pypi/RTOC/)|[](https://github.com/Haschtl/RealTimeOpenControl/releases/)|[](https://github.com/Haschtl/RealTimeOpenControl/releases/)|
> - Introducing the [Android App](https://play.google.com/store/apps/details?id=io.RTOC.RTOCRemote&hl=en) with full RTOC remote control
15
+
> - Websocket-API
16
+
> - TCP is deprecated and removed from GUI. Use websockets instead.
17
+
> - New Plugin Functions:
18
+
> - self.warning(), self.info(), self.error(), self.debug() # Log available in the Android-App
19
+
> - Persistent Variables: Variables are stored in a file and automatically loaded and saved
20
+
> - Doc-Strings for functions and Plugin-class are displayed in Android-App. Doc-Strings for Parameters need to be defined seperate: self.\_\_doc_PARAMETER\_\_
21
+
> - Webserver has been removed, because the Android App provides a better interface and could also run as a WebApp on any device. But I only published the App, If you need a WebApp, contact me.
22
+
> - Several bugfixes
23
+
10
24
RealTime OpenControl is a simple way for real-time data recording, visualization and editing.
11
25
12
26
RTOC is made for communication with different devices (IoT) in a network or local sensors or devices providing data. It collects Data from any source and provides easy and intuitive user interaction. The simplest way is, to run RTOC with the user-frontend. But it can also run a HTML-Server providing plots and events. This is the best way to view the data, if RTOC is running on screen-less devices, like a Raspberry Pi. And in any other case, you can get full access and control of RTOC with a simple Telegram-Bot all over the world, without many configurations. This bot is also capable of sending messages or warnings, if events are triggered. Read more about Events later on.
13
27
14
28
There are different ways to access data on an RTOC-Server:
15
29
30
+
-**NEW**: With WebApp / [Android App](https://play.google.com/store/apps/details?id=io.RTOC.RTOCRemote&hl=en)
16
31
- From GUI (PyQT5) (full access)
17
-
- From another RTOC-Server with TCP (partial access)
32
+
- From another RTOC-Server with Websockets (partial access)
18
33
- From any device with a Telegram-Bot (full access)
19
-
- From any device with an HTML-website (only viewable)
20
34
- From any device with PostgreSQL-Database (only access to data, no controlling of RTOC)
21
35
22
36
### Possible applications
23
37
38
+
- Endlessly customizable home automation
24
39
- General long time data recording and automation due to postgreSQL integration
25
40
- Central measurement data recording of laboratory instruments with PC connection (e.g. power supply unit, multimeter, sensors, microcontroller)
26
41
- Central recording of measurement data from Internet devices (e.g. mobile weather stations, drones, smartphones)
@@ -57,7 +72,7 @@ Python plugins are integrated into RTOC and can be used to
57
72
- send data as stream(=append) or plot(=replace) to RTOC
58
73
- send events
59
74
60
-
Plugins can **not** access all measurements. This can be done with a TCP connection to RTOC.
75
+
Plugins can **not** access all measurements. This can be done with a websocket connection to RTOC.
@@ -80,7 +95,7 @@ You can get more plugins from the [RTOC-plugin-repository](https://github.com/Ha
80
95
81
96
In some cases you don't want to run the GUI (e.g. raspberry). Then you can still configure RTOC in a terminal: `python3 -m RTOC.RTLogger -c`
82
97
83
-
If you just want to run the TCP-Server after configuration, you can do this with `python3 -m RTOC.RTLogger`. The best way, to run this code on embedded devices, is, to setup a systemd-service for automated startup. But you can also run/stop RTOC in background with 'python3 -m RTOC.RTLogger -s start/stop'.
98
+
If you just want to run the Websocket-Server after configuration, you can do this with `python3 -m RTOC.RTLogger`. The best way, to run this code on embedded devices, is, to setup a systemd-service for automated startup. But you can also run/stop RTOC in background with 'python3 -m RTOC.RTLogger -s start/stop'.
84
99
85
100
If you want to start the HTML server on port 8050, you need to run it with 'python3 -m RTOC.RTLogger -w'.
86
101
@@ -93,23 +108,27 @@ If you want to start the HTML server on port 8050, you need to run it with 'pyth
93
108
94
109
95
110
96
-
### Simple local TCP-Datastream
111
+
### Simple local Websocket-Server
97
112
98
-
TCP clients can establish a connection to the RTOC server on the same computer or in the network (check firewall settings). With the necessary port shares on the router and dynamic DNS, the RTOC server can also be accessed from the Internet.
113
+
Websocket clients can establish a connection to the RTOC server on the same computer or in the network (check firewall settings). With the necessary port shares on the router and dynamic DNS, the RTOC server can also be accessed from the Internet.
99
114
100
-
TCP communication takes place with JSONs, which allows communication in all programming languages and also, for example, with an ESP8266/ESP32 microcontroller. This connection can also be end-to-end-encrypted with AES.
115
+
Websocket communication-protocoll is in JSON format, which allows communication in all programming languages and also, for example, with an ESP8266/ESP32 microcontroller. The communication can also be end-to-end-encrypted with AES. In this case, you need to implement the right encryption yourself.
101
116
102
-
The client can
117
+
A client can
103
118
104
119
- send data as stream(=append) or plot(=replace) to RTOC
105
120
- send events
106
121
- access all measurement data and events of the RTOC-server
107
122
- access all RTOC-server functions
108
123
- access all RTOC-server plugin functions and parameters
124
+
- subscribe to signals
125
+
126
+
The server will
109
127
110
-
The connection between RTOC server and client can be encrypted end-to-end (DES) with a password.
128
+
- send events to the clients
129
+
- send subscribed signals to clients
111
130
112
-
[Example for TCP here.](https://realtimeopencontrol.readthedocs.io/en/latest/TCP.html)
131
+
[Example for Websockets here.](https://realtimeopencontrol.readthedocs.io/en/latest/Websocket.html)
> - Introducing the [Android App](https://play.google.com/store/apps/details?id=io.RTOC.RTOCRemote&hl=en) with full RTOC remote control
23
+
> - Websocket-API
24
+
> - TCP is deprecated and removed from GUI. Use websockets instead.
25
+
> - New Plugin Functions:
26
+
> - self.warning(), self.info(), self.error(), self.debug() # Log available in the Android-App
27
+
> - Persistent Variables: Variables are stored in a file and automatically loaded and saved
28
+
> - Doc-Strings for functions and Plugin-class are displayed in Android-App. Doc-Strings for Parameters need to be defined seperate: self.\_\_doc_PARAMETER\_\_
29
+
> - Webserver has been removed, because the Android App provides a better interface and could also run as a WebApp on any device. But I only published the App, If you need a WebApp, contact me.
30
+
> - Several bugfixes
31
+
18
32
RealTime OpenControl is a simple way for real-time data recording, visualization and editing.
19
33
20
34
RTOC is made for communication with different devices (IoT) in a network or local sensors or devices providing data. It collects Data from any source and provides easy and intuitive user interaction. The simplest way is, to run RTOC with the user-frontend. But it can also run a HTML-Server providing plots and events. This is the best way to view the data, if RTOC is running on screen-less devices, like a Raspberry Pi. And in any other case, you can get full access and control of RTOC with a simple Telegram-Bot all over the world, without many configurations. This bot is also capable of sending messages or warnings, if events are triggered. Read more about Events later on.
21
35
22
36
There are different ways to access data on an RTOC-Server:
23
37
38
+
- **NEW**: With WebApp / [Android App](https://play.google.com/store/apps/details?id=io.RTOC.RTOCRemote&hl=en)
24
39
- From GUI (PyQT5) (full access)
25
-
- From another RTOC-Server with TCP (partial access)
40
+
- From another RTOC-Server with Websockets (partial access)
26
41
- From any device with a Telegram-Bot (full access)
27
-
- From any device with an HTML-website (only viewable)
28
42
- From any device with PostgreSQL-Database (only access to data, no controlling of RTOC)
29
43
30
44
### Possible applications
31
45
46
+
- Endlessly customizable home automation
32
47
- General long time data recording and automation due to postgreSQL integration
33
48
- Central measurement data recording of laboratory instruments with PC connection (e.g. power supply unit, multimeter, sensors, microcontroller)
34
49
- Central recording of measurement data from Internet devices (e.g. mobile weather stations, drones, smartphones)
In some cases you don't want to run the GUI (e.g. raspberry). Then you can still configure RTOC in a terminal: `python3 -m RTOC.RTLogger -c`
90
105
91
-
If you just want to run the TCP-Server after configuration, you can do this with `python3 -m RTOC.RTLogger`. The best way, to run this code on embedded devices, is, to setup a systemd-service for automated startup. But you can also run/stop RTOC in background with 'python3 -m RTOC.RTLogger -s start/stop'.
106
+
If you just want to run the Websocket-Server after configuration, you can do this with `python3 -m RTOC.RTLogger`. The best way, to run this code on embedded devices, is, to setup a systemd-service for automated startup. But you can also run/stop RTOC in background with 'python3 -m RTOC.RTLogger -s start/stop'.
92
107
93
108
If you want to start the HTML server on port 8050, you need to run it with 'python3 -m RTOC.RTLogger -w'.
TCP clients can establish a connection to the RTOC server on the same computer or in the network (check firewall settings). With the necessary port shares on the router and dynamic DNS, the RTOC server can also be accessed from the Internet.
121
+
Websocket clients can establish a connection to the RTOC server on the same computer or in the network (check firewall settings). With the necessary port shares on the router and dynamic DNS, the RTOC server can also be accessed from the Internet.
107
122
108
-
TCP communication takes place with JSONs, which allows communication in all programming languages and also, for example, with an ESP8266/ESP32 microcontroller. This connection can also be end-to-end-encrypted with AES.
123
+
Websocket communication-protocoll is in JSON format, which allows communication in all programming languages and also, for example, with an ESP8266/ESP32 microcontroller. The communication can also be end-to-end-encrypted with AES. In this case, you need to implement the right encryption yourself.
109
124
110
-
The client can
125
+
A client can
111
126
112
127
- send data as stream(=append) or plot(=replace) to RTOC
113
128
- send events
114
129
- access all measurement data and events of the RTOC-server
115
130
- access all RTOC-server functions
116
131
- access all RTOC-server plugin functions and parameters
132
+
- subscribe to signals
133
+
134
+
The server will
117
135
118
-
The connection between RTOC server and client can be encrypted end-to-end (DES) with a password.
136
+
- send events to the clients
137
+
- send subscribed signals to clients
119
138
120
-
[Example for TCP here.](https://realtimeopencontrol.readthedocs.io/en/latest/TCP.html)
139
+
[Example for Websockets here.](https://realtimeopencontrol.readthedocs.io/en/latest/Websocket.html)
121
140
122
141
### Include Telegram-messanger
123
142
@@ -160,6 +179,5 @@ Classifier: Topic :: Software Development :: User Interfaces
0 commit comments