mirror of
https://github.com/PiBrewing/craftbeerpi4.git
synced 2024-11-09 17:07:43 +01:00
reuqirements.txt updated
This commit is contained in:
parent
eb22311de7
commit
2779c3cc2c
17 changed files with 329 additions and 42 deletions
|
@ -1 +1 @@
|
||||||
__version__ = "4.0.0.8"
|
__version__ = "4.0.0.12"
|
|
@ -28,16 +28,11 @@ class CBPiKettleLogic(metaclass=ABCMeta):
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
def get_state(self):
|
def get_state(self):
|
||||||
print("########STATE", self.state)
|
|
||||||
return dict(state=self.state)
|
return dict(state=self.state)
|
||||||
|
|
||||||
async def start(self):
|
async def start(self):
|
||||||
print("")
|
|
||||||
print("")
|
|
||||||
print("")
|
|
||||||
print("##################START UP KETTLE")
|
|
||||||
print("")
|
|
||||||
print("")
|
|
||||||
self.running = True
|
self.running = True
|
||||||
|
|
||||||
async def stop(self):
|
async def stop(self):
|
||||||
|
|
34
cbpi/cli.py
34
cbpi/cli.py
|
@ -13,8 +13,6 @@ import os
|
||||||
import pathlib
|
import pathlib
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def create_plugin_file():
|
def create_plugin_file():
|
||||||
import os.path
|
import os.path
|
||||||
if os.path.exists(os.path.join(".", 'config', "plugin_list.txt")) is False:
|
if os.path.exists(os.path.join(".", 'config', "plugin_list.txt")) is False:
|
||||||
|
@ -31,10 +29,38 @@ def create_config_file():
|
||||||
shutil.copy(srcfile, destfile)
|
shutil.copy(srcfile, destfile)
|
||||||
print("Config Folder created")
|
print("Config Folder created")
|
||||||
|
|
||||||
|
if os.path.exists(os.path.join(".", 'config', "actor.json")) is False:
|
||||||
|
srcfile = os.path.join(os.path.dirname(__file__), "config", "actor.json")
|
||||||
|
destfile = os.path.join(".", 'config')
|
||||||
|
shutil.copy(srcfile, destfile)
|
||||||
|
|
||||||
|
if os.path.exists(os.path.join(".", 'config', "sensor.json")) is False:
|
||||||
|
srcfile = os.path.join(os.path.dirname(__file__), "config", "sensor.json")
|
||||||
|
destfile = os.path.join(".", 'config')
|
||||||
|
shutil.copy(srcfile, destfile)
|
||||||
|
|
||||||
|
if os.path.exists(os.path.join(".", 'config', "kettle.json")) is False:
|
||||||
|
srcfile = os.path.join(os.path.dirname(__file__), "config", "kettle.json")
|
||||||
|
destfile = os.path.join(".", 'config')
|
||||||
|
shutil.copy(srcfile, destfile)
|
||||||
|
|
||||||
|
if os.path.exists(os.path.join(".", 'config', "step_data.json")) is False:
|
||||||
|
srcfile = os.path.join(os.path.dirname(__file__), "config", "step_data.json")
|
||||||
|
destfile = os.path.join(".", 'config')
|
||||||
|
shutil.copy(srcfile, destfile)
|
||||||
|
|
||||||
|
if os.path.exists(os.path.join(".", 'config', "dashboard", "cbpi_dashboard_1.json")) is False:
|
||||||
|
srcfile = os.path.join(os.path.dirname(__file__), "config", "dashboard", "cbpi_dashboard_1.json")
|
||||||
|
destfile = os.path.join(".", "config", "dashboard")
|
||||||
|
shutil.copy(srcfile, destfile)
|
||||||
|
|
||||||
|
|
||||||
def create_home_folder_structure():
|
def create_home_folder_structure():
|
||||||
pathlib.Path(os.path.join(".", 'logs/sensors')).mkdir(parents=True, exist_ok=True)
|
pathlib.Path(os.path.join(".", 'logs/sensors')).mkdir(parents=True, exist_ok=True)
|
||||||
pathlib.Path(os.path.join(".", 'config')).mkdir(parents=True, exist_ok=True)
|
pathlib.Path(os.path.join(".", 'config')).mkdir(parents=True, exist_ok=True)
|
||||||
print("Log Folder created")
|
pathlib.Path(os.path.join(".", 'config/dasboard')).mkdir(parents=True, exist_ok=True)
|
||||||
|
pathlib.Path(os.path.join(".", 'config/dasboard/widgets')).mkdir(parents=True, exist_ok=True)
|
||||||
|
print("Folder created")
|
||||||
|
|
||||||
def copy_splash():
|
def copy_splash():
|
||||||
srcfile = os.path.join(os.path.dirname(__file__), "config", "splash.png")
|
srcfile = os.path.join(os.path.dirname(__file__), "config", "splash.png")
|
||||||
|
@ -123,7 +149,7 @@ def remove(package_name):
|
||||||
match_uninstalled = re.search(pattern, data)
|
match_uninstalled = re.search(pattern, data)
|
||||||
|
|
||||||
if match_uninstalled is None:
|
if match_uninstalled is None:
|
||||||
print(data)
|
|
||||||
print("Faild to uninstall plugin")
|
print("Faild to uninstall plugin")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
name: CraftBeerPi
|
name: CraftBeerPi
|
||||||
version: 4.0.8
|
version: 4.0.8
|
||||||
|
|
||||||
#: /myext
|
index_url: /cbpi_ui/static/index.html
|
||||||
|
|
||||||
port: 8000
|
port: 8000
|
||||||
|
|
||||||
|
|
3
cbpi/config/dashboard/cbpi_dashboard_1.json
Normal file
3
cbpi/config/dashboard/cbpi_dashboard_1.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"elements": []
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
cbpi4-ui:
|
||||||
|
installation_date: '2021-01-06 16:03:31'
|
||||||
|
version: '0.0.1'
|
|
@ -90,11 +90,11 @@ class BasicController:
|
||||||
return
|
return
|
||||||
|
|
||||||
type = item["type"]
|
type = item["type"]
|
||||||
print(type)
|
|
||||||
print(self.types)
|
|
||||||
clazz = self.types[type]["class"]
|
clazz = self.types[type]["class"]
|
||||||
item["instance"] = clazz(self.cbpi, item["id"], {})
|
item["instance"] = clazz(self.cbpi, item["id"], {})
|
||||||
print(item["instance"])
|
|
||||||
await item["instance"].start()
|
await item["instance"].start()
|
||||||
item["instance"].task = self._loop.create_task(item["instance"].run())
|
item["instance"].task = self._loop.create_task(item["instance"].run())
|
||||||
logging.info("Sensor started {}".format(id))
|
logging.info("Sensor started {}".format(id))
|
||||||
|
@ -142,7 +142,7 @@ class BasicController:
|
||||||
logging.info("{} call all Action {} {}".format(self.name, id, action))
|
logging.info("{} call all Action {} {}".format(self.name, id, action))
|
||||||
try:
|
try:
|
||||||
item = self.find_by_id(id)
|
item = self.find_by_id(id)
|
||||||
print(item)
|
|
||||||
instance = item.get("instance")
|
instance = item.get("instance")
|
||||||
await instance.__getattribute__(action)(**parameter)
|
await instance.__getattribute__(action)(**parameter)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
@ -11,22 +11,25 @@ class DashboardController():
|
||||||
self.logger = logging.getLogger(__name__)
|
self.logger = logging.getLogger(__name__)
|
||||||
self.cbpi.register(self)
|
self.cbpi.register(self)
|
||||||
|
|
||||||
|
self.path = os.path.join(".", 'config', "cbpi_dashboard_1.json")
|
||||||
|
|
||||||
async def init(self):
|
async def init(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_content(self, dashboard_id):
|
async def get_content(self, dashboard_id):
|
||||||
try:
|
try:
|
||||||
with open('./config/dashboard/cbpi_dashboard_%s.json' % dashboard_id) as json_file:
|
with open(self.path) as json_file:
|
||||||
data = json.load(json_file)
|
data = json.load(json_file)
|
||||||
return data
|
return data
|
||||||
except:
|
except:
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
async def add_content(self, dashboard_id, data):
|
async def add_content(self, dashboard_id, data):
|
||||||
with open('./config/dashboard/cbpi_dashboard_%s.json' % dashboard_id, 'w') as outfile:
|
with open(self.path, 'w') as outfile:
|
||||||
json.dump(data, outfile, indent=4, sort_keys=True)
|
json.dump(data, outfile, indent=4, sort_keys=True)
|
||||||
return {"status": "OK"}
|
return {"status": "OK"}
|
||||||
|
|
||||||
async def delete_content(self, dashboard_id):
|
async def delete_content(self, dashboard_id):
|
||||||
if os.path.exists('./config/dashboard/cbpi_dashboard_%s.json' % dashboard_id):
|
if os.path.exists(self.path):
|
||||||
os.remove('./config/dashboard/cbpi_dashboard_%s.json' % dashboard_id)
|
os.remove(self.path)
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,7 @@ class PluginController():
|
||||||
for method_name, method in cls.__dict__.items():
|
for method_name, method in cls.__dict__.items():
|
||||||
|
|
||||||
if hasattr(method, "action"):
|
if hasattr(method, "action"):
|
||||||
print(method_name)
|
|
||||||
key = method.__getattribute__("key")
|
key = method.__getattribute__("key")
|
||||||
parameters = []
|
parameters = []
|
||||||
for p in method.__getattribute__("parameters"):
|
for p in method.__getattribute__("parameters"):
|
||||||
|
|
|
@ -34,7 +34,6 @@ class CustomSensor(CBPiSensor):
|
||||||
async def run(self):
|
async def run(self):
|
||||||
|
|
||||||
while self.running is True:
|
while self.running is True:
|
||||||
print("HALLO")
|
|
||||||
self.value = random.randint(0,50)
|
self.value = random.randint(0,50)
|
||||||
self.push_update(self.value)
|
self.push_update(self.value)
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
|
@ -4,6 +4,7 @@ from voluptuous import Schema
|
||||||
|
|
||||||
from cbpi.http_endpoints.http_curd_endpoints import HttpCrudEndpoints
|
from cbpi.http_endpoints.http_curd_endpoints import HttpCrudEndpoints
|
||||||
from cbpi.utils import json_dumps
|
from cbpi.utils import json_dumps
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
class DashBoardHttpEndpoints(HttpCrudEndpoints):
|
class DashBoardHttpEndpoints(HttpCrudEndpoints):
|
||||||
|
@ -11,9 +12,7 @@ class DashBoardHttpEndpoints(HttpCrudEndpoints):
|
||||||
def __init__(self, cbpi):
|
def __init__(self, cbpi):
|
||||||
self.cbpi = cbpi
|
self.cbpi = cbpi
|
||||||
self.controller = cbpi.dashboard
|
self.controller = cbpi.dashboard
|
||||||
self.cbpi.register(self, "/dashboard")
|
self.cbpi.register(self, "/dashboard", os.path.join(".","config", "dashboard", "widgets"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@request_mapping(path="/{id:\d+}/content", auth_required=False)
|
@request_mapping(path="/{id:\d+}/content", auth_required=False)
|
||||||
|
|
64
config/cbpi_dashboard_1.json
Normal file
64
config/cbpi_dashboard_1.json
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"id": "6c670263-7b19-426c-8769-19aac8ebb381",
|
||||||
|
"name": "CustomSVG",
|
||||||
|
"props": {
|
||||||
|
"name": "tank",
|
||||||
|
"width": "200"
|
||||||
|
},
|
||||||
|
"type": "CustomSVG",
|
||||||
|
"x": 295,
|
||||||
|
"y": 45
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "cbe859ca-b8e8-433f-952c-938a2f8a309b",
|
||||||
|
"name": "CustomSVG",
|
||||||
|
"props": {
|
||||||
|
"name": "tank",
|
||||||
|
"width": "100"
|
||||||
|
},
|
||||||
|
"type": "CustomSVG",
|
||||||
|
"x": 555,
|
||||||
|
"y": 55
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "1f1d5ee6-1ccc-409b-a240-c81d50b71627",
|
||||||
|
"name": "CustomSVG",
|
||||||
|
"props": {
|
||||||
|
"name": "kettle",
|
||||||
|
"width": "100"
|
||||||
|
},
|
||||||
|
"type": "CustomSVG",
|
||||||
|
"x": 795,
|
||||||
|
"y": 90
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"pathes": [
|
||||||
|
{
|
||||||
|
"coordinates": [
|
||||||
|
[
|
||||||
|
305,
|
||||||
|
75
|
||||||
|
],
|
||||||
|
[
|
||||||
|
160,
|
||||||
|
190
|
||||||
|
],
|
||||||
|
[
|
||||||
|
245,
|
||||||
|
460
|
||||||
|
],
|
||||||
|
[
|
||||||
|
525,
|
||||||
|
395
|
||||||
|
],
|
||||||
|
[
|
||||||
|
560,
|
||||||
|
75
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"id": "d22d65d2-c4db-4553-856a-e9239a79e136"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
81
config/dashboard/widgets/kettle.svg
Normal file
81
config/dashboard/widgets/kettle.svg
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="150" height="220" viewBox="0, 0, 150, 220">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="3.5" y1="110.5" x2="147.5" y2="110.5">
|
||||||
|
<stop offset="0" stop-color="#323232"/>
|
||||||
|
<stop offset="0.357" stop-color="#FFFFFF"/>
|
||||||
|
<stop offset="0.571" stop-color="#919191"/>
|
||||||
|
<stop offset="1" stop-color="#4A4A4A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_2" gradientUnits="userSpaceOnUse" x1="73.868" y1="3.277" x2="77.132" y2="217.723">
|
||||||
|
<stop offset="0" stop-color="#5D5D5D"/>
|
||||||
|
<stop offset="1" stop-color="#000000" stop-opacity="0.959"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_3" gradientUnits="userSpaceOnUse" x1="3.5" y1="101.083" x2="147.5" y2="101.083">
|
||||||
|
<stop offset="0" stop-color="#323232"/>
|
||||||
|
<stop offset="0.357" stop-color="#FFFFFF"/>
|
||||||
|
<stop offset="0.571" stop-color="#919191"/>
|
||||||
|
<stop offset="1" stop-color="#4A4A4A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_4" gradientUnits="userSpaceOnUse" x1="2.75" y1="110.5" x2="148.25" y2="110.5">
|
||||||
|
<stop offset="0" stop-color="#232323"/>
|
||||||
|
<stop offset="0.357" stop-color="#5B5B5B"/>
|
||||||
|
<stop offset="0.571" stop-color="#474747"/>
|
||||||
|
<stop offset="1" stop-color="#282828"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_5" gradientUnits="userSpaceOnUse" x1="219.5" y1="110" x2="223.5" y2="110">
|
||||||
|
<stop offset="0" stop-color="#232323"/>
|
||||||
|
<stop offset="0.357" stop-color="#5B5B5B"/>
|
||||||
|
<stop offset="0.571" stop-color="#474747"/>
|
||||||
|
<stop offset="1" stop-color="#282828"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Ebene_1" display="none">
|
||||||
|
<g display="none">
|
||||||
|
<path d="M135.5,3 C141.774,3.18 146.086,7.113 147.348,13.254 L147.5,13.254 L147.5,156.127 L111.5,185.434 C102.435,192.824 93.37,200.214 84.3,207.598 L84.3,218 L66.7,218 L66.7,207.328 C57.672,199.985 48.594,192.701 39.5,185.434 L3.5,156.127 L3.5,13.254 L3.652,13.254 C4.623,7.127 9.57,3.297 15.5,3 L135.5,3 z" fill="url(#Gradient_1)"/>
|
||||||
|
<path d="M135.5,3 C141.774,3.18 146.086,7.113 147.348,13.254 L147.5,13.254 L147.5,156.127 L111.5,185.434 C102.435,192.824 93.37,200.214 84.3,207.598 L84.3,218 L66.7,218 L66.7,207.328 C57.672,199.985 48.594,192.701 39.5,185.434 L3.5,156.127 L3.5,13.254 L3.652,13.254 C4.623,7.127 9.57,3.297 15.5,3 L135.5,3 z" fill-opacity="0" stroke="#272727" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Ebene_4"/>
|
||||||
|
<g id="Ebene_3">
|
||||||
|
<g display="none">
|
||||||
|
<g display="none">
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill="url(#Gradient_2)"/>
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<path d="M75.5,189.637 C41.08,189.637 13.177,182.258 13.177,173.156 C13.177,164.053 41.08,156.674 75.5,156.674 C109.92,156.674 137.823,164.053 137.823,173.156 C137.823,182.258 109.92,189.637 75.5,189.637 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="10"/>
|
||||||
|
<path d="M75.5,189.637 C41.08,189.637 13.177,182.258 13.177,173.156 C13.177,164.053 41.08,156.674 75.5,156.674 C109.92,156.674 137.823,164.053 137.823,173.156 C137.823,182.258 109.92,189.637 75.5,189.637 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="8"/>
|
||||||
|
<path d="M75.5,177.357 C41.08,177.357 13.177,169.978 13.177,160.875 C13.177,151.772 41.08,144.393 75.5,144.393 C109.92,144.393 137.822,151.772 137.822,160.875 C137.822,169.978 109.92,177.357 75.5,177.357 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="10"/>
|
||||||
|
<path d="M75.5,177.357 C41.08,177.357 13.177,169.978 13.177,160.875 C13.177,151.772 41.08,144.393 75.5,144.393 C109.92,144.393 137.823,151.772 137.823,160.875 C137.823,169.978 109.92,177.357 75.5,177.357 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="8"/>
|
||||||
|
<path d="M75.5,165.076 C41.08,165.076 13.177,157.697 13.177,148.594 C13.177,139.492 41.08,132.113 75.5,132.113 C109.92,132.113 137.823,139.492 137.823,148.594 C137.823,157.697 109.92,165.076 75.5,165.076 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="10"/>
|
||||||
|
<path d="M75.5,165.076 C41.08,165.076 13.177,157.697 13.177,148.594 C13.177,139.492 41.08,132.113 75.5,132.113 C109.92,132.113 137.823,139.492 137.823,148.594 C137.823,157.697 109.92,165.076 75.5,165.076 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="8"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M2.25,159.208 C2.25,163.834 34.821,167.583 75,167.583 C115.179,167.583 147.75,163.834 147.75,159.208 L147.75,208.875 C147.75,213.5 115.179,217.25 75,217.25 C34.821,217.25 2.25,213.5 2.25,208.875 L2.25,159.208 z" fill="#3B2CD5"/>
|
||||||
|
<path d="M75,167.333 C34.821,167.333 2.25,163.584 2.25,158.958 C2.25,154.333 34.821,150.583 75,150.583 C115.179,150.583 147.75,154.333 147.75,158.958 C147.75,163.584 115.179,167.333 75,167.333 z" fill="#2193FF"/>
|
||||||
|
</g>
|
||||||
|
<path d="M75.5,20 C35.321,20 2.75,16.25 2.75,11.625 C2.75,7 35.321,3.25 75.5,3.25 C115.679,3.25 148.25,7 148.25,11.625 C148.25,16.25 115.679,20 75.5,20 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
<path d="M75.5,217.75 C35.321,217.75 2.75,214 2.75,209.375 C2.75,204.75 35.321,201 75.5,201 C115.679,201 148.25,204.75 148.25,209.375 C148.25,214 115.679,217.75 75.5,217.75 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
<path d="M2.75,208.604 L2.75,12.396" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
<path d="M148.25,209.375 L148.25,11.625" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g id="Ebene_2">
|
||||||
|
<g display="none">
|
||||||
|
<path d="M75.5,3.333 C115.265,3.333 147.5,14.414 147.5,28.083 L147.5,174.083 C147.5,187.752 115.264,198.833 75.5,198.833 C35.736,198.833 3.5,187.752 3.5,174.083 L3.5,28.083 C3.5,14.414 35.736,3.333 75.5,3.333 z" fill="url(#Gradient_3)"/>
|
||||||
|
<path d="M75.5,3.333 C115.265,3.333 147.5,14.414 147.5,28.083 L147.5,174.083 C147.5,187.752 115.264,198.833 75.5,198.833 C35.736,198.833 3.5,187.752 3.5,174.083 L3.5,28.083 C3.5,14.414 35.736,3.333 75.5,3.333 z" fill-opacity="0" stroke="#272727" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g display="none">
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill="#919191"/>
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill-opacity="0" stroke="#000000" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill="url(#Gradient_4)"/>
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill-opacity="0" stroke="#000000" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M219.5,108.5 L223.5,108.5 L223.5,111.5 L219.5,111.5 L219.5,108.5 z" fill="url(#Gradient_5)"/>
|
||||||
|
<path d="M219.5,108.5 L223.5,108.5 L223.5,111.5 L219.5,111.5 L219.5,108.5 z" fill-opacity="0" stroke="#000000" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.9 KiB |
101
config/dashboard/widgets/tank.svg
Normal file
101
config/dashboard/widgets/tank.svg
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="150" height="220" viewBox="0, 0, 150, 220">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="3.5" y1="110.5" x2="147.5" y2="110.5">
|
||||||
|
<stop offset="0" stop-color="#232323"/>
|
||||||
|
<stop offset="0.357" stop-color="#5B5B5B"/>
|
||||||
|
<stop offset="0.571" stop-color="#474747"/>
|
||||||
|
<stop offset="1" stop-color="#282828"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_2" gradientUnits="userSpaceOnUse" x1="-38.5" y1="-219.554" x2="-135" y2="-189.801" gradientTransform="matrix(-1, -0, 0, -1, 0, 0)">
|
||||||
|
<stop offset="0" stop-color="#232323"/>
|
||||||
|
<stop offset="0.357" stop-color="#5B5B5B"/>
|
||||||
|
<stop offset="0.571" stop-color="#474747"/>
|
||||||
|
<stop offset="1" stop-color="#282828"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_3" gradientUnits="userSpaceOnUse" x1="64" y1="211.25" x2="86.5" y2="211.25">
|
||||||
|
<stop offset="0" stop-color="#232323"/>
|
||||||
|
<stop offset="0.357" stop-color="#5B5B5B"/>
|
||||||
|
<stop offset="0.571" stop-color="#474747"/>
|
||||||
|
<stop offset="1" stop-color="#282828"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_4" gradientUnits="userSpaceOnUse" x1="73.868" y1="3.277" x2="77.132" y2="217.723">
|
||||||
|
<stop offset="0" stop-color="#5D5D5D"/>
|
||||||
|
<stop offset="1" stop-color="#000000" stop-opacity="0.959"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_5" gradientUnits="userSpaceOnUse" x1="3.5" y1="101.083" x2="147.5" y2="101.083">
|
||||||
|
<stop offset="0" stop-color="#323232"/>
|
||||||
|
<stop offset="0.357" stop-color="#FFFFFF"/>
|
||||||
|
<stop offset="0.571" stop-color="#919191"/>
|
||||||
|
<stop offset="1" stop-color="#4A4A4A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_6" gradientUnits="userSpaceOnUse" x1="6.25" y1="110" x2="144.75" y2="110">
|
||||||
|
<stop offset="0" stop-color="#232323"/>
|
||||||
|
<stop offset="0.357" stop-color="#5B5B5B"/>
|
||||||
|
<stop offset="0.571" stop-color="#474747"/>
|
||||||
|
<stop offset="1" stop-color="#282828"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="Gradient_7" gradientUnits="userSpaceOnUse" x1="219.5" y1="110" x2="223.5" y2="110">
|
||||||
|
<stop offset="0" stop-color="#232323"/>
|
||||||
|
<stop offset="0.357" stop-color="#5B5B5B"/>
|
||||||
|
<stop offset="0.571" stop-color="#474747"/>
|
||||||
|
<stop offset="1" stop-color="#282828"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Ebene_1">
|
||||||
|
<g>
|
||||||
|
<path d="M135.5,3 C141.774,3.18 146.086,7.113 147.348,13.254 L147.5,13.254 L147.5,156.127 L111.5,185.434 C102.435,192.824 93.37,200.214 84.3,207.598 L84.3,218 L66.7,218 L66.7,207.328 C57.672,199.985 48.594,192.701 39.5,185.434 L3.5,156.127 L3.5,13.254 L3.652,13.254 C4.623,7.127 9.57,3.297 15.5,3 L135.5,3 z" fill="url(#Gradient_1)"/>
|
||||||
|
<path d="M135.5,3 C141.774,3.18 146.086,7.113 147.348,13.254 L147.5,13.254 L147.5,156.127 L111.5,185.434 C102.435,192.824 93.37,200.214 84.3,207.598 L84.3,218 L66.7,218 L66.7,207.328 C57.672,199.985 48.594,192.701 39.5,185.434 L3.5,156.127 L3.5,13.254 L3.652,13.254 C4.623,7.127 9.57,3.297 15.5,3 L135.5,3 z" fill-opacity="0" stroke="#272727" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M147.5,154.579 L111.5,183.877 L75.5,213.175 L39.5,183.877 L3.5,154.579 L75.5,154.579 z" fill="url(#Gradient_2)"/>
|
||||||
|
<path d="M147.5,154.579 L111.5,183.877 L75.5,213.175 L39.5,183.877 L3.5,154.579 L75.5,154.579 z" fill-opacity="0" stroke="#272727" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M64,204.5 L86.5,204.5 L86.5,218 L64,218 L64,204.5 z" fill="url(#Gradient_3)"/>
|
||||||
|
<path d="M64,204.5 L86.5,204.5 L86.5,218 L64,218 L64,204.5 z" fill-opacity="0" stroke="#272727" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Ebene_4"/>
|
||||||
|
<g id="Ebene_3" display="none">
|
||||||
|
<g display="none">
|
||||||
|
<g display="none">
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill="url(#Gradient_4)"/>
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<path d="M75.5,189.637 C41.08,189.637 13.177,182.258 13.177,173.156 C13.177,164.053 41.08,156.674 75.5,156.674 C109.92,156.674 137.823,164.053 137.823,173.156 C137.823,182.258 109.92,189.637 75.5,189.637 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="10"/>
|
||||||
|
<path d="M75.5,189.637 C41.08,189.637 13.177,182.258 13.177,173.156 C13.177,164.053 41.08,156.674 75.5,156.674 C109.92,156.674 137.823,164.053 137.823,173.156 C137.823,182.258 109.92,189.637 75.5,189.637 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="8"/>
|
||||||
|
<path d="M75.5,177.357 C41.08,177.357 13.177,169.978 13.177,160.875 C13.177,151.772 41.08,144.393 75.5,144.393 C109.92,144.393 137.822,151.772 137.822,160.875 C137.822,169.978 109.92,177.357 75.5,177.357 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="10"/>
|
||||||
|
<path d="M75.5,177.357 C41.08,177.357 13.177,169.978 13.177,160.875 C13.177,151.772 41.08,144.393 75.5,144.393 C109.92,144.393 137.823,151.772 137.823,160.875 C137.823,169.978 109.92,177.357 75.5,177.357 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="8"/>
|
||||||
|
<path d="M75.5,165.076 C41.08,165.076 13.177,157.697 13.177,148.594 C13.177,139.492 41.08,132.113 75.5,132.113 C109.92,132.113 137.823,139.492 137.823,148.594 C137.823,157.697 109.92,165.076 75.5,165.076 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="10"/>
|
||||||
|
<path d="M75.5,165.076 C41.08,165.076 13.177,157.697 13.177,148.594 C13.177,139.492 41.08,132.113 75.5,132.113 C109.92,132.113 137.823,139.492 137.823,148.594 C137.823,157.697 109.92,165.076 75.5,165.076 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="8"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M2.25,159.208 C2.25,163.834 34.821,167.583 75,167.583 C115.179,167.583 147.75,163.834 147.75,159.208 L147.75,208.875 C147.75,213.5 115.179,217.25 75,217.25 C34.821,217.25 2.25,213.5 2.25,208.875 L2.25,159.208 z" fill="#3B2CD5"/>
|
||||||
|
<path d="M75,167.333 C34.821,167.333 2.25,163.584 2.25,158.958 C2.25,154.333 34.821,150.583 75,150.583 C115.179,150.583 147.75,154.333 147.75,158.958 C147.75,163.584 115.179,167.333 75,167.333 z" fill="#2193FF"/>
|
||||||
|
</g>
|
||||||
|
<path d="M75.5,20 C35.321,20 2.75,16.25 2.75,11.625 C2.75,7 35.321,3.25 75.5,3.25 C115.679,3.25 148.25,7 148.25,11.625 C148.25,16.25 115.679,20 75.5,20 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
<path d="M75.5,217.75 C35.321,217.75 2.75,214 2.75,209.375 C2.75,204.75 35.321,201 75.5,201 C115.679,201 148.25,204.75 148.25,209.375 C148.25,214 115.679,217.75 75.5,217.75 z" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
<path d="M2.75,208.604 L2.75,12.396" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
<path d="M148.25,209.375 L148.25,11.625" fill-opacity="0" stroke="#CDCDCD" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g id="Ebene_2" display="none">
|
||||||
|
<g display="none">
|
||||||
|
<path d="M75.5,3.333 C115.265,3.333 147.5,14.414 147.5,28.083 L147.5,174.083 C147.5,187.752 115.264,198.833 75.5,198.833 C35.736,198.833 3.5,187.752 3.5,174.083 L3.5,28.083 C3.5,14.414 35.736,3.333 75.5,3.333 z" fill="url(#Gradient_5)"/>
|
||||||
|
<path d="M75.5,3.333 C115.265,3.333 147.5,14.414 147.5,28.083 L147.5,174.083 C147.5,187.752 115.264,198.833 75.5,198.833 C35.736,198.833 3.5,187.752 3.5,174.083 L3.5,28.083 C3.5,14.414 35.736,3.333 75.5,3.333 z" fill-opacity="0" stroke="#272727" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g display="none">
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill="#919191"/>
|
||||||
|
<path d="M2.75,3.25 L148.25,3.25 L148.25,217.75 L2.75,217.75 L2.75,3.25 z" fill-opacity="0" stroke="#000000" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M6.25,5.75 L144.75,5.75 L144.75,214.25 L6.25,214.25 L6.25,5.75 z" fill="url(#Gradient_6)"/>
|
||||||
|
<path d="M6.25,5.75 L144.75,5.75 L144.75,214.25 L6.25,214.25 L6.25,5.75 z" fill-opacity="0" stroke="#1A1A1A" stroke-width="2"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M219.5,108.5 L223.5,108.5 L223.5,111.5 L219.5,111.5 L219.5,108.5 z" fill="url(#Gradient_7)"/>
|
||||||
|
<path d="M219.5,108.5 L223.5,108.5 L223.5,111.5 L219.5,111.5 L219.5,108.5 z" fill-opacity="0" stroke="#000000" stroke-width="1"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.1 KiB |
|
@ -3,6 +3,16 @@
|
||||||
"name": ""
|
"name": ""
|
||||||
},
|
},
|
||||||
"profile": [
|
"profile": [
|
||||||
|
{
|
||||||
|
"id": "6mdUtsrBaWeDvKgUXJiLqu",
|
||||||
|
"name": "Test",
|
||||||
|
"props": {
|
||||||
|
"Param1": 123,
|
||||||
|
"Param2": "HALLO",
|
||||||
|
"Param3": 1
|
||||||
|
},
|
||||||
|
"status": "I",
|
||||||
|
"type": "CustomStep2"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -1,14 +1,16 @@
|
||||||
pandas
|
aiohttp==3.7.3
|
||||||
aiohttp>=3.4.4
|
aiohttp-auth==0.1.1
|
||||||
aiohttp-auth>=0.1.1
|
aiohttp-route-decorator==0.1.4
|
||||||
aiohttp-route-decorator>=0.1.4
|
aiohttp-security==0.4.0
|
||||||
aiohttp-security>=0.4.0
|
aiohttp-session==2.9.0
|
||||||
aiohttp-session>=2.7.0
|
aiohttp-swagger==1.0.15
|
||||||
aiohttp-swagger>=1.0.5
|
aiojobs==0.3.0
|
||||||
aiojobs>=0.2.2
|
aiosqlite==0.16.0
|
||||||
aiosqlite>=0.7.0
|
cryptography==3.3.1
|
||||||
cryptography>=2.3.1
|
requests==2.25.1
|
||||||
voluptuous>=0.11.5
|
voluptuous==0.12.1
|
||||||
pyfiglet>=0.7.6
|
pyfiglet==0.8.post1
|
||||||
|
pandas==1.1.5
|
||||||
shortuuid==1.0.1
|
shortuuid==1.0.1
|
||||||
tabulate==0.8.7
|
tabulate==0.8.7
|
||||||
|
cbpi4-ui==0.0.2
|
5
setup.py
5
setup.py
|
@ -27,9 +27,10 @@ setup(name='cbpi',
|
||||||
"requests==2.25.1",
|
"requests==2.25.1",
|
||||||
"voluptuous==0.12.1",
|
"voluptuous==0.12.1",
|
||||||
"pyfiglet==0.8.post1",
|
"pyfiglet==0.8.post1",
|
||||||
'pandas==1.2.0',
|
'pandas==1.1.5',
|
||||||
'shortuuid==1.0.1',
|
'shortuuid==1.0.1',
|
||||||
'tabulate==0.8.7'
|
'tabulate==0.8.7',
|
||||||
|
'cbpi4-ui==0.0.2',
|
||||||
],
|
],
|
||||||
dependency_links=[
|
dependency_links=[
|
||||||
'https://testpypi.python.org/pypi'
|
'https://testpypi.python.org/pypi'
|
||||||
|
|
Loading…
Reference in a new issue