test of dummy component with custom data model. Action handler for step controller

This commit is contained in:
manuel83 2018-12-06 23:46:06 +01:00
parent 77871010a1
commit de6923d572
10 changed files with 367 additions and 504 deletions

View file

@ -10,304 +10,317 @@
<table id="4" parent="2" name="config"/>
<table id="5" parent="2" name="dashboard"/>
<table id="6" parent="2" name="dashboard_content"/>
<table id="7" parent="2" name="kettle"/>
<table id="8" parent="2" name="sensor"/>
<table id="9" parent="2" name="sqlite_master"/>
<table id="10" parent="2" name="step"/>
<table id="11" parent="2" name="tank"/>
<table id="12" parent="2" name="translation"/>
<column id="13" parent="3" name="id">
<table id="7" parent="2" name="dummy"/>
<table id="8" parent="2" name="kettle"/>
<table id="9" parent="2" name="sensor"/>
<table id="10" parent="2" name="sqlite_master"/>
<table id="11" parent="2" name="step"/>
<table id="12" parent="2" name="tank"/>
<table id="13" parent="2" name="translation"/>
<column id="14" parent="3" name="id">
<DataType>INTEGER|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="14" parent="3" name="name">
<column id="15" parent="3" name="name">
<Position>1</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="15" parent="3" name="type">
<column id="16" parent="3" name="type">
<Position>2</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="16" parent="3" name="config">
<column id="17" parent="3" name="config">
<Position>3</Position>
<DataType>VARCHAR(3000)|0</DataType>
</column>
<key id="17" parent="3">
<key id="18" parent="3">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="18" parent="4" name="name">
<column id="19" parent="4" name="name">
<DataType>VARCHAR(50)|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="19" parent="4" name="value">
<column id="20" parent="4" name="value">
<Position>1</Position>
<DataType>VARCHAR(255)|0</DataType>
</column>
<column id="20" parent="4" name="type">
<column id="21" parent="4" name="type">
<Position>2</Position>
<DataType>VARCHAR(50)|0</DataType>
</column>
<column id="21" parent="4" name="description">
<column id="22" parent="4" name="description">
<Position>3</Position>
<DataType>VARCHAR(255)|0</DataType>
</column>
<column id="22" parent="4" name="options">
<column id="23" parent="4" name="options">
<Position>4</Position>
<DataType>VARCHAR(255)|0</DataType>
</column>
<index id="23" parent="4" name="sqlite_autoindex_config_1">
<index id="24" parent="4" name="sqlite_autoindex_config_1">
<ColNames>name</ColNames>
<Unique>1</Unique>
</index>
<key id="24" parent="4">
<key id="25" parent="4">
<ColNames>name</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_config_1</UnderlyingIndexName>
</key>
<column id="25" parent="5" name="id">
<column id="26" parent="5" name="id">
<DataType>INTEGER|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="26" parent="5" name="name">
<column id="27" parent="5" name="name">
<Position>1</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<key id="27" parent="5">
<key id="28" parent="5">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="28" parent="6" name="id">
<column id="29" parent="6" name="id">
<DataType>INTEGER|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="29" parent="6" name="dbid">
<column id="30" parent="6" name="dbid">
<Position>1</Position>
<DataType>INTEGER(80)|0</DataType>
</column>
<column id="30" parent="6" name="element_id">
<column id="31" parent="6" name="element_id">
<Position>2</Position>
<DataType>INTEGER|0</DataType>
</column>
<column id="31" parent="6" name="type">
<column id="32" parent="6" name="type">
<Position>3</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="32" parent="6" name="x">
<column id="33" parent="6" name="x">
<Position>4</Position>
<DataType>INTEGER(5)|0</DataType>
</column>
<column id="33" parent="6" name="y">
<column id="34" parent="6" name="y">
<Position>5</Position>
<DataType>INTEGER(5)|0</DataType>
</column>
<column id="34" parent="6" name="config">
<column id="35" parent="6" name="config">
<Position>6</Position>
<DataType>VARCHAR(3000)|0</DataType>
</column>
<key id="35" parent="6">
<key id="36" parent="6">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="36" parent="7" name="id">
<column id="37" parent="7" name="id">
<DataType>INTEGER|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="37" parent="7" name="name">
<column id="38" parent="7" name="name">
<Position>1</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="38" parent="7" name="sensor">
<key id="39" parent="7">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="40" parent="8" name="id">
<DataType>INTEGER|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="41" parent="8" name="name">
<Position>1</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="42" parent="8" name="sensor">
<Position>2</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="39" parent="7" name="heater">
<column id="43" parent="8" name="heater">
<Position>3</Position>
<DataType>VARCHAR(10)|0</DataType>
</column>
<column id="40" parent="7" name="automatic">
<column id="44" parent="8" name="automatic">
<Position>4</Position>
<DataType>VARCHAR(255)|0</DataType>
</column>
<column id="41" parent="7" name="logic">
<column id="45" parent="8" name="logic">
<Position>5</Position>
<DataType>VARCHAR(50)|0</DataType>
</column>
<column id="42" parent="7" name="config">
<column id="46" parent="8" name="config">
<Position>6</Position>
<DataType>VARCHAR(1000)|0</DataType>
</column>
<column id="43" parent="7" name="agitator">
<column id="47" parent="8" name="agitator">
<Position>7</Position>
<DataType>VARCHAR(10)|0</DataType>
</column>
<column id="44" parent="7" name="target_temp">
<column id="48" parent="8" name="target_temp">
<Position>8</Position>
<DataType>INTEGER|0</DataType>
</column>
<column id="45" parent="7" name="height">
<column id="49" parent="8" name="height">
<Position>9</Position>
<DataType>INTEGER|0</DataType>
</column>
<column id="46" parent="7" name="diameter">
<column id="50" parent="8" name="diameter">
<Position>10</Position>
<DataType>INTEGER|0</DataType>
</column>
<key id="47" parent="7">
<key id="51" parent="8">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="48" parent="8" name="id">
<column id="52" parent="9" name="id">
<DataType>INTEGER|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="49" parent="8" name="name">
<column id="53" parent="9" name="name">
<Position>1</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="50" parent="8" name="type">
<column id="54" parent="9" name="type">
<Position>2</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="51" parent="8" name="config">
<column id="55" parent="9" name="config">
<Position>3</Position>
<DataType>VARCHAR(3000)|0</DataType>
</column>
<key id="52" parent="8">
<key id="56" parent="9">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="53" parent="9" name="type">
<column id="57" parent="10" name="type">
<DataType>text|0</DataType>
</column>
<column id="54" parent="9" name="name">
<column id="58" parent="10" name="name">
<Position>1</Position>
<DataType>text|0</DataType>
</column>
<column id="55" parent="9" name="tbl_name">
<column id="59" parent="10" name="tbl_name">
<Position>2</Position>
<DataType>text|0</DataType>
</column>
<column id="56" parent="9" name="rootpage">
<column id="60" parent="10" name="rootpage">
<Position>3</Position>
<DataType>integer|0</DataType>
</column>
<column id="57" parent="9" name="sql">
<column id="61" parent="10" name="sql">
<Position>4</Position>
<DataType>text|0</DataType>
</column>
<column id="58" parent="10" name="id">
<column id="62" parent="11" name="id">
<DataType>INTEGER|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="59" parent="10" name="order">
<column id="63" parent="11" name="order">
<Position>1</Position>
<DataType>INTEGER|0</DataType>
</column>
<column id="60" parent="10" name="name">
<column id="64" parent="11" name="name">
<Position>2</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="61" parent="10" name="type">
<column id="65" parent="11" name="type">
<Position>3</Position>
<DataType>VARCHAR(100)|0</DataType>
</column>
<column id="62" parent="10" name="stepstate">
<column id="66" parent="11" name="stepstate">
<Position>4</Position>
<DataType>VARCHAR(255)|0</DataType>
</column>
<column id="63" parent="10" name="state">
<column id="67" parent="11" name="state">
<Position>5</Position>
<DataType>VARCHAR(1)|0</DataType>
</column>
<column id="64" parent="10" name="start">
<column id="68" parent="11" name="start">
<Position>6</Position>
<DataType>INTEGER|0</DataType>
</column>
<column id="65" parent="10" name="end">
<column id="69" parent="11" name="end">
<Position>7</Position>
<DataType>INTEGER|0</DataType>
</column>
<column id="66" parent="10" name="config">
<column id="70" parent="11" name="config">
<Position>8</Position>
<DataType>VARCHAR(255)|0</DataType>
</column>
<column id="67" parent="10" name="kettleid">
<column id="71" parent="11" name="kettleid">
<Position>9</Position>
<DataType>INTEGER|0</DataType>
</column>
<key id="68" parent="10">
<key id="72" parent="11">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="69" parent="11" name="id">
<column id="73" parent="12" name="id">
<DataType>INTEGER|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="70" parent="11" name="name">
<column id="74" parent="12" name="name">
<Position>1</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="71" parent="11" name="brewname">
<column id="75" parent="12" name="brewname">
<Position>2</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="72" parent="11" name="sensor">
<column id="76" parent="12" name="sensor">
<Position>3</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="73" parent="11" name="sensor2">
<column id="77" parent="12" name="sensor2">
<Position>4</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="74" parent="11" name="sensor3">
<column id="78" parent="12" name="sensor3">
<Position>5</Position>
<DataType>VARCHAR(80)|0</DataType>
</column>
<column id="75" parent="11" name="heater">
<column id="79" parent="12" name="heater">
<Position>6</Position>
<DataType>VARCHAR(10)|0</DataType>
</column>
<column id="76" parent="11" name="logic">
<column id="80" parent="12" name="logic">
<Position>7</Position>
<DataType>VARCHAR(50)|0</DataType>
</column>
<column id="77" parent="11" name="config">
<column id="81" parent="12" name="config">
<Position>8</Position>
<DataType>VARCHAR(1000)|0</DataType>
</column>
<column id="78" parent="11" name="cooler">
<column id="82" parent="12" name="cooler">
<Position>9</Position>
<DataType>VARCHAR(10)|0</DataType>
</column>
<column id="79" parent="11" name="target_temp">
<column id="83" parent="12" name="target_temp">
<Position>10</Position>
<DataType>INTEGER|0</DataType>
</column>
<key id="80" parent="11">
<key id="84" parent="12">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="81" parent="12" name="language_code">
<column id="85" parent="13" name="language_code">
<DataType>VARCHAR(3)|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="82" parent="12" name="key">
<column id="86" parent="13" name="key">
<Position>1</Position>
<DataType>VARCHAR(80)|0</DataType>
<NotNull>1</NotNull>
</column>
<column id="83" parent="12" name="text">
<column id="87" parent="13" name="text">
<Position>2</Position>
<DataType>VARCHAR(100)|0</DataType>
<NotNull>1</NotNull>
</column>
<index id="84" parent="12" name="sqlite_autoindex_translation_1">
<index id="88" parent="13" name="sqlite_autoindex_translation_1">
<ColNames>language_code
key</ColNames>
<Unique>1</Unique>
</index>
<key id="85" parent="12">
<key id="89" parent="13">
<ColNames>language_code
key</ColNames>
<Primary>1</Primary>

View file

@ -2,12 +2,16 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="1a245e6a-2e43-4348-8759-dc1b63a4c9c8" name="Default" comment="Lots of changes">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/craftbeerpi.db" afterPath="$PROJECT_DIR$/craftbeerpi.db" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/dataSources/5067e7fe-480d-4433-bc40-f2d1c38362a2.xml" afterPath="$PROJECT_DIR$/.idea/dataSources/5067e7fe-480d-4433-bc40-f2d1c38362a2.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/api/step.py" afterPath="$PROJECT_DIR$/core/api/step.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/controller/plugin_controller.py" afterPath="$PROJECT_DIR$/core/controller/plugin_controller.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/controller/step_controller.py" afterPath="$PROJECT_DIR$/core/controller/step_controller.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/craftbeerpi.py" afterPath="$PROJECT_DIR$/core/craftbeerpi.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/eventbus.py" afterPath="$PROJECT_DIR$/core/eventbus.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/extension/comp/__init__.py" afterPath="$PROJECT_DIR$/core/extension/comp/__init__.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/extension/dummystep/__init__.py" afterPath="$PROJECT_DIR$/core/extension/dummystep/__init__.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/sql/create_table_user.sql" afterPath="$PROJECT_DIR$/core/sql/create_table_user.sql" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
@ -19,7 +23,7 @@
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/craftbeerpi4$py_test_in_tests.coverage" NAME="py.test in tests Coverage Results" MODIFIED="1542544313367" 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$test_app.coverage" NAME="test_app Coverage Results" MODIFIED="1542463852422" 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="1543963882724" 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="1544135695382" 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_kettle.coverage" NAME="test kettle Coverage Results" MODIFIED="1543666720847" 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$main2.coverage" NAME="main2 Coverage Results" MODIFIED="1543663949310" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
</component>
@ -55,24 +59,6 @@
<option name="myItemType" value="com.intellij.database.view.DbNodeDescriptor" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" />
<option name="myItemType" value="com.intellij.database.view.DatabaseStructure$Root" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi.db" />
<option name="myItemType" value="com.intellij.database.view.DbNodeDescriptor" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.database.view.DbNodeDescriptor" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="actor" />
<option name="myItemType" value="com.intellij.database.view.DbNodeDescriptor" />
</PATH_ELEMENT>
</PATH>
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FavoritesManager">
@ -80,11 +66,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="craftbeerpi.py" pinned="false" current-in-tab="false">
<file leaf-file-name="craftbeerpi.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/core/craftbeerpi.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="28" column="0" lean-forward="false" selection-start-line="28" selection-start-column="0" selection-end-line="29" selection-end-column="39" />
<state relative-caret-position="-2299">
<caret line="64" column="24" lean-forward="false" selection-start-line="64" selection-start-column="24" selection-end-line="64" selection-end-column="24" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
@ -95,8 +81,8 @@
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/extension/dummystep/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="196">
<caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<state relative-caret-position="391">
<caret line="31" column="21" lean-forward="false" selection-start-line="31" selection-start-column="21" selection-end-line="31" selection-end-column="21" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
@ -104,23 +90,11 @@
</provider>
</entry>
</file>
<file leaf-file-name="step.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/core/api/step.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
<caret line="33" column="20" lean-forward="false" selection-start-line="33" selection-start-column="20" selection-end-line="33" selection-end-column="20" />
<folding>
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="actor_controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/controller/actor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="840">
<caret line="56" column="8" lean-forward="true" selection-start-line="56" selection-start-column="8" selection-end-line="56" selection-end-column="42" />
<state relative-caret-position="150">
<caret line="10" column="20" lean-forward="false" selection-start-line="10" selection-start-column="20" selection-end-line="10" selection-end-column="20" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
@ -128,69 +102,86 @@
</provider>
</entry>
</file>
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/extension/dummyactor/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="219">
<caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="http_api.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/http_endpoints/http_api.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-277">
<caret line="8" column="6" lean-forward="false" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
<state relative-caret-position="45">
<caret line="8" column="13" lean-forward="false" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="eventbus.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/eventbus.py">
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/extension/comp/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="269">
<caret line="61" column="8" lean-forward="false" selection-start-line="61" selection-start-column="8" selection-end-line="61" selection-end-column="49" />
<state relative-caret-position="237">
<caret line="27" column="0" lean-forward="false" selection-start-line="27" selection-start-column="0" selection-end-line="27" selection-end-column="0" />
<folding>
<element signature="e#0#14#0" expanded="true" />
<marker date="1543875480881" expanded="true" signature="2254:3500" ph="..." />
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="sensor_controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/controller/sensor_controller.py">
<file leaf-file-name="crud_controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/controller/crud_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<state relative-caret-position="0">
<caret line="0" column="6" lean-forward="false" selection-start-line="0" selection-start-column="6" selection-end-line="0" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="kettle_controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/controller/kettle_controller.py">
<file leaf-file-name="main.dummy" pinned="false" current-in-tab="false">
<entry file="dbDummy://dbtable:/a57e2371/5067e7fe-480d-4433-bc40-f2d1c38362a2/main.dummy">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
<provider editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="orm_framework.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/database/orm_framework.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="71" column="21" lean-forward="false" selection-start-line="71" selection-start-column="21" selection-end-line="71" selection-end-column="21" />
<state relative-caret-position="90">
<caret line="9" column="6" lean-forward="false" selection-start-line="9" selection-start-column="6" selection-end-line="9" selection-end-column="6" />
<folding>
<element signature="e#0#9#0" expanded="true" />
<marker date="1541452615405" expanded="true" signature="1476:1509" ph="SELECT * FRO... missing_value" />
<marker date="1541452615405" expanded="true" signature="1613:1627" ph="SELECT * FRO... missing_value" />
<marker date="1541452615405" expanded="true" signature="2266:2295" ph="SELECT * FRO... missing_value" />
<marker date="1541452615405" expanded="true" signature="2664:2691" ph="DELETE FROM " />
<marker date="1541452615405" expanded="true" signature="2992:3030" ph="INSERT INTO missing_value... " />
<marker date="1541452615405" expanded="true" signature="3622:3653" ph="INSERT INTO missing_value... " />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="step_controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/controller/step_controller.py">
<file leaf-file-name="model.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/database/model.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="90" column="76" lean-forward="false" selection-start-line="90" selection-start-column="76" selection-end-line="90" selection-end-column="76" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
<state relative-caret-position="300">
<caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="23" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="plugin_controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/controller/plugin_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1204">
<caret line="40" column="14" lean-forward="false" selection-start-line="40" selection-start-column="14" selection-end-line="40" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
@ -206,8 +197,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>0x10d622b38</find>
<find>0x10bde4548</find>
<find>0x10d622b380x10d622b38</find>
<find>__init__</find>
<find>0x1048b31d0</find>
@ -235,6 +224,8 @@
<find>l</find>
<find>logger</find>
<find>logging</find>
<find>dummy</find>
<find>/dumy</find>
<find>StepBase</find>
</findStrings>
<replaceStrings>
@ -254,8 +245,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/docs_src/source/sensor.rst" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/docs_src/copy_docs.sh" />
<option value="$PROJECT_DIR$/docs_src/source/core.rst" />
@ -275,7 +264,6 @@
<option value="$PROJECT_DIR$/core/utils/utils.py" />
<option value="$PROJECT_DIR$/core/utils/encoder.py" />
<option value="$PROJECT_DIR$/core/api/extension.py" />
<option value="$PROJECT_DIR$/core/extension/comp/__init__.py" />
<option value="$PROJECT_DIR$/core/extension/dummyactor/__init__.py" />
<option value="$PROJECT_DIR$/docs_src/source/conf.py" />
<option value="$PROJECT_DIR$/core/controller/crud_controller.py" />
@ -298,13 +286,16 @@
<option value="$PROJECT_DIR$/core/controller/actor_controller.py" />
<option value="$PROJECT_DIR$/core/websocket.py" />
<option value="$PROJECT_DIR$/core/extension/dummysensor/__init__.py" />
<option value="$PROJECT_DIR$/core/craftbeerpi.py" />
<option value="$PROJECT_DIR$/core/eventbus.py" />
<option value="$PROJECT_DIR$/core/controller/plugin_controller.py" />
<option value="$PROJECT_DIR$/core/controller/step_controller.py" />
<option value="$PROJECT_DIR$/core/controller/sensor_controller.py" />
<option value="$PROJECT_DIR$/core/extension/dummystep/__init__.py" />
<option value="$PROJECT_DIR$/core/controller/step_controller.py" />
<option value="$PROJECT_DIR$/core/api/step.py" />
<option value="$PROJECT_DIR$/core/extension/dummystep/__init__.py" />
<option value="$PROJECT_DIR$/core/controller/dummy_controller.py" />
<option value="$PROJECT_DIR$/core/sql/create_table_user.sql" />
<option value="$PROJECT_DIR$/core/controller/plugin_controller.py" />
<option value="$PROJECT_DIR$/core/craftbeerpi.py" />
<option value="$PROJECT_DIR$/core/extension/comp/__init__.py" />
</list>
</option>
</component>
@ -361,28 +352,6 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="eventbus.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="EventBus" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
@ -533,111 +502,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dummystep" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="__init__.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="CustomStep" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="extension" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dummyactor" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="extension" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dummyactor" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="__init__.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="extension" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dummyactor" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="__init__.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="CustomActor" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="controller" />
<option name="myItemId" value="comp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -658,40 +523,6 @@
<option name="myItemId" value="controller" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="step_controller.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="StepController" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="controller" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="sensor_controller.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="SensorController" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@ -714,30 +545,8 @@
<option name="myItemId" value="plugin_controller.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="controller" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="kettle_controller.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="KettleHttp" />
<option name="myItemId" value="PluginController" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
@ -759,9 +568,13 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="kettle_controller.py" />
<option name="myItemId" value="crud_controller.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="CRUDController" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@ -784,6 +597,10 @@
<option name="myItemId" value="actor_controller.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ActorHttp" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@ -821,37 +638,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="api" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="step.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Step" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi4" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="api" />
<option name="myItemId" value="config" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -923,11 +710,11 @@
<recent name="$PROJECT_DIR$/core/controller" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/core/controller" />
<recent name="$PROJECT_DIR$/core/extension/dummystep" />
<recent name="$PROJECT_DIR$/docs_src/source" />
<recent name="$PROJECT_DIR$/tests" />
<recent name="$PROJECT_DIR$/core/extension/dummylogic" />
<recent name="$PROJECT_DIR$/core/controller" />
</key>
</component>
<component name="RunDashboard">
@ -1342,10 +1129,11 @@
</component>
<component name="ToolWindowManager">
<frame x="12" y="57" width="1398" height="923" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3286945" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.43208432" sideWeight="0.2720238" order="0" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32786885" sideWeight="0.7279762" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3290398" sideWeight="0.7279762" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3286945" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290398" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.31615925" sideWeight="0.49761903" order="3" side_tool="false" content_ui="tabs" />
@ -1406,60 +1194,6 @@
</watches-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/core/api/property.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="25" column="12" lean-forward="false" selection-start-line="25" selection-start-column="12" selection-end-line="25" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/api/kettle_logic.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/notification_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file:///usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/locks.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="21">
<caret line="212" column="8" lean-forward="false" selection-start-line="212" selection-start-column="8" selection-end-line="212" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/logger.conf.2018-11-18_20-49">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/api/actor.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="8" column="15" lean-forward="false" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/api/decorator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="87">
<caret line="46" column="21" lean-forward="false" selection-start-line="46" selection-start-column="21" selection-end-line="46" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file:///usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/selectors.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="232">
@ -1678,14 +1412,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/crud_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="6" lean-forward="false" selection-start-line="0" selection-start-column="6" selection-end-line="0" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/cbp42/lib/python3.7/site-packages/aiohttp/web_app.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="130">
@ -1743,14 +1469,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/plugin_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="321">
<caret line="105" column="41" lean-forward="false" selection-start-line="105" selection-start-column="41" selection-end-line="105" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/extension/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
@ -1759,16 +1477,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/step_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="90" column="76" lean-forward="false" selection-start-line="90" selection-start-column="76" selection-end-line="90" selection-end-column="76" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/kettle_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
@ -1779,26 +1487,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/craftbeerpi.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="28" column="0" lean-forward="false" selection-start-line="28" selection-start-column="0" selection-end-line="29" selection-end-column="39" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/actor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="840">
<caret line="56" column="8" lean-forward="true" selection-start-line="56" selection-start-column="8" selection-end-line="56" selection-end-column="42" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/sensor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
@ -1815,14 +1503,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/http_endpoints/http_api.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-277">
<caret line="8" column="6" lean-forward="false" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/eventbus.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="269">
@ -1834,10 +1514,18 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/extension/dummystep/__init__.py">
<entry file="file://$PROJECT_DIR$/core/api/decorator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="196">
<caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<state relative-caret-position="174">
<caret line="51" column="10" lean-forward="false" selection-start-line="51" selection-start-column="4" selection-end-line="51" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/step_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-148">
<caret line="42" column="53" lean-forward="false" selection-start-line="42" selection-start-column="53" selection-end-line="42" selection-end-column="53" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
@ -1846,13 +1534,129 @@
</entry>
<entry file="file://$PROJECT_DIR$/core/api/step.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
<caret line="33" column="20" lean-forward="false" selection-start-line="33" selection-start-column="20" selection-end-line="33" selection-end-column="20" />
<state relative-caret-position="-174">
<caret line="11" column="4" lean-forward="false" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="19" />
<folding>
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/dummy_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="45">
<caret line="12" column="11" lean-forward="false" selection-start-line="12" selection-start-column="11" selection-end-line="12" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/sql/create_table_user.sql">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="399">
<caret line="108" column="20" lean-forward="false" selection-start-line="108" selection-start-column="20" selection-end-line="108" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/database/model.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="23" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/database/orm_framework.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="6" lean-forward="false" selection-start-line="9" selection-start-column="6" selection-end-line="9" selection-end-column="6" />
<folding>
<marker date="1541452615405" expanded="true" signature="1476:1509" ph="SELECT * FRO... missing_value" />
<marker date="1541452615405" expanded="true" signature="1613:1627" ph="SELECT * FRO... missing_value" />
<marker date="1541452615405" expanded="true" signature="2266:2295" ph="SELECT * FRO... missing_value" />
<marker date="1541452615405" expanded="true" signature="2664:2691" ph="DELETE FROM " />
<marker date="1541452615405" expanded="true" signature="2992:3030" ph="INSERT INTO missing_value... " />
<marker date="1541452615405" expanded="true" signature="3622:3653" ph="INSERT INTO missing_value... " />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/plugin_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1204">
<caret line="40" column="14" lean-forward="false" selection-start-line="40" selection-start-column="14" selection-end-line="40" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/extension/dummystep/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391">
<caret line="31" column="21" lean-forward="false" selection-start-line="31" selection-start-column="21" selection-end-line="31" selection-end-column="21" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="dbDummy://dbtable:/a57e2371/5067e7fe-480d-4433-bc40-f2d1c38362a2/main.dummy">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
<provider editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/crud_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="6" lean-forward="false" selection-start-line="0" selection-start-column="6" selection-end-line="0" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/actor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="10" column="20" lean-forward="false" selection-start-line="10" selection-start-column="20" selection-end-line="10" selection-end-column="20" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/http_endpoints/http_api.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="45">
<caret line="8" column="13" lean-forward="false" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/extension/comp/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<caret line="27" column="0" lean-forward="false" selection-start-line="27" selection-start-column="0" selection-end-line="27" selection-end-column="0" />
<folding>
<element signature="e#0#23#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/craftbeerpi.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2299">
<caret line="64" column="24" lean-forward="false" selection-start-line="64" selection-start-column="24" selection-end-line="64" selection-end-column="24" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View file

@ -27,7 +27,7 @@ class Step(object):
async def _run(self):
i = 0
while i < 5:
while i < 20:
try:
await self.run()
except Exception as e:

View file

@ -105,8 +105,9 @@ class PluginController():
if issubclass(clazz, Step):
self.cbpi.step.types[name] = self._parse_props(clazz)
print(self.cbpi.step.types)
#if issubclass(clazz, CBPiExtension):
# self.c = clazz(self.cbpi)
if issubclass(clazz, CBPiExtension):
self.c = clazz(self.cbpi)
self.cbpi.register(self.c, "/dummy")
def _parse_props(self, cls):

View file

@ -20,6 +20,12 @@ class StepController():
#self.start()
pass
@request_mapping(path="/action", auth_required=False)
async def http_action(self, request):
self.cbpi.bus.fire("step/action", action="test")
return web.Response(text="OK")
@request_mapping(path="/start", auth_required=False)
async def http_start(self, request):
self.cbpi.bus.fire("step/start")
@ -30,6 +36,14 @@ class StepController():
self.cbpi.bus.fire("step/reset")
return web.Response(text="OK")
@on_event("step/action")
def handle_action(self, topic, action, **kwargs):
print("process action")
if self.current_step is not None:
self.current_step.__getattribute__(action)()
pass
@on_event("step/start")
def handle_start(self, topic, **kwargs):
self.start()

View file

@ -13,6 +13,7 @@ from aiohttp_swagger import setup_swagger
from core.controller.config_controller import ConfigController
from core.controller.kettle_controller import KettleController
from core.controller.step_controller import StepController
from core.extension.comp import MyComp
from core.job.aiohttp import setup, get_scheduler_from_app
from core.controller.actor_controller import ActorController
@ -61,6 +62,7 @@ class CraftBeerPi():
self.kettle = KettleController(self)
self.step = StepController(self)
self.notification = NotificationController(self)
self.dummy = MyComp(self)
self.login = Login(self)

View file

@ -1,7 +1,19 @@
from core.api.decorator import on_event
from core.api.extension import CBPiExtension
from aiohttp import web
class MyComp(CBPiExtension):
from core.api.decorator import on_event, request_mapping
from core.api.extension import CBPiExtension
from core.controller.crud_controller import CRUDController
from core.database.orm_framework import DBModel
from core.http_endpoints.http_api import HttpAPI
class DummyModel(DBModel):
__fields__ = ["name"]
__table_name__ = "dummy"
class MyComp(CBPiExtension, CRUDController, HttpAPI):
model = DummyModel
def __init__(self, cbpi):
'''
@ -11,7 +23,9 @@ class MyComp(CBPiExtension):
'''
self.cbpi = cbpi
# register for bus events
self.cbpi.register_events(self)
self.cbpi.register(self, "/dummy")
@on_event(topic="actor/#")
def listen(self, **kwargs):
@ -23,6 +37,9 @@ class MyComp(CBPiExtension):
self.cbpi.bus.fire(topic="actor/%s/toggle" % 1, id=1)
def setup(cbpi):
'''
Setup method is invoked during startup
@ -31,4 +48,5 @@ def setup(cbpi):
:return:
'''
# regsiter the component to the core
cbpi.plugin.register("MyComp", MyComp)
#cbpi.plugin.register("MyComp", MyComp)
pass

View file

@ -1,18 +1,22 @@
import asyncio
from core.api import Property
from core.api import Property, action
from core.api.step import Step
class CustomStep(Step):
name = Property.Number(label="Test")
_interval = 1
@action(key="name", parameters=None)
def test(self, **kwargs):
self.name="WOOHOO"
async def run(self):
self.name = "HELLO WORLD"
#await asyncio.sleep(1)
raise Exception("OH O")
print("RUN STEP", self.id, self.name, self.__dict__)

View file

@ -101,4 +101,11 @@ CREATE TABLE IF NOT EXISTS translation
key VARCHAR(80) NOT NULL,
text VARCHAR(100) NOT NULL,
PRIMARY KEY (language_code, key)
);
CREATE TABLE IF NOT EXISTS dummy
(
id INTEGER PRIMARY KEY NOT NULL,
name VARCHAR(80)
);

Binary file not shown.