pymscada 0.0.6__py3-none-any.whl → 0.0.15__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pymscada might be problematic. Click here for more details.
- pymscada/__init__.py +7 -3
- pymscada/demo/logixclient.yaml +50 -0
- pymscada/demo/modbus_plc.py +46 -29
- pymscada/demo/modbusclient.yaml +10 -1
- pymscada/demo/modbusserver.yaml +12 -3
- pymscada/demo/pymscada-bus.service +1 -1
- pymscada/demo/pymscada-files.service +1 -1
- pymscada/demo/pymscada-history.service +1 -1
- pymscada/demo/pymscada-io-logixclient.service +15 -0
- pymscada/demo/{pymscada-modbusclient.service → pymscada-io-modbusclient.service} +1 -1
- pymscada/demo/{pymscada-modbusserver.service → pymscada-io-modbusserver.service} +1 -1
- pymscada/demo/pymscada-io-snmpclient.service +15 -0
- pymscada/demo/pymscada-wwwserver.service +1 -1
- pymscada/demo/snmpclient.yaml +73 -0
- pymscada/demo/tags.yaml +110 -5
- pymscada/demo/wwwserver.yaml +16 -10
- pymscada/history.py +46 -97
- pymscada/iodrivers/__init__.py +0 -0
- pymscada/iodrivers/logix_client.py +80 -0
- pymscada/iodrivers/logix_map.py +147 -0
- pymscada/{modbus_client.py → iodrivers/modbus_client.py} +3 -3
- pymscada/{modbus_server.py → iodrivers/modbus_server.py} +1 -1
- pymscada/iodrivers/snmp_client.py +75 -0
- pymscada/iodrivers/snmp_client2.py +53 -0
- pymscada/iodrivers/snmp_map.py +71 -0
- pymscada/main.py +24 -4
- pymscada/periodic.py +1 -1
- pymscada/samplers.py +93 -0
- pymscada/tag.py +0 -27
- pymscada/tools/walk.py +55 -0
- pymscada/validate.py +356 -0
- pymscada-0.0.15.dist-info/METADATA +270 -0
- pymscada-0.0.15.dist-info/RECORD +58 -0
- {pymscada-0.0.6.dist-info → pymscada-0.0.15.dist-info}/WHEEL +1 -1
- pymscada-0.0.6.dist-info/METADATA +0 -58
- pymscada-0.0.6.dist-info/RECORD +0 -45
- /pymscada/{modbus_map.py → iodrivers/modbus_map.py} +0 -0
- {pymscada-0.0.6.dist-info → pymscada-0.0.15.dist-info}/entry_points.txt +0 -0
- {pymscada-0.0.6.dist-info → pymscada-0.0.15.dist-info}/licenses/LICENSE +0 -0
pymscada/__init__.py
CHANGED
|
@@ -2,19 +2,23 @@
|
|
|
2
2
|
from pymscada.bus_client import BusClient
|
|
3
3
|
from pymscada.bus_server import BusServer
|
|
4
4
|
from pymscada.config import Config
|
|
5
|
+
from pymscada.iodrivers.logix_client import LogixClient
|
|
6
|
+
from pymscada.iodrivers.modbus_client import ModbusClient
|
|
7
|
+
from pymscada.iodrivers.modbus_server import ModbusServer
|
|
5
8
|
from pymscada.misc import find_nodes, ramp
|
|
6
|
-
from pymscada.modbus_client import ModbusClient
|
|
7
|
-
from pymscada.modbus_server import ModbusServer
|
|
8
9
|
from pymscada.periodic import Periodic
|
|
9
10
|
from pymscada.tag import Tag
|
|
11
|
+
from pymscada.validate import validate
|
|
10
12
|
|
|
11
13
|
__all__ = [
|
|
12
14
|
'BusClient',
|
|
13
15
|
'BusServer',
|
|
14
16
|
'Config',
|
|
15
|
-
'
|
|
17
|
+
'LogixClient',
|
|
16
18
|
'ModbusClient',
|
|
17
19
|
'ModbusServer',
|
|
20
|
+
'find_nodes', 'ramp',
|
|
18
21
|
'Periodic',
|
|
19
22
|
'Tag',
|
|
23
|
+
'validate',
|
|
20
24
|
]
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
bus_ip: 127.0.0.1
|
|
2
|
+
bus_port: 1324
|
|
3
|
+
rtus:
|
|
4
|
+
- name: Ani
|
|
5
|
+
ip: 172.26.7.196
|
|
6
|
+
rate: 0.2
|
|
7
|
+
read:
|
|
8
|
+
- {addr: Fout, type: 'REAL[]', start: 0, end: 99}
|
|
9
|
+
- {addr: Iout, type: 'DINT[]', start: 0, end: 99}
|
|
10
|
+
- {addr: OutVar, type: REAL}
|
|
11
|
+
writeok:
|
|
12
|
+
- {addr: Fin, type: 'REAL[]', start: 0, end: 99}
|
|
13
|
+
- {addr: Iin, type: 'REAL[]', start: 0, end: 99}
|
|
14
|
+
- {addr: InVar, type: REAL}
|
|
15
|
+
tags:
|
|
16
|
+
Ani_Fin_20:
|
|
17
|
+
type: float32
|
|
18
|
+
read: 'Ani:Fout[20]'
|
|
19
|
+
write: 'Ani:Fin[20]'
|
|
20
|
+
Ani_Fout_20:
|
|
21
|
+
type: float32
|
|
22
|
+
addr: 'Ani:Fout[20]'
|
|
23
|
+
Ani_Iin_20:
|
|
24
|
+
type: int32
|
|
25
|
+
read: 'Ani:Iout[20]'
|
|
26
|
+
write: 'Ani:Iin[20]'
|
|
27
|
+
Ani_Iout_20:
|
|
28
|
+
type: int32
|
|
29
|
+
addr: 'Ani:Iout[20]'
|
|
30
|
+
Ani_Iin_21_0:
|
|
31
|
+
type: bool
|
|
32
|
+
read: 'Ani:Iout[21].0'
|
|
33
|
+
write: 'Ani:Iin[21].0'
|
|
34
|
+
Ani_Iout_21_0:
|
|
35
|
+
type: bool
|
|
36
|
+
addr: 'Ani:Iout[21].0'
|
|
37
|
+
Ani_Iin_21_1:
|
|
38
|
+
type: bool
|
|
39
|
+
read: 'Ani:Iout[21].1'
|
|
40
|
+
write: 'Ani:Iin[21].1'
|
|
41
|
+
Ani_Iout_21_1:
|
|
42
|
+
type: bool
|
|
43
|
+
addr: 'Ani:Iout[21].1'
|
|
44
|
+
InVar:
|
|
45
|
+
type: float32
|
|
46
|
+
read: Ani:OutVar
|
|
47
|
+
write: Ani:InVar
|
|
48
|
+
OutVar:
|
|
49
|
+
type: float32
|
|
50
|
+
addr: Ani:OutVar
|
pymscada/demo/modbus_plc.py
CHANGED
|
@@ -1,36 +1,52 @@
|
|
|
1
1
|
"""Demo PLC simulation."""
|
|
2
2
|
import asyncio
|
|
3
|
+
import pymscada.samplers as ps
|
|
3
4
|
from pymscada import Config, ramp, ModbusServer, Periodic, Tag
|
|
4
5
|
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
7
|
+
class PLC_Logic():
|
|
8
|
+
"""PLC Logic."""
|
|
9
|
+
|
|
10
|
+
def __init__(self):
|
|
11
|
+
"""Create tags."""
|
|
12
|
+
self.i = 0
|
|
13
|
+
self.sim_IntSet = Tag('sim_IntSet', int)
|
|
14
|
+
self.sim_IntSet.value = 0
|
|
15
|
+
self.sim_IntVal = Tag('sim_IntVal', int)
|
|
16
|
+
self.sim_FloatSet = Tag('sim_FloatSet', float)
|
|
17
|
+
self.sim_FloatSet.value = 0
|
|
18
|
+
self.sim_FloatVal = Tag('sim_FloatVal', float)
|
|
19
|
+
self.sim_MultiSet = Tag('sim_MultiSet', int)
|
|
20
|
+
self.sim_MultiSet.value = 0
|
|
21
|
+
self.sim_MultiVal = Tag('sim_MultiVal', int)
|
|
22
|
+
self.sim_TimeSet = Tag('sim_TimeSet', int)
|
|
23
|
+
self.sim_TimeSet.value = 0
|
|
24
|
+
self.sim_TimeVal = Tag('sim_TimeVal', int)
|
|
25
|
+
self.sim_DateSet = Tag('sim_DateSet', int)
|
|
26
|
+
self.sim_DateSet.value = 0
|
|
27
|
+
self.sim_DateVal = Tag('sim_DateVal', int)
|
|
28
|
+
self.sim_DateTimeSet = Tag('sim_DateTimeSet', int)
|
|
29
|
+
self.sim_DateTimeSet.value = 0
|
|
30
|
+
self.sim_DateTimeVal = Tag('sim_DateTimeVal', int)
|
|
31
|
+
self.avg_temp = ps.Average(Tag('cpu_temp', float))
|
|
32
|
+
self.cpu_load = Tag('cpu_load', float)
|
|
33
|
+
self.disk_use = Tag('disk_use', float)
|
|
34
|
+
|
|
35
|
+
async def periodic(self):
|
|
36
|
+
"""Emulate some PLC logic."""
|
|
37
|
+
self.sim_IntVal.value = ramp(self.sim_IntVal.value,
|
|
38
|
+
self.sim_IntSet.value, 1)
|
|
39
|
+
self.sim_FloatVal.value = ramp(self.sim_FloatVal.value,
|
|
40
|
+
self.sim_FloatSet.value, 0.5)
|
|
41
|
+
self.sim_MultiVal.value = self.sim_MultiSet.value
|
|
42
|
+
self.sim_TimeVal.value = self.sim_TimeSet.value
|
|
43
|
+
self.sim_DateVal.value = self.sim_DateSet.value
|
|
44
|
+
self.sim_DateTimeVal.value = self.sim_DateTimeSet.value
|
|
45
|
+
self.avg_temp.step(ps.get_cpu_temp())
|
|
46
|
+
self.i += 1
|
|
47
|
+
if self.i % 60 == 0:
|
|
48
|
+
self.cpu_load.value = ps.get_cpu_load()
|
|
49
|
+
self.disk_use.value = ps.get_disk_use()
|
|
34
50
|
|
|
35
51
|
|
|
36
52
|
async def main():
|
|
@@ -38,7 +54,8 @@ async def main():
|
|
|
38
54
|
config = Config('modbusserver.yaml')
|
|
39
55
|
mbserver = ModbusServer(**config)
|
|
40
56
|
await mbserver.start()
|
|
41
|
-
|
|
57
|
+
plc = PLC_Logic()
|
|
58
|
+
periodic = Periodic(plc.periodic, 1.0)
|
|
42
59
|
await periodic.start()
|
|
43
60
|
await asyncio.get_event_loop().create_future()
|
|
44
61
|
|
pymscada/demo/modbusclient.yaml
CHANGED
|
@@ -47,4 +47,13 @@ tags:
|
|
|
47
47
|
addr: RTU:1:4x:25
|
|
48
48
|
DateTimeVal:
|
|
49
49
|
type: uint64
|
|
50
|
-
addr: RTU:1:4x:29
|
|
50
|
+
addr: RTU:1:4x:29
|
|
51
|
+
cpu_temp:
|
|
52
|
+
type: float32
|
|
53
|
+
addr: RTU:1:4x:33
|
|
54
|
+
cpu_load:
|
|
55
|
+
type: float32
|
|
56
|
+
addr: RTU:1:4x:35
|
|
57
|
+
disk_use:
|
|
58
|
+
type: float32
|
|
59
|
+
addr: RTU:1:4x:37
|
pymscada/demo/modbusserver.yaml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
bus_ip:
|
|
2
|
-
bus_port:
|
|
1
|
+
bus_ip: 192.168.1.100 # for the demo PLC make empty (None)
|
|
2
|
+
bus_port: 2345 # for the demo PLC make empty (None)
|
|
3
3
|
rtus:
|
|
4
4
|
- name: RTU
|
|
5
5
|
ip: 0.0.0.0
|
|
@@ -43,4 +43,13 @@ tags:
|
|
|
43
43
|
addr: RTU:1:4x:25
|
|
44
44
|
sim_DateTimeVal:
|
|
45
45
|
type: uint64
|
|
46
|
-
addr: RTU:1:4x:29
|
|
46
|
+
addr: RTU:1:4x:29
|
|
47
|
+
cpu_temp:
|
|
48
|
+
type: float32
|
|
49
|
+
addr: RTU:1:4x:33
|
|
50
|
+
cpu_load:
|
|
51
|
+
type: float32
|
|
52
|
+
addr: RTU:1:4x:35
|
|
53
|
+
disk_use:
|
|
54
|
+
type: float32
|
|
55
|
+
addr: RTU:1:4x:37
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[Unit]
|
|
2
|
+
Description=pymscada - pycomm3 client
|
|
3
|
+
BindsTo=pymscada-bus.service
|
|
4
|
+
After=pymscada-bus.service
|
|
5
|
+
|
|
6
|
+
[Service]
|
|
7
|
+
WorkingDirectory=__DIR__
|
|
8
|
+
ExecStart=__PYMSCADA__ logixclient --config __DIR__/config/logixclient.yaml
|
|
9
|
+
Restart=always
|
|
10
|
+
RestartSec=5
|
|
11
|
+
User=mscada
|
|
12
|
+
Group=mscada
|
|
13
|
+
|
|
14
|
+
[Install]
|
|
15
|
+
WantedBy=multi-user.target
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[Unit]
|
|
2
|
+
Description=pymscada - SNMP client
|
|
3
|
+
BindsTo=pymscada-bus.service
|
|
4
|
+
After=pymscada-bus.service
|
|
5
|
+
|
|
6
|
+
[Service]
|
|
7
|
+
WorkingDirectory=__DIR__
|
|
8
|
+
ExecStart=__PYMSCADA__ snmpclient --config __DIR__/config/snmpclient.yaml
|
|
9
|
+
Restart=always
|
|
10
|
+
RestartSec=5
|
|
11
|
+
User=mscada
|
|
12
|
+
Group=mscada
|
|
13
|
+
|
|
14
|
+
[Install]
|
|
15
|
+
WantedBy=multi-user.target
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
bus_ip: 127.0.0.1
|
|
2
|
+
bus_port: 1324
|
|
3
|
+
rtus:
|
|
4
|
+
- name: router
|
|
5
|
+
ip: 172.26.3.254
|
|
6
|
+
community: public
|
|
7
|
+
rate: 10
|
|
8
|
+
read:
|
|
9
|
+
- '1.3.6.1.2.1.31.1.1.1.6.1'
|
|
10
|
+
- '1.3.6.1.2.1.31.1.1.1.6.2'
|
|
11
|
+
- '1.3.6.1.2.1.31.1.1.1.6.3'
|
|
12
|
+
- '1.3.6.1.2.1.31.1.1.1.6.4'
|
|
13
|
+
- '1.3.6.1.2.1.31.1.1.1.6.5'
|
|
14
|
+
- '1.3.6.1.2.1.31.1.1.1.6.6'
|
|
15
|
+
- '1.3.6.1.2.1.31.1.1.1.6.7'
|
|
16
|
+
- '1.3.6.1.2.1.31.1.1.1.6.8'
|
|
17
|
+
- '1.3.6.1.2.1.31.1.1.1.10.1'
|
|
18
|
+
- '1.3.6.1.2.1.31.1.1.1.10.2'
|
|
19
|
+
- '1.3.6.1.2.1.31.1.1.1.10.3'
|
|
20
|
+
- '1.3.6.1.2.1.31.1.1.1.10.4'
|
|
21
|
+
- '1.3.6.1.2.1.31.1.1.1.10.5'
|
|
22
|
+
- '1.3.6.1.2.1.31.1.1.1.10.6'
|
|
23
|
+
- '1.3.6.1.2.1.31.1.1.1.10.7'
|
|
24
|
+
- '1.3.6.1.2.1.31.1.1.1.10.8'
|
|
25
|
+
tags:
|
|
26
|
+
Router_eth1_bytes_in:
|
|
27
|
+
type: int_roc
|
|
28
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.6.1'
|
|
29
|
+
Router_eth1_bytes_out:
|
|
30
|
+
type: int_roc
|
|
31
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.10.1'
|
|
32
|
+
Router_eth2_bytes_in:
|
|
33
|
+
type: int_roc
|
|
34
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.6.2'
|
|
35
|
+
Router_eth2_bytes_out:
|
|
36
|
+
type: int_roc
|
|
37
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.10.2'
|
|
38
|
+
Router_eth3_bytes_in:
|
|
39
|
+
type: int_roc
|
|
40
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.6.3'
|
|
41
|
+
Router_eth3_bytes_out:
|
|
42
|
+
type: int_roc
|
|
43
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.10.3'
|
|
44
|
+
Router_eth4_bytes_in:
|
|
45
|
+
type: int_roc
|
|
46
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.6.4'
|
|
47
|
+
Router_eth4_bytes_out:
|
|
48
|
+
type: int_roc
|
|
49
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.10.4'
|
|
50
|
+
Router_eth5_bytes_in:
|
|
51
|
+
type: int_roc
|
|
52
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.6.5'
|
|
53
|
+
Router_eth5_bytes_out:
|
|
54
|
+
type: int_roc
|
|
55
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.10.5'
|
|
56
|
+
Router_eth6_bytes_in:
|
|
57
|
+
type: int_roc
|
|
58
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.6.6'
|
|
59
|
+
Router_eth6_bytes_out:
|
|
60
|
+
type: int_roc
|
|
61
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.10.6'
|
|
62
|
+
Router_eth7_bytes_in:
|
|
63
|
+
type: int_roc
|
|
64
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.6.7'
|
|
65
|
+
Router_eth7_bytes_out:
|
|
66
|
+
type: int_roc
|
|
67
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.10.7'
|
|
68
|
+
Router_eth8_bytes_in:
|
|
69
|
+
type: int_roc
|
|
70
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.6.8'
|
|
71
|
+
Router_eth8_bytes_out:
|
|
72
|
+
type: int_roc
|
|
73
|
+
addr: 'router:1.3.6.1.2.1.31.1.1.1.10.8'
|
pymscada/demo/tags.yaml
CHANGED
|
@@ -28,16 +28,16 @@ IntVal:
|
|
|
28
28
|
FloatSet:
|
|
29
29
|
desc: Float Setpoint
|
|
30
30
|
type: float
|
|
31
|
-
min: -
|
|
32
|
-
max:
|
|
31
|
+
min: -1.e+100
|
|
32
|
+
max: 1.e+100
|
|
33
33
|
units: 'm'
|
|
34
34
|
dp: 1
|
|
35
35
|
init: 2
|
|
36
36
|
FloatVal:
|
|
37
37
|
desc: Float Value
|
|
38
38
|
type: float
|
|
39
|
-
min: -
|
|
40
|
-
max:
|
|
39
|
+
min: -1.e+100
|
|
40
|
+
max: 1.e+100
|
|
41
41
|
units: 'm'
|
|
42
42
|
dp: 1
|
|
43
43
|
init: 2
|
|
@@ -108,4 +108,109 @@ FloatSelect:
|
|
|
108
108
|
init:
|
|
109
109
|
labels: [Floats, For, This, Tag]
|
|
110
110
|
values: [0.1, 0.1, 0.2, 0.3]
|
|
111
|
-
locks: [0, 1, 0, 0]
|
|
111
|
+
locks: [0, 1, 0, 0]
|
|
112
|
+
cpu_temp:
|
|
113
|
+
desc: CPU Load
|
|
114
|
+
type: float
|
|
115
|
+
min: 0
|
|
116
|
+
max: 100
|
|
117
|
+
units: '°C'
|
|
118
|
+
dp: 1
|
|
119
|
+
cpu_load:
|
|
120
|
+
desc: Float Value
|
|
121
|
+
type: float
|
|
122
|
+
min: 0
|
|
123
|
+
max: 100
|
|
124
|
+
units: '%'
|
|
125
|
+
dp: 1
|
|
126
|
+
disk_use:
|
|
127
|
+
desc: Float Value
|
|
128
|
+
type: float
|
|
129
|
+
min: 0
|
|
130
|
+
max: 100
|
|
131
|
+
units: '%'
|
|
132
|
+
dp: 1
|
|
133
|
+
sim_IntSet: # for the demo PLC sim_ tags not required
|
|
134
|
+
desc: Simulation tag
|
|
135
|
+
type: int
|
|
136
|
+
sim_IntVal:
|
|
137
|
+
desc: Simulation tag
|
|
138
|
+
type: int
|
|
139
|
+
sim_FloatSet:
|
|
140
|
+
desc: Simulation tag
|
|
141
|
+
type: float
|
|
142
|
+
sim_FloatVal:
|
|
143
|
+
desc: Simulation tag
|
|
144
|
+
type: float
|
|
145
|
+
sim_MultiSet:
|
|
146
|
+
desc: Simulation tag
|
|
147
|
+
type: int
|
|
148
|
+
sim_MultiVal:
|
|
149
|
+
desc: Simulation tag
|
|
150
|
+
type: int
|
|
151
|
+
sim_TimeSet:
|
|
152
|
+
desc: Simulation tag
|
|
153
|
+
type: int
|
|
154
|
+
sim_TimeVal:
|
|
155
|
+
desc: Simulation tag
|
|
156
|
+
type: int
|
|
157
|
+
sim_DateSet:
|
|
158
|
+
desc: Simulation tag
|
|
159
|
+
type: int
|
|
160
|
+
sim_DateVal:
|
|
161
|
+
desc: Simulation tag
|
|
162
|
+
type: int
|
|
163
|
+
sim_DateTimeSet:
|
|
164
|
+
desc: Simulation tag
|
|
165
|
+
type: int
|
|
166
|
+
sim_DateTimeVal:
|
|
167
|
+
desc: Simulation tag
|
|
168
|
+
type: int
|
|
169
|
+
Router_eth1_bytes_in:
|
|
170
|
+
desc: eth1 bytes in
|
|
171
|
+
type: int
|
|
172
|
+
Router_eth1_bytes_out:
|
|
173
|
+
desc: eth1 bytes out
|
|
174
|
+
type: int
|
|
175
|
+
Router_eth2_bytes_in:
|
|
176
|
+
desc: eth2 bytes in
|
|
177
|
+
type: int
|
|
178
|
+
Router_eth2_bytes_out:
|
|
179
|
+
desc: eth2 bytes out
|
|
180
|
+
type: int
|
|
181
|
+
Router_eth3_bytes_in:
|
|
182
|
+
desc: eth3 bytes in
|
|
183
|
+
type: int
|
|
184
|
+
Router_eth3_bytes_out:
|
|
185
|
+
desc: eth3 bytes out
|
|
186
|
+
type: int
|
|
187
|
+
Router_eth4_bytes_in:
|
|
188
|
+
desc: eth4 bytes in
|
|
189
|
+
type: int
|
|
190
|
+
Router_eth4_bytes_out:
|
|
191
|
+
desc: eth4 bytes out
|
|
192
|
+
type: int
|
|
193
|
+
Router_eth5_bytes_in:
|
|
194
|
+
desc: eth5 bytes in
|
|
195
|
+
type: int
|
|
196
|
+
Router_eth5_bytes_out:
|
|
197
|
+
desc: eth5 bytes out
|
|
198
|
+
type: int
|
|
199
|
+
Router_eth6_bytes_in:
|
|
200
|
+
desc: eth6 bytes in
|
|
201
|
+
type: int
|
|
202
|
+
Router_eth6_bytes_out:
|
|
203
|
+
desc: eth6 bytes out
|
|
204
|
+
type: int
|
|
205
|
+
Router_eth7_bytes_in:
|
|
206
|
+
desc: eth7 bytes in
|
|
207
|
+
type: int
|
|
208
|
+
Router_eth7_bytes_out:
|
|
209
|
+
desc: eth7 bytes out
|
|
210
|
+
type: int
|
|
211
|
+
Router_eth8_bytes_in:
|
|
212
|
+
desc: eth8 bytes in
|
|
213
|
+
type: int
|
|
214
|
+
Router_eth8_bytes_out:
|
|
215
|
+
desc: eth8 bytes out
|
|
216
|
+
type: int
|
pymscada/demo/wwwserver.yaml
CHANGED
|
@@ -51,30 +51,36 @@ pages:
|
|
|
51
51
|
axes:
|
|
52
52
|
- scale: x
|
|
53
53
|
range: [-86400, 0] # 86400 172800 1209600
|
|
54
|
-
- scale:
|
|
54
|
+
- scale: '°C'
|
|
55
55
|
range: [0.0, 100.0]
|
|
56
56
|
dp: 1
|
|
57
|
-
- scale:
|
|
57
|
+
- scale: '%'
|
|
58
58
|
range: [0.0, 100.0]
|
|
59
59
|
dp: 1
|
|
60
|
-
side: 1
|
|
60
|
+
# side: 1
|
|
61
61
|
# bands: # TODO
|
|
62
62
|
# - series: [I_Transpower_Limit_Hi, I_Transpower_Limit_Lo]
|
|
63
63
|
# fill: [red, 0.2]
|
|
64
64
|
# dir: -1
|
|
65
65
|
series:
|
|
66
|
-
- tagname:
|
|
67
|
-
label:
|
|
68
|
-
scale:
|
|
69
|
-
color:
|
|
66
|
+
- tagname: cpu_load
|
|
67
|
+
label: CPU Load
|
|
68
|
+
scale: '%'
|
|
69
|
+
color: black
|
|
70
70
|
width: 1.5
|
|
71
71
|
dp: 1
|
|
72
|
-
- tagname:
|
|
73
|
-
label:
|
|
74
|
-
scale:
|
|
72
|
+
- tagname: disk_use
|
|
73
|
+
label: Disk Use
|
|
74
|
+
scale: '%'
|
|
75
75
|
color: blue
|
|
76
76
|
width: 1
|
|
77
77
|
dp: 1
|
|
78
|
+
- tagname: cpu_temp
|
|
79
|
+
label: CPU Temp
|
|
80
|
+
scale: '°C'
|
|
81
|
+
color: red
|
|
82
|
+
width: 1
|
|
83
|
+
dp: 1
|
|
78
84
|
- name: Files
|
|
79
85
|
parent: Dropdown
|
|
80
86
|
items:
|