Compare commits
11 Commits
ac9f83d856
...
issue/1
| Author | SHA1 | Date | |
|---|---|---|---|
| c8c3aff2fb | |||
| f2e322230e | |||
| 735abac249 | |||
| 541815d81f | |||
| 47c3fbabf0 | |||
| 91fa60851d | |||
| 2a62fe406f | |||
| d397ce377e | |||
| 8690a50899 | |||
| d764c5c256 | |||
| a56781dca3 |
@@ -32,6 +32,8 @@ The main program with html output is executed by entering
|
|||||||
python survBot.py -html path_for_html_output
|
python survBot.py -html path_for_html_output
|
||||||
```
|
```
|
||||||
|
|
||||||
|
There are example stylesheets in the folder *stylesheets* that can be copied into the path_for_html_output if desired.
|
||||||
|
|
||||||
The GUI can be loaded via
|
The GUI can be loaded via
|
||||||
|
|
||||||
```shell script
|
```shell script
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ datapath: "/data/SDS/" # SC3 Datapath
|
|||||||
networks: ["1Y", "HA"] # select networks, list or str
|
networks: ["1Y", "HA"] # select networks, list or str
|
||||||
stations: "*" # select stations, list or str
|
stations: "*" # select stations, list or str
|
||||||
locations: "*" # select locations, list or str
|
locations: "*" # select locations, list or str
|
||||||
channels: ["EX1", "EX2", "EX3", "VEI", "LCQ"] # Specify SOH channels, currently supported EX[1-3], VEI, LCQ
|
channels: ["EX1", "EX2", "EX3", "VEI", "LCQ"] # Specify SOH channels, currently supported EX[1-3], VEI and LCQ
|
||||||
stations_blacklist: ["TEST", "EREA"]
|
stations_blacklist: ["TEST", "EREA"] # exclude these stations
|
||||||
networks_blacklist: []
|
networks_blacklist: [] # exclude these networks
|
||||||
interval: 60 # Perform checks every x seconds
|
interval: 60 # Perform checks every x seconds
|
||||||
n_track: 300 # wait n_track * intervals before performing an action (i.e. send mail/end highlight status)
|
n_track: 300 # wait n_track * intervals before performing an action (i.e. send mail/end highlight status)
|
||||||
timespan: 7 # Check data of the recent x days
|
timespan: 7 # Check data of the recent x days
|
||||||
@@ -60,6 +60,8 @@ EMAIL:
|
|||||||
mailserver: "localhost"
|
mailserver: "localhost"
|
||||||
addresses: ["marcel.paffrath@rub.de", "kasper.fischer@rub.de"] # list of mail addresses for info mails
|
addresses: ["marcel.paffrath@rub.de", "kasper.fischer@rub.de"] # list of mail addresses for info mails
|
||||||
sender: "webmaster@geophysik.ruhr-uni-bochum.de" # mail sender
|
sender: "webmaster@geophysik.ruhr-uni-bochum.de" # mail sender
|
||||||
|
stations_blacklist: ['GR33'] # do not send emails for specific stations
|
||||||
|
networks_blacklist: [] # do not send emails for specific network
|
||||||
|
|
||||||
# names for plotting of the above defined parameter "channels" in the same order
|
# names for plotting of the above defined parameter "channels" in the same order
|
||||||
channel_names: ["Clock Quality (%)", "Temperature (°C)", "230V/12V Status (V)", "Router/Charger State (V)", "Logger Voltage (V)"] # names for plotting (optional)
|
channel_names: ["Clock Quality (%)", "Temperature (°C)", "230V/12V Status (V)", "Router/Charger State (V)", "Logger Voltage (V)"] # names for plotting (optional)
|
||||||
|
|||||||
39
stylesheets/desktop.css
Normal file
39
stylesheets/desktop.css
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
body {
|
||||||
|
background-color: #ffffff;
|
||||||
|
place-items: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
background-color: #999;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 3px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link, a:visited {
|
||||||
|
background-color: #ccc;
|
||||||
|
color: #000;
|
||||||
|
text-decoration: none;
|
||||||
|
display: block;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
background-color: #aaa;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blink-bg {
|
||||||
|
animation: blinkingBackground 2s infinite;
|
||||||
|
}
|
||||||
|
@keyframes blinkingBackground{
|
||||||
|
0% { background-color: #ffcc00;}
|
||||||
|
50% { background-color: #ff3200;}
|
||||||
|
100% { background-color: #ffcc00;}
|
||||||
|
}
|
||||||
43
stylesheets/mobile.css
Normal file
43
stylesheets/mobile.css
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
body {
|
||||||
|
background-color: #ffffff;
|
||||||
|
place-items: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 10px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
background-color: #999;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 10px, 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link {
|
||||||
|
background-color: #ccc;
|
||||||
|
color: #000;
|
||||||
|
text-decoration: none;
|
||||||
|
display: block;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
background-color: #aaa;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-mobile {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blink-bg {
|
||||||
|
animation: blinkingBackground 2s infinite;
|
||||||
|
}
|
||||||
|
@keyframes blinkingBackground{
|
||||||
|
0% { background-color: #ffee00;}
|
||||||
|
50% { background-color: #ff3200;}
|
||||||
|
100% { background-color: #ffee00;}
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@ ulimit -s 8192
|
|||||||
#$ -cwd
|
#$ -cwd
|
||||||
#$ -pe smp 1
|
#$ -pe smp 1
|
||||||
#$ -N survBot_bg
|
#$ -N survBot_bg
|
||||||
##$ -l os=*stretch
|
#$ -l os=*stretch
|
||||||
|
|
||||||
source /opt/anaconda3/etc/profile.d/conda.sh
|
source /opt/anaconda3/etc/profile.d/conda.sh
|
||||||
conda activate py37
|
conda activate py37
|
||||||
|
|||||||
14
survBot.py
14
survBot.py
@@ -581,11 +581,25 @@ class StationQC(object):
|
|||||||
if self.verbosity:
|
if self.verbosity:
|
||||||
print('Mail functionality disabled. Return')
|
print('Mail functionality disabled. Return')
|
||||||
return
|
return
|
||||||
|
|
||||||
mail_params = self.parameters.get('EMAIL')
|
mail_params = self.parameters.get('EMAIL')
|
||||||
if not mail_params:
|
if not mail_params:
|
||||||
if self.verbosity:
|
if self.verbosity:
|
||||||
print('parameter "EMAIL" not set in parameter file. Return')
|
print('parameter "EMAIL" not set in parameter file. Return')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
stations_blacklist = mail_params.get('stations_blacklist')
|
||||||
|
if stations_blacklist and self.station in stations_blacklist:
|
||||||
|
if self.verbosity:
|
||||||
|
print(f'Station {self.station} listed in blacklist. Return')
|
||||||
|
return
|
||||||
|
|
||||||
|
networks_blacklist = mail_params.get('networks_blacklist')
|
||||||
|
if networks_blacklist and self.network in networks_blacklist:
|
||||||
|
if self.verbosity:
|
||||||
|
print(f'Station {self.station} of network {self.network} listed in blacklist. Return')
|
||||||
|
return
|
||||||
|
|
||||||
sender = mail_params.get('sender')
|
sender = mail_params.get('sender')
|
||||||
addresses = mail_params.get('addresses')
|
addresses = mail_params.get('addresses')
|
||||||
server = mail_params.get('mailserver')
|
server = mail_params.get('mailserver')
|
||||||
|
|||||||
@@ -14,19 +14,13 @@ def write_html_header(fobj, refresh_rate=10):
|
|||||||
header = ['<!DOCTYPE html>',
|
header = ['<!DOCTYPE html>',
|
||||||
'<html>',
|
'<html>',
|
||||||
'<head>',
|
'<head>',
|
||||||
'<link rel="stylesheet" href="stylesheet.css">',
|
' <link rel="stylesheet" media="only screen and (max-width: 400px)" href="mobile.css" />',
|
||||||
|
' <link rel="stylesheet" media="only screen and (min-width: 401px)" href="desktop.css" />',
|
||||||
'</head>',
|
'</head>',
|
||||||
f'<meta http-equiv="refresh" content="{refresh_rate}" >',
|
f'<meta http-equiv="refresh" content="{refresh_rate}" >',
|
||||||
'<meta charset="utf-8">',
|
'<meta charset="utf-8">',
|
||||||
'<meta name="viewport" content="width=device-width, initial-scale=1">',
|
'<meta name="viewport" content="width=device-width, initial-scale=1">',
|
||||||
'<link rel="stylesheet" media="only screen and (max-width: 400px)" href="mobile.css" />',
|
|
||||||
'<link rel="stylesheet" media="only screen and (min-width: 401px)" href="desktop.css" />',
|
|
||||||
'<body>']
|
'<body>']
|
||||||
# style = ['<style>',
|
|
||||||
# 'table, th, td {',
|
|
||||||
# 'border:1px solid black;',
|
|
||||||
# '}',
|
|
||||||
# '</style>',]
|
|
||||||
for item in header:
|
for item in header:
|
||||||
fobj.write(item + '\n')
|
fobj.write(item + '\n')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user