actor action button added. kettle automatic connnected to ui

This commit is contained in:
manuel83 2019-01-24 21:27:55 +01:00
parent 8379dee5c7
commit 8cfffa17bb
20 changed files with 479 additions and 336 deletions

View file

@ -2,7 +2,26 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="1a245e6a-2e43-4348-8759-dc1b63a4c9c8" name="Default" comment="Lots of changes">
<change beforePath="$PROJECT_DIR$/cbpi/controller/system_controller.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/controller/system_controller.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/cli.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/cli.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/controller/actor_controller.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/controller/actor_controller.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/controller/kettle_controller.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/controller/kettle_controller.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/controller/step_controller.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/controller/step_controller.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/controller/translation_controller.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/controller/translation_controller.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/craftbeerpi.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/craftbeerpi.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/extension/comp/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/extension/comp/__init__.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/extension/dummyactor/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/extension/dummyactor/__init__.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/extension/dummylogic/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/extension/dummylogic/__init__.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/extension/dummysensor/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/extension/dummysensor/__init__.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/http_endpoints/http_actor.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/http_endpoints/http_actor.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/http_endpoints/http_config.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/http_endpoints/http_config.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/http_endpoints/http_curd_endpoints.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/http_endpoints/http_curd_endpoints.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/http_endpoints/http_kettle.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/http_endpoints/http_kettle.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/http_endpoints/http_step.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/http_endpoints/http_step.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cbpi/utils/encoder.py" beforeDir="false" afterPath="$PROJECT_DIR$/cbpi/utils/encoder.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/craftbeerpi.db" beforeDir="false" afterPath="$PROJECT_DIR$/craftbeerpi.db" afterDir="false" />
<change beforePath="$PROJECT_DIR$/docs_src/source/actor.rst" beforeDir="false" afterPath="$PROJECT_DIR$/docs_src/source/actor.rst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/docs_src/source/conf.py" beforeDir="false" afterPath="$PROJECT_DIR$/docs_src/source/conf.py" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
@ -25,7 +44,7 @@
<SUITE FILE_PATH="coverage/craftbeerpi4$pytest_for_tests_test_actor.coverage" NAME="pytest for tests.test_actor Coverage Results" MODIFIED="1546724758047" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/craftbeerpi4$pytest_in_tests.coverage" NAME="pytest in tests Coverage Results" MODIFIED="1546728972103" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/craftbeerpi4$test_app.coverage" NAME="test_app Coverage Results" MODIFIED="1546525009502" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
<SUITE FILE_PATH="coverage/craftbeerpi4$run.coverage" NAME="run Coverage Results" MODIFIED="1548106585863" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/craftbeerpi4$run.coverage" NAME="run Coverage Results" MODIFIED="1548361615044" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/craftbeerpi4$pytest_for_test_kettle_KettleTestCase.coverage" NAME="pytest for test_kettle.KettleTestCase Coverage Results" MODIFIED="1546357864696" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/craftbeerpi4$py_test_in_tests.coverage" NAME="py.test in tests Coverage Results" MODIFIED="1544486432317" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
<SUITE FILE_PATH="coverage/craftbeerpi4$pytest_for_test_config_ConfigTestCase.coverage" NAME="pytest for test_config.ConfigTestCase Coverage Results" MODIFIED="1546212760017" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
@ -65,10 +84,43 @@
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/controller/step_controller.py">
<entry file="file://$PROJECT_DIR$/cbpi/controller/actor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="317">
<caret line="210" column="22" selection-start-line="210" selection-start-column="22" selection-end-line="210" selection-end-column="22" />
<state relative-caret-position="497">
<caret line="123" column="66" selection-start-line="123" selection-start-column="66" selection-end-line="123" selection-end-column="66" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/cbpi/controller/kettle_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="98" column="31" selection-start-line="98" selection-start-column="31" selection-end-line="98" selection-end-column="31" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../craftbeerpi-ui/cbpi-ui/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="426">
<caret line="67" column="43" lean-forward="true" selection-start-line="67" selection-start-column="43" selection-end-line="67" selection-end-column="43" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/extension/dummylogic/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="367">
<caret line="60" selection-start-line="60" selection-end-line="60" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
@ -77,10 +129,42 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/database/model.py">
<entry file="file://$PROJECT_DIR$/cbpi/extension/comp/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="97" column="16" selection-start-line="97" selection-start-column="16" selection-end-line="97" selection-end-column="16" />
<state relative-caret-position="307">
<caret line="43" column="12" selection-start-line="43" selection-start-column="12" selection-end-line="43" selection-end-column="12" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_kettle.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="465">
<caret line="173" column="40" selection-start-line="173" selection-start-column="40" selection-end-line="173" selection-end-column="40" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/docs_src/build/html/install.html">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_actor.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3315">
<caret line="224" column="47" selection-start-line="224" selection-start-column="47" selection-end-line="224" selection-end-column="47" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
@ -88,7 +172,7 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/websocket.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<state relative-caret-position="360">
<caret line="34" column="32" selection-start-line="34" selection-start-column="32" selection-end-line="34" selection-end-column="32" />
<folding>
<element signature="e#0#14#0" expanded="true" />
@ -97,29 +181,11 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/api/step.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="690">
<caret line="49" selection-start-line="49" selection-end-line="49" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/step">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/craftbeerpi.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="55" column="46" selection-start-line="55" selection-start-column="46" selection-end-line="55" selection-end-column="46" />
<state relative-caret-position="180">
<caret line="45" column="35" selection-start-line="45" selection-start-column="35" selection-end-line="45" selection-end-column="35" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
@ -127,51 +193,6 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/cbpi/controller/system_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="494">
<caret line="87" column="54" selection-start-line="87" selection-start-column="54" selection-end-line="87" selection-end-column="54" />
<folding>
<element signature="e#0#15#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/controller/actor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="535">
<caret line="40" column="41" selection-start-line="40" selection-start-column="41" selection-end-line="40" selection-end-column="41" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_actor.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="16" selection-start-line="16" selection-end-line="24" selection-end-column="11" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/config">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
@ -183,14 +204,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>HALLOOOOOOO</find>
<find>It's im</find>
<find>cbpi</find>
<find>init</find>
<find>webso</find>
<find>ActorTable</find>
<find>ActorForm</find>
<find>render_config</find>
<find>###</find>
<find>ui</find>
<find>httpsen</find>
@ -212,7 +225,15 @@
<find>step/brewing/stopped</find>
<find>ADDD</find>
<find>Nit ACTOR</find>
<find>DELE</find>
<find>delete_a</find>
<find>notifi</find>
<find>exte</find>
<find>&quot;Not Found&quot;</find>
<find>toggle</find>
<find>job</find>
<find>print</find>
<find>automatic</find>
</findStrings>
<replaceStrings>
<replace />
@ -236,11 +257,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/cbpi/extension/ui/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/extension/ui/react/src/index.js" />
<option value="$PROJECT_DIR$/cbpi/extension/ui/react/src/recucers/sensor.js" />
<option value="$PROJECT_DIR$/cbpi/extension/ui/react/src/recucers/actor.js" />
<option value="$PROJECT_DIR$/cbpi/extension/ui/react/src/recucers/kettle.js" />
<option value="$PROJECT_DIR$/cbpi/extension/ui/react/src/views/hardware/Hardware.js" />
<option value="$PROJECT_DIR$/cbpi/extension/ui/react/src/views/hardware/SensorTable.js" />
<option value="$PROJECT_DIR$/cbpi/extension/ui/react/src/websocket.js" />
@ -255,38 +271,43 @@
<option value="$PROJECT_DIR$/requirements.txt" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/config/plugin_list.txt" />
<option value="$PROJECT_DIR$/cbpi/controller/translation_controller.py" />
<option value="$PROJECT_DIR$/setup.py" />
<option value="$PROJECT_DIR$/docs_src/source/core.rst" />
<option value="$PROJECT_DIR$/docs_src/source/install.rst" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_translation.py" />
<option value="$PROJECT_DIR$/cbpi/api/actor.py" />
<option value="$PROJECT_DIR$/cbpi/api/sensor.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_actor.py" />
<option value="$PROJECT_DIR$/sample.py" />
<option value="$PROJECT_DIR$/cbpi/api/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/api/decorator.py" />
<option value="$PROJECT_DIR$/cbpi/extension/dummysensor/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/websocket.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_dashboard.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_kettle.py" />
<option value="$PROJECT_DIR$/cbpi/controller/kettle_controller.py" />
<option value="$PROJECT_DIR$/cbpi/eventbus.py" />
<option value="$PROJECT_DIR$/cbpi/controller/plugin_controller.py" />
<option value="$PROJECT_DIR$/cbpi/extension/dummyactor/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/utils/encoder.py" />
<option value="$PROJECT_DIR$/cbpi/cli.py" />
<option value="$PROJECT_DIR$/cbpi/controller/actor_controller.py" />
<option value="$PROJECT_DIR$/config/config.yaml" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_curd_endpoints.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_step.py" />
<option value="$PROJECT_DIR$/cbpi/api/step.py" />
<option value="$PROJECT_DIR$/cbpi/extension/dummystep/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/database/model.py" />
<option value="$PROJECT_DIR$/cbpi/controller/step_controller.py" />
<option value="$APPLICATION_CONFIG_DIR$/consoles/.datagrid/cell" />
<option value="$PROJECT_DIR$/cbpi/craftbeerpi.py" />
<option value="$PROJECT_DIR$/cbpi/controller/system_controller.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_config.py" />
<option value="$APPLICATION_CONFIG_DIR$/consoles/.datagrid/cell" />
<option value="$PROJECT_DIR$/docs_src/source/conf.py" />
<option value="$PROJECT_DIR$/docs_src/source/actor.rst" />
<option value="$PROJECT_DIR$/cbpi/craftbeerpi.py" />
<option value="$PROJECT_DIR$/cbpi/cli.py" />
<option value="$PROJECT_DIR$/cbpi/extension/dummyactor/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_actor.py" />
<option value="$PROJECT_DIR$/cbpi/controller/actor_controller.py" />
<option value="$PROJECT_DIR$/cbpi/controller/step_controller.py" />
<option value="$PROJECT_DIR$/cbpi/extension/dummysensor/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/controller/translation_controller.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_curd_endpoints.py" />
<option value="$PROJECT_DIR$/cbpi/utils/encoder.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_step.py" />
<option value="$PROJECT_DIR$/cbpi/http_endpoints/http_kettle.py" />
<option value="$PROJECT_DIR$/cbpi/extension/comp/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/extension/dummylogic/__init__.py" />
<option value="$PROJECT_DIR$/cbpi/controller/kettle_controller.py" />
</list>
</option>
</component>
@ -313,12 +334,6 @@
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="api" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
@ -330,15 +345,21 @@
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="controller" type="462c0819:PsiDirectoryNode" />
<item name="system_controller.py" type="8704e2dd:PyFileNode" />
<item name="kettle_controller.py" type="8704e2dd:PyFileNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="controller" type="462c0819:PsiDirectoryNode" />
<item name="system_controller.py" type="8704e2dd:PyFileNode" />
<item name="SystemController" type="dd8bbb05:PyElementNode" />
<item name="kettle_controller.py" type="8704e2dd:PyFileNode" />
<item name="KettleController" type="dd8bbb05:PyElementNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="database" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
@ -351,7 +372,39 @@
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="extension" type="462c0819:PsiDirectoryNode" />
<item name="dummystep" type="462c0819:PsiDirectoryNode" />
<item name="comp" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="extension" type="462c0819:PsiDirectoryNode" />
<item name="comp" type="462c0819:PsiDirectoryNode" />
<item name="__init__.py" type="8704e2dd:PyFileNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="extension" type="462c0819:PsiDirectoryNode" />
<item name="comp" type="462c0819:PsiDirectoryNode" />
<item name="__init__.py" type="8704e2dd:PyFileNode" />
<item name="MyComp" type="dd8bbb05:PyElementNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="extension" type="462c0819:PsiDirectoryNode" />
<item name="dummylogic" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="extension" type="462c0819:PsiDirectoryNode" />
<item name="dummylogic" type="462c0819:PsiDirectoryNode" />
<item name="__init__.py" type="8704e2dd:PyFileNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
@ -361,28 +414,42 @@
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="http_endpoints" type="462c0819:PsiDirectoryNode" />
<item name="http_actor.py" type="8704e2dd:PyFileNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="cbpi" type="462c0819:PsiDirectoryNode" />
<item name="http_endpoints" type="462c0819:PsiDirectoryNode" />
<item name="http_actor.py" type="8704e2dd:PyFileNode" />
<item name="ActorHttpEndpoints" type="dd8bbb05:PyElementNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
<item name="&lt; Python 3.7.1 virtualenv at ~/cbp42 &gt;" type="70bed36:NamedLibraryElementNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="config" type="462c0819:PsiDirectoryNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
<item name="&lt; Python 3.7.1 virtualenv at ~/cbp42 &gt;" type="70bed36:NamedLibraryElementNode" />
<item name="craftbeerpi-ui" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="craftbeerpi4" type="462c0819:PsiDirectoryNode" />
<item name="logs" type="462c0819:PsiDirectoryNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
<item name="&lt; Python 3.7.1 virtualenv at ~/cbp42 &gt;" type="70bed36:NamedLibraryElementNode" />
<item name="craftbeerpi-ui" type="462c0819:PsiDirectoryNode" />
<item name="cbpi-ui" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
<item name="&lt; Python 3.7.1 virtualenv at ~/cbp42 &gt;" type="70bed36:NamedLibraryElementNode" />
<item name="craftbeerpi-ui" type="462c0819:PsiDirectoryNode" />
<item name="cbpi-ui" type="462c0819:PsiDirectoryNode" />
<item name="__init__.py" type="8704e2dd:PyFileNode" />
</path>
<path>
<item name="craftbeerpi4" type="b2602c69:ProjectViewProjectNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
<item name="&lt; Python 3.7.1 virtualenv at ~/cbp42 &gt;" type="70bed36:NamedLibraryElementNode" />
<item name="craftbeerpi-ui" type="462c0819:PsiDirectoryNode" />
<item name="cbpi-ui" type="462c0819:PsiDirectoryNode" />
<item name="__init__.py" type="8704e2dd:PyFileNode" />
<item name="UIWebSocket" type="dd8bbb05:PyElementNode" />
</path>
</expand>
<select />
@ -657,7 +724,8 @@
<workItem from="1547882713238" duration="2341000" />
<workItem from="1547893445860" duration="434000" />
<workItem from="1547903206587" duration="1339000" />
<workItem from="1548102683575" duration="3723000" />
<workItem from="1548102683575" duration="10341000" />
<workItem from="1548359334840" duration="2252000" />
</task>
<task id="LOCAL-00001" summary="Lots of changes">
<created>1541288846149</created>
@ -709,7 +777,7 @@
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="219180000" />
<option name="totallyTimeSpent" value="228050000" />
</component>
<component name="TodoView" selected-index="4">
<todo-panel id="selected-file">
@ -721,18 +789,18 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="0" y="23" width="1680" height="962" extended-state="6" />
<frame x="0" y="23" width="1680" height="962" extended-state="0" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.21306472" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.21550672" />
<window_info id="Structure" order="1" weight="0.24908425" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Event Log" order="0" sideWeight="0.2737931" side_tool="true" weight="0.3997555" />
<window_info anchor="bottom" id="Version Control" order="1" weight="0.32762837" />
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.7262069" weight="0.2908046" />
<window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.7262069" visible="true" weight="0.50574714" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.3960396" />
<window_info anchor="bottom" id="Python Console" order="4" weight="0.32885087" />
<window_info anchor="bottom" id="Terminal" order="5" sideWeight="0.49761903" visible="true" weight="0.24022989" />
<window_info anchor="bottom" id="Terminal" order="5" sideWeight="0.49761903" weight="0.24022989" />
<window_info anchor="bottom" id="TODO" order="6" weight="0.3286945" />
<window_info anchor="bottom" id="Message" order="7" />
<window_info anchor="bottom" id="Find" order="8" weight="0.32518336" />
@ -796,61 +864,6 @@
</watches-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/run.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/sample.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="4" selection-start-line="4" selection-end-line="4" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/api/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="307">
<caret line="23" column="18" lean-forward="true" selection-start-line="23" selection-start-column="18" selection-end-line="23" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/api/decorator.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="126" selection-start-column="126" selection-end-column="126" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../craftbeerpi-ui/cbpi-ui/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="18" selection-start-line="18" selection-end-line="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/config_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="22" column="25" selection-start-line="22" selection-start-column="25" selection-end-line="22" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/extension/comp/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="262">
<caret line="35" column="26" selection-start-line="35" selection-start-column="21" selection-end-line="35" selection-end-column="26" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/sensor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-23">
<caret line="55" column="14" selection-start-line="55" selection-start-column="14" selection-end-line="55" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/api/sensor.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="193">
@ -902,16 +915,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_kettle.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="589">
<caret line="324" column="52" selection-start-line="324" selection-start-column="52" selection-end-line="324" selection-end-column="52" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/plugin_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="164">
@ -936,20 +939,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/crud_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="159">
<caret line="86" column="14" selection-start-line="86" selection-start-column="14" selection-end-line="86" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/actor">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/translation_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
@ -960,16 +949,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/kettle_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="307">
<caret line="27" column="8" selection-start-line="27" selection-start-column="8" selection-end-line="27" selection-end-column="8" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/api/extension.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
@ -994,13 +973,6 @@
</state>
</provider>
</entry>
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/translation">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/dashboard">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
@ -1025,16 +997,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/extension/dummyactor/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="525">
<caret line="38" selection-start-line="38" selection-end-line="38" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/config.yaml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
@ -1052,39 +1014,9 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/logs/app.log">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/cli.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="40" selection-start-line="40" selection-end-line="40" />
<folding>
<element signature="e#0#15#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_curd_endpoints.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="435">
<caret line="34" selection-start-line="34" selection-end-line="34" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/splash.png">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_step.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="163">
<caret line="194" column="49" selection-start-line="194" selection-start-column="49" selection-end-line="194" selection-end-column="49" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/extension/dummystep/config.yaml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
@ -1098,16 +1030,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/websocket.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<caret line="34" column="32" selection-start-line="34" selection-start-column="32" selection-end-line="34" selection-end-column="32" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/api/step.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="690">
@ -1129,16 +1051,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/step_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="317">
<caret line="210" column="22" selection-start-line="210" selection-start-column="22" selection-end-line="210" selection-end-column="22" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/step">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
@ -1146,6 +1058,23 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/config_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="22" column="25" selection-start-line="22" selection-start-column="25" selection-end-line="22" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_config.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="32" column="25" selection-start-line="32" selection-start-column="25" selection-end-line="32" selection-end-column="25" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/config">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
@ -1153,30 +1082,17 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/craftbeerpi.py">
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_curd_endpoints.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="55" column="46" selection-start-line="55" selection-start-column="46" selection-end-line="55" selection-end-column="46" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
<state relative-caret-position="347">
<caret line="43" column="14" selection-start-line="43" selection-start-column="14" selection-end-line="43" selection-end-column="52" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/actor_controller.py">
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_step.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="535">
<caret line="40" column="41" selection-start-line="40" selection-start-column="41" selection-end-line="40" selection-end-column="41" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_actor.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="16" selection-start-line="16" selection-end-line="24" selection-end-column="11" />
<state relative-caret-position="385">
<caret line="164" column="86" selection-start-line="164" selection-start-column="86" selection-end-line="164" selection-end-column="86" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
@ -1185,7 +1101,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/system_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="494">
<state relative-caret-position="598">
<caret line="87" column="54" selection-start-line="87" selection-start-column="54" selection-end-line="87" selection-end-column="54" />
<folding>
<element signature="e#0#15#0" expanded="true" />
@ -1193,5 +1109,170 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/logs/app.log">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2453">
<caret line="11082" column="73" selection-start-line="11082" selection-start-column="73" selection-end-line="11082" selection-end-column="73" />
</state>
</provider>
</entry>
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/translation">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="das://5067e7fe-480d-4433-bc40-f2d1c38362a2/schema/main/table/actor">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/extension/dummyactor/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="26" column="23" selection-start-line="26" selection-start-column="23" selection-end-line="26" selection-end-column="23" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/step_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2475">
<caret line="25" column="24" selection-start-line="25" selection-start-column="21" selection-end-line="25" selection-end-column="24" />
<caret line="55" column="28" selection-start-line="55" selection-start-column="25" selection-end-line="55" selection-end-column="28" />
<caret line="55" column="50" selection-start-line="55" selection-start-column="47" selection-end-line="55" selection-end-column="50" />
<caret line="55" column="60" selection-start-line="55" selection-start-column="57" selection-end-line="55" selection-end-column="60" />
<caret line="98" column="18" selection-start-line="98" selection-start-column="15" selection-end-line="98" selection-end-column="18" />
<caret line="170" column="32" selection-start-line="170" selection-start-column="29" selection-end-line="170" selection-end-column="32" />
<caret line="170" column="54" selection-start-line="170" selection-start-column="51" selection-end-line="170" selection-end-column="54" />
<caret line="170" column="64" selection-start-line="170" selection-start-column="61" selection-end-line="170" selection-end-column="64" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs_src/source/conf.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="615">
<caret line="42" column="4" selection-start-line="42" selection-start-column="4" selection-end-line="42" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/cli.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="495">
<caret line="39" column="4" selection-start-line="39" selection-start-column="4" selection-end-line="39" selection-end-column="4" />
<folding>
<element signature="e#0#15#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs_src/source/actor.rst">
<provider selected="true" editor-type-id="restructured-text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/docs_src/build/html/install.html">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_actor.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3315">
<caret line="224" column="47" selection-start-line="224" selection-start-column="47" selection-end-line="224" selection-end-column="47" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/websocket.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="34" column="32" selection-start-line="34" selection-start-column="32" selection-end-line="34" selection-end-column="32" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/craftbeerpi.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="45" column="35" selection-start-line="45" selection-start-column="35" selection-end-line="45" selection-end-column="35" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/actor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="497">
<caret line="123" column="66" selection-start-line="123" selection-start-column="66" selection-end-line="123" selection-end-column="66" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/crud_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="197">
<caret line="17" column="14" selection-start-line="17" selection-start-column="14" selection-end-line="17" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/http_endpoints/http_kettle.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="465">
<caret line="173" column="40" selection-start-line="173" selection-start-column="40" selection-end-line="173" selection-end-column="40" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/extension/comp/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="307">
<caret line="43" column="12" selection-start-line="43" selection-start-column="12" selection-end-line="43" selection-end-column="12" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/extension/dummylogic/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="367">
<caret line="60" selection-start-line="60" selection-end-line="60" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../craftbeerpi-ui/cbpi-ui/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="426">
<caret line="67" column="43" lean-forward="true" selection-start-line="67" selection-start-column="43" selection-end-line="67" selection-end-column="43" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cbpi/controller/kettle_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="98" column="31" selection-start-line="98" selection-start-column="31" selection-end-line="98" selection-end-column="31" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View file

@ -36,7 +36,7 @@ def main():
args = parser.parse_args()
logging.basicConfig(level=logging.INFO, filename='./logs/app.log', filemode='a', format='%(asctime)s - %(levelname)s - %(name)s - %(message)s')
#logging.basicConfig(level=logging.INFO, filename='./logs/app.log', filemode='a', format='%(asctime)s - %(levelname)s - %(name)s - %(message)s')
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(name)s - %(message)s')
if args.action == "setup":

View file

@ -1,3 +1,4 @@
import asyncio
import logging
from asyncio import Future
from cbpi.api import *
@ -76,7 +77,7 @@ class ActorController(CRUDController):
@on_event(topic="actor/+/toggle")
async def toggle(self, actor_id, power=100, **kwargs) -> None:
async def toggle(self, actor_id, power=100, time=None, **kwargs) -> None:
"""
Method to toggle an actor on or off
Supporting Event Topic "actor/+/toggle"
@ -86,18 +87,23 @@ class ActorController(CRUDController):
:return:
"""
self.logger.debug("TOGGLE %s" % actor_id)
actor_id = int(actor_id)
if actor_id in self.cache:
actor = self.cache[actor_id].instance
if actor.state is True:
if actor.state is True:
await self.off(actor_id=actor_id)
else:
await self.on(actor_id=actor_id)
if time is not None:
async def time_toggle(cbpi, actor_id, time):
await asyncio.sleep(time)
await cbpi.bus.fire("actor/%s/off" % actor_id, actor_id = actor_id)
await self.cbpi.job.start_job(time_toggle(self.cbpi, actor_id, time), "actor_%s_time_toggle" % actor_id, "actor_toggle")
@on_event(topic="actor/+/off")

View file

@ -24,6 +24,9 @@ class KettleController(CRUDController):
:return:
'''
await super(KettleController, self).init()
for key, value in self.cache.items():
value.state = False
def get_state(self):
return dict(items=self.cache,types=self.types)
@ -44,14 +47,17 @@ class KettleController(CRUDController):
await self.cbpi.bus.fire(topic="kettle/%s/automatic" % id, id=id)
@on_event(topic="job/done")
@on_event(topic="job/+/done")
async def job_stop(self, key, **kwargs) -> None:
match = re.match("kettle_logic_(\d+)", key)
if match is not None:
kid = match.group(1)
await self.cbpi.bus.fire(topic="kettle/%s/logic/stop" % kid)
kettle = self.cache[int(kid)]
kettle.instance = None
kettle.state = False
@on_event(topic="kettle/+/automatic")
async def handle_automtic_event(self, id, **kwargs):
@ -65,6 +71,7 @@ class KettleController(CRUDController):
'''
id = int(id)
print("K", id)
if id in self.cache:
kettle = self.cache[id]
@ -72,7 +79,10 @@ class KettleController(CRUDController):
if hasattr(kettle, "instance") is False:
kettle.instance = None
self._is_logic_running(id)
if kettle.instance is None:
print("start")
if kettle.logic in self.types:
clazz = self.types.get("CustomKettleLogic")["class"]
cfg = kettle.config.copy()
@ -80,13 +90,20 @@ class KettleController(CRUDController):
kettle.instance = clazz(**cfg)
await self.cbpi.job.start_job(kettle.instance.run(), "Kettle_logic_%s" % kettle.id, "kettle_logic%s" % id)
kettle.state = True
await self.cbpi.bus.fire(topic="kettle/%s/logic/start" % id)
else:
kettle.instance.running = False
kettle.instance = None
kettle.state = False
await self.cbpi.bus.fire(topic="kettle/%s/logic/stop" % id)
def _is_logic_running(self, kettle_id):
scheduler = get_scheduler_from_app(self.cbpi.app)
async def heater_on(self, id):
'''
Convenience Method to switch the heater of a kettle on

View file

@ -84,7 +84,7 @@ class StepController(CRUDController):
:param kwargs:
:return: None
'''
print("REQUEST NEXT")
self.starttime = time.time()
if self.current_step is not None and self.is_next is False:
self.logger.info("Request Next Step to start. Stopping current step")

View file

@ -12,7 +12,7 @@ class TranslationController(object):
async def init(self):
self._cache = await TranslationModel.get_all()
print(self._cache)
def get_all(self):

View file

@ -44,7 +44,6 @@ async def error_middleware(request, handler):
return response
message = response.message
except web.HTTPException as ex:
print(ex)
if ex.status != 404:
raise
message = ex.reason

View file

@ -41,8 +41,8 @@ class MyComp(CBPiExtension, CRUDController, HttpCrudEndpoints):
@on_event(topic="kettle/+/automatic")
async def listen2(self, **kwargs):
await self.cbpi.bus.fire(topic="actor/%s/toggle" % 1, id=1)
pass
#await self.cbpi.bus.fire(topic="actor/%s/toggle" % 1, id=1)
def setup(cbpi):

View file

@ -22,6 +22,12 @@ except Exception:
class CustomActor(CBPiActor):
# Custom property which can be configured by the user
@action("test", parameters={})
def action1(self):
print("EOOOHOOO")
pass
def init(self):
self.state = False

View file

@ -42,7 +42,7 @@ class CustomLogic(CBPiKettleLogic):
async def run(self):
'''
async def my_callback(value, **kwargs):
if value == 5:
@ -51,21 +51,21 @@ class CustomLogic(CBPiKettleLogic):
else:
pass
result = await self.wait_for_event("sensor/1", callback=my_callback)
result = await self.wait_for_event("sensor/1/data", callback=my_callback)
'''
while self.running:
while self.running:
print("RUN", self.test)
value = await self.cbpi.sensor.get_value(1)
print(value)
if value >= 10:
break
await asyncio.sleep(1)
'''
def setup(cbpi):

View file

@ -125,7 +125,7 @@ class HTTPSensorEndpoint(CBPiExtension):
key = request.match_info['key']
value = request.match_info['value']
cache[key] = value
print(cache)
return web.Response(status=204)

View file

@ -220,8 +220,11 @@ class ActorHttpEndpoints(HttpCrudEndpoints):
description: invalid HTTP Met
"""
actor_id = int(request.match_info['id'])
await self.cbpi.bus.fire(topic="actor/%s/toggle" % actor_id, actor_id=actor_id)
if await request.text():
data = await request.json()
await self.cbpi.bus.fire(topic="actor/%s/toggle" % actor_id, time=data.get("time"), actor_id=actor_id)
else:
await self.cbpi.bus.fire(topic="actor/%s/toggle" % actor_id, actor_id=actor_id)
return web.Response(status=204)
@request_mapping(path="/{id:\d+}/action", method="POST", auth_required=auth)

View file

@ -12,8 +12,9 @@ class ConfigHttpEndpoints(HttpCrudEndpoints):
self.controller = cbpi.config
self.cbpi.register(self, "/config")
@request_mapping(path="/{name}/", method="POST", auth_required=False)
@request_mapping(path="/{name}/", method="PUT", auth_required=False)
async def http_post(self, request) -> web.Response:
"""
---
description: Set config parameter
@ -29,6 +30,7 @@ class ConfigHttpEndpoints(HttpCrudEndpoints):
"204":
description: successful operation
"""
print("HALLO PARA")
name = request.match_info['name']
data = await request.json()
await self.controller.set(name=name, value=data.get("value"))

View file

@ -42,7 +42,7 @@ class HttpCrudEndpoints():
id = int(request.match_info['id'])
data = await request.json()
obj = await self.controller.update(id, data)
print("PRINT",await self.controller.get_one(id))
return web.json_response(await self.controller.get_one(id), dumps=json_dumps)
@request_mapping(path="/{id}", method="DELETE", auth_required=False)

View file

@ -153,7 +153,7 @@ class KettleHttpEndpoints(HttpCrudEndpoints):
self.controller = cbpi.kettle
self.cbpi.register(self, "/kettle")
@request_mapping(path="/{id:\d+}/automatic", auth_required=False)
@request_mapping(path="/{id:\d+}/automatic", method="POST", auth_required=False)
async def http_automatic(self, request):
"""
---

View file

@ -151,6 +151,21 @@ class StepHttpEndpoints(HttpCrudEndpoints):
"""
return await super().http_delete_one(request)
@request_mapping(path="/", method="DELETE", auth_required=False)
async def http_delete_all(self, request):
"""
---
description: Delete all step
tags:
- Step
responses:
"204":
description: successful operation
"""
self.cbpi.notify(key="step_delete_all", message="NOT IMPLEMENTE", type="danger")
return web.Response(status=204)
@request_mapping(path="/action", auth_required=False)
async def http_action(self, request):
"""
@ -228,6 +243,5 @@ class StepHttpEndpoints(HttpCrudEndpoints):
@request_mapping(path="/sort", method="POST", auth_required=False)
async def http_sort(self, request):
data = await request.json()
print(data)
await self.cbpi.step.sort(data)
return web.Response(status=204)

View file

@ -12,8 +12,8 @@ class ComplexEncoder(JSONEncoder):
try:
if isinstance(obj, ActorModel):
print(obj.instance)
print("DATA", obj.__dict__)
data = dict(**obj.__dict__)
data["state"] = obj.instance.get_state()
del data["instance"]
@ -35,6 +35,6 @@ class ComplexEncoder(JSONEncoder):
else:
raise TypeError()
except Exception as e:
print(e)
pass
return None

Binary file not shown.

View file

@ -43,3 +43,17 @@ config.yaml
.. literalinclude:: ../../cbpi/extension/dummyactor/config.yaml
:language: yaml
:linenos:
.. mermaid::
sequenceDiagram
participant Alice
participant Bob
Alice->John: Hello John, how are you?
loop Healthcheck
John->John: Fight against hypochondria
end
Note right of John: Rational thoughts <br/>prevail...
John-->Alice: Great!
John->Bob: How about you?
Bob-->John: Jolly good!

View file

@ -40,6 +40,7 @@ release = '4.0'
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinxcontrib.mermaid'
]
# Add any paths that contain templates here, relative to this directory.