Lots of changes

This commit is contained in:
manuel83 2018-11-04 01:55:54 +01:00
parent 1f38928b90
commit 75f339b22f
27 changed files with 941 additions and 632 deletions

4
.gitignore vendored
View file

@ -1 +1,3 @@
*.pyc
*.pyc
docs/build/

View file

@ -1,41 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="1a245e6a-2e43-4348-8759-dc1b63a4c9c8" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/Dockerfile" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-26" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-28" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-29" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-31" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-33" />
<change type="DELETED" beforePath="$PROJECT_DIR$/core/test.db" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/create_password.py" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-01_21-24" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-01_21-25" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-01_21-26" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-01_21-31" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-01_21-32" afterPath="" />
<change type="MOVED" beforePath="$PROJECT_DIR$/core/plugin.py" afterPath="$PROJECT_DIR$/core/controller/plugin_controller.py" />
<change type="MOVED" beforePath="$PROJECT_DIR$/test.py" afterPath="$PROJECT_DIR$/config/plugin_list.yaml" />
<list default="true" id="1a245e6a-2e43-4348-8759-dc1b63a4c9c8" name="Default" comment="Lots of changes">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/docs/Makefile" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/docs/make.bat" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/docs/source/actor.rst" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/docs/source/conf.py" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/docs/source/index.rst" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/docs/source/sensor.rst" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/docs/source/step.rst" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-57" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-58" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_01-00" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_01-02" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_01-08" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-26" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-28" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-29" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-31" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/logs/first_logfile2.log.2018-11-04_00-33" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/craftbeerpi.db" afterPath="$PROJECT_DIR$/craftbeerpi.db" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/config.yaml" afterPath="$PROJECT_DIR$/config/config.yaml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/api/decorator.py" afterPath="$PROJECT_DIR$/core/api/decorator.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/controller/actor_controller.py" afterPath="$PROJECT_DIR$/core/controller/actor_controller.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/sensor_controller.py" afterPath="$PROJECT_DIR$/core/controller/sensor_controller.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/controller/system_controller.py" afterPath="$PROJECT_DIR$/core/controller/system_controller.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/craftbeerpi.py" afterPath="$PROJECT_DIR$/core/craftbeerpi.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/database/orm_framework.py" afterPath="$PROJECT_DIR$/core/database/orm_framework.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/eventbus.py" afterPath="$PROJECT_DIR$/core/eventbus.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/extension/dummy/__init__.py" afterPath="$PROJECT_DIR$/core/extension/dummy/__init__.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/extension/dummy/config.yaml" afterPath="$PROJECT_DIR$/core/extension/dummy/config.yaml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/http_endpoints/http_api.py" afterPath="$PROJECT_DIR$/core/http_endpoints/http_api.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/http_endpoints/http_login.py" afterPath="$PROJECT_DIR$/core/http_endpoints/http_login.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/mqtt/mqtt.py" afterPath="$PROJECT_DIR$/core/mqtt/mqtt.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/mqtt/mqtt_matcher.py" afterPath="$PROJECT_DIR$/core/mqtt/mqtt_matcher.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/utils/__init__.py" afterPath="$PROJECT_DIR$/core/utils/__init__.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/utils/utils.py" afterPath="$PROJECT_DIR$/core/utils/utils.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/core/websocket.py" afterPath="$PROJECT_DIR$/core/websocket.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/logs/first_logfile2.log" afterPath="$PROJECT_DIR$/logs/first_logfile2.log" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/main.py" afterPath="$PROJECT_DIR$/main.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/tests/test_app.py" afterPath="$PROJECT_DIR$/tests/test_app.py" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
@ -47,7 +40,7 @@
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/craftbeerpi4$py_test_in_tests.coverage" NAME="py.test in tests Coverage Results" MODIFIED="1541276318598" 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="1541248690787" 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="1541288112853" 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="1541290227139" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
</component>
<component name="DatabaseView">
<option name="SHOW_INTERMEDIATE" value="true" />
@ -88,113 +81,102 @@
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="craftbeerpi.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/craftbeerpi.py">
<file leaf-file-name="sensor_controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/controller/sensor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="933">
<caret line="88" column="8" lean-forward="false" selection-start-line="88" selection-start-column="8" selection-end-line="88" selection-end-column="8" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="system_controller.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/core/controller/system_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="27" lean-forward="false" selection-start-line="9" selection-start-column="27" selection-end-line="9" selection-end-column="27" />
<state relative-caret-position="390">
<caret line="32" column="47" lean-forward="false" selection-start-line="32" selection-start-column="47" selection-end-line="32" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="config.yaml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/config.yaml">
<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="90">
<caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
<state relative-caret-position="750">
<caret line="50" column="0" lean-forward="false" selection-start-line="50" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="fermentation_controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/controller/fermentation_controller.py">
<file leaf-file-name="index.rst" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/docs/source/index.rst">
<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 relative-caret-position="375">
<caret line="25" column="0" lean-forward="false" 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="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="638">
<caret line="56" column="8" lean-forward="false" selection-start-line="56" selection-start-column="8" selection-end-line="56" selection-end-column="53" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="run.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/run.py">
<file leaf-file-name=".gitignore" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
<caret line="2" column="11" lean-forward="false" selection-start-line="2" selection-start-column="11" selection-end-line="2" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Dockerfile" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Dockerfile">
<file leaf-file-name="sensor.rst" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/docs/source/sensor.rst">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<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="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="1" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="create_table_user.sql" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/sql/create_table_user.sql">
<file leaf-file-name="step.rst" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/docs/source/step.rst">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="5" column="2" lean-forward="false" selection-start-line="5" selection-start-column="2" selection-end-line="5" selection-end-column="2" />
<state relative-caret-position="15">
<caret line="1" column="8" lean-forward="false" selection-start-line="1" selection-start-column="8" selection-end-line="1" selection-end-column="8" />
<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">
<file leaf-file-name="actor.rst" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/docs/source/actor.rst">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-420">
<caret line="64" column="11" lean-forward="true" selection-start-line="64" selection-start-column="11" selection-end-line="64" selection-end-column="11" />
<state relative-caret-position="105">
<caret line="7" column="11" lean-forward="false" selection-start-line="7" selection-start-column="11" selection-end-line="7" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="main.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/main.py">
<file leaf-file-name="conf.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/docs/source/conf.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>
<marker date="1541287387369" expanded="true" signature="1114:1167" ph="..." />
<marker date="1541287387369" expanded="true" signature="1404:1452" ph="..." />
<marker date="1541287387369" expanded="true" signature="1420:1452" ph="..." />
<marker date="1541287387369" expanded="true" signature="1471:1476" ph="..." />
<marker date="1541287387369" expanded="true" signature="1500:1505" ph="..." />
<marker date="1541287387369" expanded="true" signature="1529:1534" ph="..." />
<marker date="1541287387369" expanded="true" signature="1943:1998" ph="..." />
<marker date="1541287387369" expanded="true" signature="2269:2586" ph="..." />
</folding>
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="websocket.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/core/websocket.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-77">
<caret line="28" column="47" lean-forward="false" selection-start-line="28" selection-start-column="47" selection-end-line="28" selection-end-column="47" />
<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">
<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>
@ -260,11 +242,8 @@
<option value="$PROJECT_DIR$/run.py" />
<option value="$PROJECT_DIR$/core/cbpi.py" />
<option value="$PROJECT_DIR$/core/database/model.py" />
<option value="$PROJECT_DIR$/core/controller/sensor_controller.py" />
<option value="$PROJECT_DIR$/core/controller/crud_controller.py" />
<option value="$PROJECT_DIR$/core/controller/system_controller.py" />
<option value="$PROJECT_DIR$/core/mqtt/mqtt.py" />
<option value="$PROJECT_DIR$/core/websocket.py" />
<option value="$PROJECT_DIR$/core/database/orm_framework.py" />
<option value="$PROJECT_DIR$/core/extension/dummy/__init__.py" />
<option value="$PROJECT_DIR$/core/api/actor.py" />
@ -273,20 +252,28 @@
<option value="$PROJECT_DIR$/core/helper/jsondump.py" />
<option value="$PROJECT_DIR$/core/helper/utils.py" />
<option value="$PROJECT_DIR$/core/api/extension.py" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/tests/test_app.py" />
<option value="$PROJECT_DIR$/Dockerfile" />
<option value="$PROJECT_DIR$/core/plugin.py" />
<option value="$PROJECT_DIR$/core/extension/dummy/config.yaml" />
<option value="$PROJECT_DIR$/core/api/decorator.py" />
<option value="$PROJECT_DIR$/core/controller/actor_controller.py" />
<option value="$PROJECT_DIR$/core/http_endpoints/http_login.py" />
<option value="$PROJECT_DIR$/core/utils/__init__.py" />
<option value="$PROJECT_DIR$/core/utils/utils.py" />
<option value="$PROJECT_DIR$/core/http_endpoints/http_api.py" />
<option value="$PROJECT_DIR$/config/config.yaml" />
<option value="$PROJECT_DIR$/core/controller/system_controller.py" />
<option value="$PROJECT_DIR$/core/controller/plugin_controller.py" />
<option value="$PROJECT_DIR$/core/craftbeerpi.py" />
<option value="$PROJECT_DIR$/config/config.yaml" />
<option value="$PROJECT_DIR$/core/websocket.py" />
<option value="$PROJECT_DIR$/core/controller/sensor_controller.py" />
<option value="$PROJECT_DIR$/core/controller/actor_controller.py" />
<option value="$PROJECT_DIR$/docs/source/hello.rst" />
<option value="$PROJECT_DIR$/docs/source/sensor.rst" />
<option value="$PROJECT_DIR$/docs/source/step.rst" />
<option value="$PROJECT_DIR$/docs/source/actor.rst" />
<option value="$PROJECT_DIR$/docs/source/index.rst" />
<option value="$PROJECT_DIR$/.gitignore" />
</list>
</option>
</component>
@ -297,9 +284,9 @@
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="601" />
<option name="y" value="107" />
<option name="width" value="1940" />
<option name="x" value="47" />
<option name="y" value="165" />
<option name="width" value="1564" />
<option name="height" value="1578" />
</component>
<component name="ProjectView">
@ -386,7 +373,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="tests" />
<option name="myItemId" value="docs" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -400,7 +387,15 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemId" value="docs" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="build" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="html" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -414,65 +409,15 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="core" />
<option name="myItemId" value="docs" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="craftbeerpi.py" />
<option name="myItemType" value="com.jetbrains.python.projectView.PyFileNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="CraftBeerPi" />
<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="myItemId" value="build" />
<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="sql" />
<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="controller" />
<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="config" />
<option name="myItemId" value="doctrees" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -638,6 +583,42 @@
<module name="craftbeerpi4" />
<method />
</configuration>
<configuration default="true" type="docs" factoryName="Docutils task">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="craftbeerpi4" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="docutils_input_file" value="" />
<option name="docutils_output_file" value="" />
<option name="docutils_params" value="" />
<option name="docutils_task" value="" />
<option name="docutils_open_in_browser" value="false" />
<method />
</configuration>
<configuration default="true" type="docs" factoryName="Sphinx task">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="craftbeerpi4" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="docutils_input_file" value="" />
<option name="docutils_output_file" value="" />
<option name="docutils_params" value="" />
<option name="docutils_task" value="" />
<option name="docutils_open_in_browser" value="false" />
<method />
</configuration>
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
<method />
</configuration>
@ -727,6 +708,14 @@
<option name="presentableId" value="Default" />
<updated>1541098050947</updated>
</task>
<task id="LOCAL-00001" summary="Lots of changes">
<created>1541288846149</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1541288846149</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers />
</component>
<component name="TestHistory">
@ -755,7 +744,7 @@
<configuration name="py.test in tests" configurationId="tests" />
</history-entry>
</component>
<component name="TodoView">
<component name="TodoView" selected-index="4">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
@ -765,16 +754,16 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="601" y="107" width="1940" height="1578" extended-state="0" />
<frame x="47" y="165" width="1564" height="1578" extended-state="0" />
<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.3289749" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3286945" sideWeight="0.5" order="6" 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.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.54075545" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32935718" sideWeight="0.5" order="-1" 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.33" sideWeight="0.5" order="-1" 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.24393064" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22731958" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1943299" sideWeight="0.5" order="-1" 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.24387011" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2819693" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24104859" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3280318" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24957556" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39905858" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@ -818,6 +807,11 @@
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Lots of changes" />
<option name="LAST_COMMIT_MESSAGE" value="Lots of changes" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
<watches-manager />
@ -864,9 +858,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="540">
<caret line="36" column="24" lean-forward="false" selection-start-line="36" selection-start-column="24" selection-end-line="36" selection-end-column="24" />
<folding>
<element signature="e#0#50#0" expanded="false" />
</folding>
<folding />
</state>
</provider>
</entry>
@ -894,33 +886,15 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="5" lean-forward="true" selection-start-line="0" selection-start-column="5" selection-end-line="0" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/extension/dummy/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="22" column="0" lean-forward="false" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
<folding>
<element signature="e#0#42#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/database/__init__.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://$PROJECT_DIR$/core/eventbus.py">
<entry file="file://$PROJECT_DIR$/core/database/__init__.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" />
@ -940,9 +914,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="312">
<caret line="33" column="33" lean-forward="true" selection-start-line="33" selection-start-column="33" selection-end-line="33" selection-end-column="33" />
<folding>
<element signature="e#0#25#0" expanded="false" />
</folding>
<folding />
</state>
</provider>
</entry>
@ -962,22 +934,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="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/sensor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="16" column="20" lean-forward="false" selection-start-line="16" selection-start-column="20" selection-end-line="16" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/api/extension.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
@ -996,14 +952,6 @@
</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="244">
<caret line="37" column="20" lean-forward="true" selection-start-line="35" selection-start-column="3" selection-end-line="40" selection-end-column="42" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/http_endpoints/http_login.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
@ -1020,14 +968,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/websocket.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="585">
<caret line="45" column="0" lean-forward="true" selection-start-line="45" selection-start-column="0" selection-end-line="45" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
@ -1056,9 +996,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="12" column="27" lean-forward="false" selection-start-line="12" selection-start-column="27" selection-end-line="12" selection-end-column="27" />
<folding>
<element signature="e#40#51#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
@ -1066,9 +1004,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="10" column="49" lean-forward="false" selection-start-line="10" selection-start-column="49" selection-end-line="10" selection-end-column="49" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
@ -1077,14 +1013,15 @@
<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>
<marker date="1541287387369" expanded="true" signature="1114:1167" ph="..." />
<marker date="1541287387369" expanded="true" signature="1404:1452" ph="..." />
<marker date="1541287387369" expanded="true" signature="1420:1452" ph="..." />
<marker date="1541287387369" expanded="true" signature="1471:1476" ph="..." />
<marker date="1541287387369" expanded="true" signature="1500:1505" ph="..." />
<marker date="1541287387369" expanded="true" signature="1529:1534" ph="..." />
<marker date="1541287387369" expanded="true" signature="1943:1998" ph="..." />
<marker date="1541287387369" expanded="true" signature="2269:2586" ph="..." />
<marker date="1541288832197" expanded="false" signature="0:329" ph="import ..." />
<marker date="1541288832197" expanded="true" signature="1099:1152" ph="..." />
<marker date="1541288832197" expanded="true" signature="1389:1437" ph="..." />
<marker date="1541288832197" expanded="true" signature="1405:1437" ph="..." />
<marker date="1541288832197" expanded="true" signature="1456:1461" ph="..." />
<marker date="1541288832197" expanded="true" signature="1485:1490" ph="..." />
<marker date="1541288832197" expanded="true" signature="1514:1519" ph="..." />
<marker date="1541288832197" expanded="true" signature="1928:1983" ph="..." />
<marker date="1541288832197" expanded="true" signature="2254:2571" ph="..." />
</folding>
</state>
</provider>
@ -1129,18 +1066,10 @@
</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="-420">
<caret line="64" column="11" lean-forward="true" selection-start-line="64" selection-start-column="11" selection-end-line="64" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/config.yaml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
<caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
<folding />
</state>
</provider>
@ -1153,28 +1082,135 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/system_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="10" column="29" lean-forward="false" selection-start-line="10" selection-start-column="29" selection-end-line="10" selection-end-column="29" />
<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="638">
<caret line="56" column="8" lean-forward="false" selection-start-line="56" selection-start-column="8" selection-end-line="56" selection-end-column="53" />
<state relative-caret-position="55">
<caret line="11" column="32" lean-forward="false" selection-start-line="11" selection-start-column="32" selection-end-line="11" selection-end-column="32" />
<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="-282">
<caret line="16" column="6" lean-forward="false" selection-start-line="16" selection-start-column="6" selection-end-line="16" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="dbDummy://dbtable:/a57e2371/5067e7fe-480d-4433-bc40-f2d1c38362a2/main.sensor">
<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>
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/craftbeerpi.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="933">
<caret line="88" column="8" lean-forward="false" selection-start-line="88" selection-start-column="8" selection-end-line="88" selection-end-column="8" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
<state relative-caret-position="397">
<caret line="73" column="78" lean-forward="false" selection-start-line="73" selection-start-column="78" selection-end-line="73" selection-end-column="78" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/core/controller/system_controller.py">
<entry file="file://$PROJECT_DIR$/core/eventbus.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="9" column="27" lean-forward="false" selection-start-line="9" selection-start-column="27" selection-end-line="9" selection-end-column="27" />
<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/websocket.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-77">
<caret line="28" column="47" lean-forward="false" selection-start-line="28" selection-start-column="47" selection-end-line="28" selection-end-column="47" />
<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="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/sensor_controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="390">
<caret line="32" column="47" lean-forward="false" selection-start-line="32" selection-start-column="47" selection-end-line="32" selection-end-column="47" />
<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="750">
<caret line="50" column="0" lean-forward="false" selection-start-line="50" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/source/sensor.rst">
<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="1" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/source/step.rst">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<caret line="1" column="8" lean-forward="false" selection-start-line="1" selection-start-column="8" selection-end-line="1" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/source/conf.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://$PROJECT_DIR$/docs/source/actor.rst">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="11" lean-forward="false" selection-start-line="7" selection-start-column="11" selection-end-line="7" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/source/index.rst">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="25" column="0" lean-forward="false" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="11" lean-forward="false" selection-start-line="2" selection-start-column="11" selection-end-line="2" selection-end-column="11" />
<folding />
</state>
</provider>

View file

@ -1,6 +1,6 @@
from aiohttp import web
from core.api.decorator import on_event, request_mapping, on_startup
from core.api.decorator import on_event, request_mapping
from core.controller.crud_controller import CRUDController
from core.controller.plugin_controller import PluginController
from core.database.model import ActorModel
@ -8,7 +8,6 @@ from core.http_endpoints.http_api import HttpAPI
class ActorHttp(HttpAPI):
count = 0
@request_mapping(path="/hallo", auth_required=False)
@ -27,9 +26,7 @@ class ActorHttp(HttpAPI):
return web.Response(status=204)
class ActorController(ActorHttp, CRUDController, PluginController):
model = ActorModel
def __init__(self, cbpi):
@ -50,22 +47,7 @@ class ActorController(ActorHttp, CRUDController, PluginController):
if value.type in self.types:
clazz = self.types[value.type];
self.actors[id] = clazz(self.cbpi)
@on_startup(name="actor_init", order=2)
async def lets_go1(self):
pass
@on_startup(name="actor_init", order=99)
async def lets_go2(self):
pass
@on_startup(name="actor_init", order=-1)
async def lets_go(self):
pass
self.actors[id] = clazz(self.cbpi)
@on_event(topic="actor/+/on")
def on(self, id, power=100, **kwargs) -> None:
@ -82,10 +64,3 @@ class ActorController(ActorHttp, CRUDController, PluginController):
:param kwargs:
"""
pass

View file

@ -59,7 +59,7 @@ class PluginController():
except Exception as e:
logger.error(e)
@request_mapping(path="/", method="GET", auth_required=False)
@request_mapping(path="/plugins", method="GET", auth_required=False)
async def get_plugins(self, request):
"""
---

View file

@ -1,10 +1,8 @@
import logging
from logging.handlers import TimedRotatingFileHandler
from core.api.decorator import background_task
from core.controller.crud_controller import CRUDController
from core.database.model import SensorModel
from core.http_endpoints.http_api import HttpAPI
@ -32,6 +30,10 @@ class SensorController(CRUDController, HttpAPI):
async def pre_get_one(self, id):
pass
@background_task(name="test2", interval=0.1)
async def hallo2(self):
print("WOOHOO")
@background_task(name="test", interval=1)
async def hallo(self):

View file

@ -5,14 +5,23 @@ from core.api.decorator import request_mapping
class SystemController():
name = "Manuel"
def __init__(self, cbpi):
self.cbpi = cbpi
self.service = cbpi.actor
self.cbpi.register(self, "/system")
@request_mapping("/jobs", method="GET", name="get_jobs", auth_required=True)
@request_mapping("/restart", method="POST", name="RestartServer", auth_required=False)
def restart(self, request):
# TODO implement restart
return web.Response(text="NOT IMPLEMENTED")
@request_mapping("/shutdown", method="POST", name="ShutdownSerer", auth_required=False)
def restart(self, request):
# TODO implement restart
return web.Response(text="NOT IMPLEMENTED")
@request_mapping("/jobs", method="GET", name="get_jobs", auth_required=False)
def get_all_jobs(self, request):
scheduler = get_scheduler_from_app(self.cbpi.app)

View file

@ -56,22 +56,24 @@ class CraftBeerPi():
self.bus.register(method.__getattribute__("topic"), method, doc)
def register_background_task(self, obj):
for method in [getattr(obj, f) for f in dir(obj) if callable(getattr(obj, f)) and hasattr(getattr(obj, f), "background_task")]:
name = method.__getattribute__("name")
interval = method.__getattribute__("interval")
async def job_loop(app, name, interval, method):
logger.info("Start Background Task %s Interval %s Method %s" % (name, interval, method))
while True:
logger.info("Execute Task %s - interval(%s second(s)" % (name, interval))
await asyncio.sleep(interval)
await method()
async def spawn_job(app):
scheduler = get_scheduler_from_app(self.app)
async def job_loop(app, name, interval, method):
logger.info("Start Background Task %s Interval %s Method %s" % (name, interval, method))
while True:
logger.info("Execute Task %s - interval(%s second(s)" % (name, interval))
await asyncio.sleep(interval)
await method()
async def spawn_job(app):
scheduler = get_scheduler_from_app(self.app)
for method in [getattr(obj, f) for f in dir(obj) if callable(getattr(obj, f)) and hasattr(getattr(obj, f), "background_task")]:
name = method.__getattribute__("name")
interval = method.__getattribute__("interval")
await scheduler.spawn(job_loop(self.app, name, interval, method))
self.app.on_startup.append(spawn_job)
self.app.on_startup.append(spawn_job)
def register_on_startup(self, obj):
@ -157,7 +159,6 @@ class CraftBeerPi():
f = Figlet(font='big')
print(f.renderText("%s %s" % (self.config.get("name"), self.config.get("version"))))
# self.cache["init"] = sorted(self.cache["init"], key=lambda k: k['order'])
async def init_database(app):
await DBModel.test_connection()

View file

@ -7,10 +7,7 @@ from aiohttp import web
from typing import Iterable, Callable
class WebSocket:
def __init__(self, cbpi) -> None:
self.cbpi = cbpi
self._callbacks = defaultdict(set)
@ -49,12 +46,10 @@ class WebSocket:
else:
msg_obj = msg.json()
self.cbpi.bus.fire(msg_obj["topic"], id=1, power=22)
#await self.fire(msg_obj["key"], ws, msg)
# await self.fire(msg_obj["key"], ws, msg)
#await ws.send_str(msg.data)
# await ws.send_str(msg.data)
elif msg.type == aiohttp.WSMsgType.ERROR:
self.logger.error('ws connection closed with exception %s' % ws.exception())
@ -89,4 +84,4 @@ async def websocket_handler(request):
del _ws[c]
print('websocket connection closed')
return ws
return ws

Binary file not shown.

19
docs/Makefile Normal file
View file

@ -0,0 +1,19 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

35
docs/make.bat Normal file
View file

@ -0,0 +1,35 @@
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
:end
popd

8
docs/source/actor.rst Normal file
View file

@ -0,0 +1,8 @@
Actor API
=========
Test
^^^^
HELLO WORLD

177
docs/source/conf.py Normal file
View file

@ -0,0 +1,177 @@
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'CraftBeerPi'
copyright = '2018, Manuel Fritsch'
author = 'Manuel Fritsch'
# The short X.Y version
version = ''
# The full version, including alpha/beta/rc tags
release = '4.0'
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['ntemplates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = None
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'alabaster'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['nstatic']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'CraftBeerPidoc'
# -- Options for LaTeX output ------------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'CraftBeerPi.tex', 'CraftBeerPi Documentation',
'Manuel Fritsch', 'manual'),
]
# -- Options for manual page output ------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'craftbeerpi', 'CraftBeerPi Documentation',
[author], 1)
]
# -- Options for Texinfo output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'CraftBeerPi', 'CraftBeerPi Documentation',
author, 'CraftBeerPi', 'One line description of project.',
'Miscellaneous'),
]
# -- Options for Epub output -------------------------------------------------
# Bibliographic Dublin Core info.
epub_title = project
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#
# epub_identifier = ''
# A unique identification for the text.
#
# epub_uid = ''
# A list of files that should not be packed into the epub file.
epub_exclude_files = ['search.html']
# -- Extension configuration -------------------------------------------------

25
docs/source/index.rst Normal file
View file

@ -0,0 +1,25 @@
.. CraftBeerPi documentation master file, created by
sphinx-quickstart on Sun Nov 4 01:27:26 2018.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to CraftBeerPi's documentation!
=======================================
Documentation
^^^^^^^^^^^^^
.. toctree::
:maxdepth: 1
actor
sensor
step
..
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

2
docs/source/sensor.rst Normal file
View file

@ -0,0 +1,2 @@
Sensor API
==========

2
docs/source/step.rst Normal file
View file

@ -0,0 +1,2 @@
Step API
========

View file

@ -1,4 +1,13 @@
2018-11-04 00:34:55,389,1,WOOHO
2018-11-04 00:35:14,956,1,WOOHO
2018-11-04 00:35:15,960,1,WOOHO
2018-11-04 00:35:16,962,1,WOOHO
2018-11-04 01:10:29,274,1,WOOHO
2018-11-04 01:10:30,280,1,WOOHO
2018-11-04 01:10:31,282,1,WOOHO
2018-11-04 01:10:32,286,1,WOOHO
2018-11-04 01:10:33,288,1,WOOHO
2018-11-04 01:10:34,294,1,WOOHO
2018-11-04 01:10:35,299,1,WOOHO
2018-11-04 01:10:36,301,1,WOOHO
2018-11-04 01:10:37,306,1,WOOHO
2018-11-04 01:10:38,311,1,WOOHO
2018-11-04 01:10:39,316,1,WOOHO
2018-11-04 01:10:40,317,1,WOOHO
2018-11-04 01:10:41,319,1,WOOHO

View file

@ -1,60 +0,0 @@
2018-11-04 00:26:50,511,1,WOOHO
2018-11-04 00:26:51,516,1,WOOHO
2018-11-04 00:26:52,526,1,WOOHO
2018-11-04 00:26:53,530,1,WOOHO
2018-11-04 00:26:54,534,1,WOOHO
2018-11-04 00:26:55,537,1,WOOHO
2018-11-04 00:26:56,541,1,WOOHO
2018-11-04 00:26:57,542,1,WOOHO
2018-11-04 00:26:58,547,1,WOOHO
2018-11-04 00:26:59,552,1,WOOHO
2018-11-04 00:27:00,558,1,WOOHO
2018-11-04 00:27:01,561,1,WOOHO
2018-11-04 00:27:02,563,1,WOOHO
2018-11-04 00:27:03,567,1,WOOHO
2018-11-04 00:27:04,571,1,WOOHO
2018-11-04 00:27:05,572,1,WOOHO
2018-11-04 00:27:06,577,1,WOOHO
2018-11-04 00:27:07,579,1,WOOHO
2018-11-04 00:27:08,581,1,WOOHO
2018-11-04 00:27:09,582,1,WOOHO
2018-11-04 00:27:10,585,1,WOOHO
2018-11-04 00:27:11,588,1,WOOHO
2018-11-04 00:27:12,592,1,WOOHO
2018-11-04 00:27:13,596,1,WOOHO
2018-11-04 00:27:14,599,1,WOOHO
2018-11-04 00:27:15,604,1,WOOHO
2018-11-04 00:27:16,608,1,WOOHO
2018-11-04 00:27:17,614,1,WOOHO
2018-11-04 00:27:18,619,1,WOOHO
2018-11-04 00:27:19,624,1,WOOHO
2018-11-04 00:27:20,627,1,WOOHO
2018-11-04 00:27:21,629,1,WOOHO
2018-11-04 00:27:22,639,1,WOOHO
2018-11-04 00:27:23,642,1,WOOHO
2018-11-04 00:27:24,646,1,WOOHO
2018-11-04 00:27:25,649,1,WOOHO
2018-11-04 00:27:26,652,1,WOOHO
2018-11-04 00:27:27,656,1,WOOHO
2018-11-04 00:27:28,657,1,WOOHO
2018-11-04 00:27:29,659,1,WOOHO
2018-11-04 00:27:30,663,1,WOOHO
2018-11-04 00:27:31,668,1,WOOHO
2018-11-04 00:27:32,673,1,WOOHO
2018-11-04 00:27:33,679,1,WOOHO
2018-11-04 00:27:34,680,1,WOOHO
2018-11-04 00:27:35,686,1,WOOHO
2018-11-04 00:27:36,691,1,WOOHO
2018-11-04 00:27:37,692,1,WOOHO
2018-11-04 00:27:38,693,1,WOOHO
2018-11-04 00:27:39,696,1,WOOHO
2018-11-04 00:27:40,702,1,WOOHO
2018-11-04 00:27:41,708,1,WOOHO
2018-11-04 00:27:42,712,1,WOOHO
2018-11-04 00:27:43,715,1,WOOHO
2018-11-04 00:27:44,719,1,WOOHO
2018-11-04 00:27:45,723,1,WOOHO
2018-11-04 00:27:46,730,1,WOOHO
2018-11-04 00:27:47,735,1,WOOHO
2018-11-04 00:27:48,740,1,WOOHO
2018-11-04 00:27:49,744,1,WOOHO

View file

@ -1,73 +0,0 @@
2018-11-04 00:27:50,745,1,WOOHO
2018-11-04 00:27:51,756,1,WOOHO
2018-11-04 00:27:52,759,1,WOOHO
2018-11-04 00:27:53,764,1,WOOHO
2018-11-04 00:27:54,768,1,WOOHO
2018-11-04 00:27:55,772,1,WOOHO
2018-11-04 00:27:56,777,1,WOOHO
2018-11-04 00:27:57,782,1,WOOHO
2018-11-04 00:27:58,785,1,WOOHO
2018-11-04 00:27:59,791,1,WOOHO
2018-11-04 00:28:00,795,1,WOOHO
2018-11-04 00:28:01,799,1,WOOHO
2018-11-04 00:28:02,803,1,WOOHO
2018-11-04 00:28:03,807,1,WOOHO
2018-11-04 00:28:04,812,1,WOOHO
2018-11-04 00:28:05,817,1,WOOHO
2018-11-04 00:28:06,821,1,WOOHO
2018-11-04 00:28:07,826,1,WOOHO
2018-11-04 00:28:08,831,1,WOOHO
2018-11-04 00:28:09,836,1,WOOHO
2018-11-04 00:28:10,839,1,WOOHO
2018-11-04 00:28:11,840,1,WOOHO
2018-11-04 00:28:12,843,1,WOOHO
2018-11-04 00:28:13,847,1,WOOHO
2018-11-04 00:28:14,850,1,WOOHO
2018-11-04 00:28:15,855,1,WOOHO
2018-11-04 00:28:36,607,1,WOOHO
2018-11-04 00:28:37,610,1,WOOHO
2018-11-04 00:28:52,652,1,WOOHO
2018-11-04 00:28:53,656,1,WOOHO
2018-11-04 00:28:54,657,1,WOOHO
2018-11-04 00:28:55,663,1,WOOHO
2018-11-04 00:28:56,666,1,WOOHO
2018-11-04 00:28:57,667,1,WOOHO
2018-11-04 00:28:58,672,1,WOOHO
2018-11-04 00:28:59,675,1,WOOHO
2018-11-04 00:29:00,679,1,WOOHO
2018-11-04 00:29:01,681,1,WOOHO
2018-11-04 00:29:02,681,1,WOOHO
2018-11-04 00:29:03,687,1,WOOHO
2018-11-04 00:29:04,691,1,WOOHO
2018-11-04 00:29:05,694,1,WOOHO
2018-11-04 00:29:06,700,1,WOOHO
2018-11-04 00:29:07,704,1,WOOHO
2018-11-04 00:29:08,709,1,WOOHO
2018-11-04 00:29:09,713,1,WOOHO
2018-11-04 00:29:10,715,1,WOOHO
2018-11-04 00:29:11,716,1,WOOHO
2018-11-04 00:29:12,719,1,WOOHO
2018-11-04 00:29:13,722,1,WOOHO
2018-11-04 00:29:14,727,1,WOOHO
2018-11-04 00:29:15,733,1,WOOHO
2018-11-04 00:29:16,737,1,WOOHO
2018-11-04 00:29:17,740,1,WOOHO
2018-11-04 00:29:18,742,1,WOOHO
2018-11-04 00:29:19,745,1,WOOHO
2018-11-04 00:29:20,749,1,WOOHO
2018-11-04 00:29:21,756,1,WOOHO
2018-11-04 00:29:22,761,1,WOOHO
2018-11-04 00:29:23,766,1,WOOHO
2018-11-04 00:29:24,770,1,WOOHO
2018-11-04 00:29:25,775,1,WOOHO
2018-11-04 00:29:26,778,1,WOOHO
2018-11-04 00:29:27,782,1,WOOHO
2018-11-04 00:29:28,787,1,WOOHO
2018-11-04 00:29:29,789,1,WOOHO
2018-11-04 00:29:30,792,1,WOOHO
2018-11-04 00:29:31,795,1,WOOHO
2018-11-04 00:29:32,800,1,WOOHO
2018-11-04 00:29:33,803,1,WOOHO
2018-11-04 00:29:34,807,1,WOOHO
2018-11-04 00:29:35,812,1,WOOHO
2018-11-04 00:29:36,817,1,WOOHO

View file

@ -1,59 +0,0 @@
2018-11-04 00:29:37,823,1,WOOHO
2018-11-04 00:29:38,829,1,WOOHO
2018-11-04 00:29:39,832,1,WOOHO
2018-11-04 00:29:40,837,1,WOOHO
2018-11-04 00:29:41,843,1,WOOHO
2018-11-04 00:29:42,846,1,WOOHO
2018-11-04 00:29:43,852,1,WOOHO
2018-11-04 00:29:44,857,1,WOOHO
2018-11-04 00:29:45,858,1,WOOHO
2018-11-04 00:29:46,863,1,WOOHO
2018-11-04 00:29:47,865,1,WOOHO
2018-11-04 00:29:48,867,1,WOOHO
2018-11-04 00:29:49,869,1,WOOHO
2018-11-04 00:29:50,872,1,WOOHO
2018-11-04 00:29:51,878,1,WOOHO
2018-11-04 00:29:52,879,1,WOOHO
2018-11-04 00:29:53,881,1,WOOHO
2018-11-04 00:29:54,887,1,WOOHO
2018-11-04 00:29:55,891,1,WOOHO
2018-11-04 00:29:56,898,1,WOOHO
2018-11-04 00:29:57,903,1,WOOHO
2018-11-04 00:29:58,908,1,WOOHO
2018-11-04 00:29:59,911,1,WOOHO
2018-11-04 00:30:00,915,1,WOOHO
2018-11-04 00:30:01,920,1,WOOHO
2018-11-04 00:30:02,921,1,WOOHO
2018-11-04 00:30:03,925,1,WOOHO
2018-11-04 00:30:04,928,1,WOOHO
2018-11-04 00:30:05,933,1,WOOHO
2018-11-04 00:30:06,937,1,WOOHO
2018-11-04 00:30:07,940,1,WOOHO
2018-11-04 00:30:08,944,1,WOOHO
2018-11-04 00:30:09,948,1,WOOHO
2018-11-04 00:30:10,953,1,WOOHO
2018-11-04 00:30:11,957,1,WOOHO
2018-11-04 00:30:12,961,1,WOOHO
2018-11-04 00:30:13,965,1,WOOHO
2018-11-04 00:30:14,967,1,WOOHO
2018-11-04 00:30:15,970,1,WOOHO
2018-11-04 00:30:16,974,1,WOOHO
2018-11-04 00:30:17,978,1,WOOHO
2018-11-04 00:30:18,984,1,WOOHO
2018-11-04 00:30:19,990,1,WOOHO
2018-11-04 00:30:20,993,1,WOOHO
2018-11-04 00:30:21,995,1,WOOHO
2018-11-04 00:30:22,997,1,WOOHO
2018-11-04 00:30:24,001,1,WOOHO
2018-11-04 00:30:25,005,1,WOOHO
2018-11-04 00:30:26,007,1,WOOHO
2018-11-04 00:30:27,012,1,WOOHO
2018-11-04 00:30:28,014,1,WOOHO
2018-11-04 00:30:29,019,1,WOOHO
2018-11-04 00:30:30,022,1,WOOHO
2018-11-04 00:30:31,027,1,WOOHO
2018-11-04 00:30:32,032,1,WOOHO
2018-11-04 00:30:33,037,1,WOOHO
2018-11-04 00:30:34,042,1,WOOHO
2018-11-04 00:30:35,046,1,WOOHO
2018-11-04 00:30:36,051,1,WOOHO

View file

@ -1,116 +0,0 @@
2018-11-04 00:30:37,054,1,WOOHO
2018-11-04 00:30:38,060,1,WOOHO
2018-11-04 00:30:39,064,1,WOOHO
2018-11-04 00:30:40,070,1,WOOHO
2018-11-04 00:30:41,076,1,WOOHO
2018-11-04 00:30:42,079,1,WOOHO
2018-11-04 00:30:43,082,1,WOOHO
2018-11-04 00:30:44,087,1,WOOHO
2018-11-04 00:30:45,092,1,WOOHO
2018-11-04 00:30:46,093,1,WOOHO
2018-11-04 00:30:47,097,1,WOOHO
2018-11-04 00:30:48,100,1,WOOHO
2018-11-04 00:30:49,103,1,WOOHO
2018-11-04 00:30:50,106,1,WOOHO
2018-11-04 00:30:53,680,1,WOOHO
2018-11-04 00:30:54,683,1,WOOHO
2018-11-04 00:30:55,686,1,WOOHO
2018-11-04 00:30:56,688,1,WOOHO
2018-11-04 00:30:57,694,1,WOOHO
2018-11-04 00:30:58,696,1,WOOHO
2018-11-04 00:30:59,697,1,WOOHO
2018-11-04 00:31:00,700,1,WOOHO
2018-11-04 00:31:01,704,1,WOOHO
2018-11-04 00:31:02,707,1,WOOHO
2018-11-04 00:31:03,711,1,WOOHO
2018-11-04 00:31:04,714,1,WOOHO
2018-11-04 00:31:05,718,1,WOOHO
2018-11-04 00:31:06,719,1,WOOHO
2018-11-04 00:31:07,724,1,WOOHO
2018-11-04 00:31:08,730,1,WOOHO
2018-11-04 00:31:09,731,1,WOOHO
2018-11-04 00:31:10,736,1,WOOHO
2018-11-04 00:31:11,742,1,WOOHO
2018-11-04 00:31:12,746,1,WOOHO
2018-11-04 00:31:13,748,1,WOOHO
2018-11-04 00:31:14,754,1,WOOHO
2018-11-04 00:31:15,758,1,WOOHO
2018-11-04 00:31:16,762,1,WOOHO
2018-11-04 00:31:17,767,1,WOOHO
2018-11-04 00:31:18,770,1,WOOHO
2018-11-04 00:31:19,774,1,WOOHO
2018-11-04 00:31:20,780,1,WOOHO
2018-11-04 00:31:21,787,1,WOOHO
2018-11-04 00:31:22,788,1,WOOHO
2018-11-04 00:31:23,792,1,WOOHO
2018-11-04 00:31:24,796,1,WOOHO
2018-11-04 00:31:25,799,1,WOOHO
2018-11-04 00:31:26,804,1,WOOHO
2018-11-04 00:31:27,810,1,WOOHO
2018-11-04 00:31:28,814,1,WOOHO
2018-11-04 00:31:29,817,1,WOOHO
2018-11-04 00:31:30,823,1,WOOHO
2018-11-04 00:31:31,825,1,WOOHO
2018-11-04 00:31:32,830,1,WOOHO
2018-11-04 00:31:33,835,1,WOOHO
2018-11-04 00:31:34,841,1,WOOHO
2018-11-04 00:31:35,843,1,WOOHO
2018-11-04 00:31:36,845,1,WOOHO
2018-11-04 00:31:37,850,1,WOOHO
2018-11-04 00:31:38,854,1,WOOHO
2018-11-04 00:31:42,026,1,WOOHO
2018-11-04 00:31:43,030,1,WOOHO
2018-11-04 00:31:44,034,1,WOOHO
2018-11-04 00:31:45,037,1,WOOHO
2018-11-04 00:31:46,046,1,WOOHO
2018-11-04 00:31:47,051,1,WOOHO
2018-11-04 00:31:48,054,1,WOOHO
2018-11-04 00:31:49,059,1,WOOHO
2018-11-04 00:31:50,065,1,WOOHO
2018-11-04 00:31:51,070,1,WOOHO
2018-11-04 00:31:52,075,1,WOOHO
2018-11-04 00:31:53,082,1,WOOHO
2018-11-04 00:31:54,088,1,WOOHO
2018-11-04 00:31:55,093,1,WOOHO
2018-11-04 00:31:56,098,1,WOOHO
2018-11-04 00:31:57,102,1,WOOHO
2018-11-04 00:31:58,107,1,WOOHO
2018-11-04 00:31:59,110,1,WOOHO
2018-11-04 00:32:00,114,1,WOOHO
2018-11-04 00:32:01,120,1,WOOHO
2018-11-04 00:32:02,124,1,WOOHO
2018-11-04 00:32:03,130,1,WOOHO
2018-11-04 00:32:04,132,1,WOOHO
2018-11-04 00:32:05,136,1,WOOHO
2018-11-04 00:32:06,141,1,WOOHO
2018-11-04 00:32:07,142,1,WOOHO
2018-11-04 00:32:08,148,1,WOOHO
2018-11-04 00:32:09,149,1,WOOHO
2018-11-04 00:32:10,154,1,WOOHO
2018-11-04 00:32:11,161,1,WOOHO
2018-11-04 00:32:12,165,1,WOOHO
2018-11-04 00:32:13,171,1,WOOHO
2018-11-04 00:32:14,176,1,WOOHO
2018-11-04 00:32:15,180,1,WOOHO
2018-11-04 00:32:16,186,1,WOOHO
2018-11-04 00:32:17,191,1,WOOHO
2018-11-04 00:32:18,193,1,WOOHO
2018-11-04 00:32:19,196,1,WOOHO
2018-11-04 00:32:20,199,1,WOOHO
2018-11-04 00:32:21,204,1,WOOHO
2018-11-04 00:32:22,210,1,WOOHO
2018-11-04 00:32:23,213,1,WOOHO
2018-11-04 00:32:24,217,1,WOOHO
2018-11-04 00:32:25,223,1,WOOHO
2018-11-04 00:32:26,228,1,WOOHO
2018-11-04 00:32:27,232,1,WOOHO
2018-11-04 00:32:28,234,1,WOOHO
2018-11-04 00:32:29,238,1,WOOHO
2018-11-04 00:32:30,241,1,WOOHO
2018-11-04 00:32:31,244,1,WOOHO
2018-11-04 00:32:32,244,1,WOOHO
2018-11-04 00:32:33,247,1,WOOHO
2018-11-04 00:32:34,251,1,WOOHO
2018-11-04 00:32:35,254,1,WOOHO
2018-11-04 00:32:36,258,1,WOOHO
2018-11-04 00:32:37,264,1,WOOHO

View file

@ -1,13 +0,0 @@
2018-11-04 00:32:38,269,1,WOOHO
2018-11-04 00:32:39,274,1,WOOHO
2018-11-04 00:32:40,278,1,WOOHO
2018-11-04 00:32:41,280,1,WOOHO
2018-11-04 00:32:42,285,1,WOOHO
2018-11-04 00:32:43,290,1,WOOHO
2018-11-04 00:32:44,292,1,WOOHO
2018-11-04 00:32:45,295,1,WOOHO
2018-11-04 00:32:46,296,1,WOOHO
2018-11-04 00:32:47,301,1,WOOHO
2018-11-04 00:32:48,305,1,WOOHO
2018-11-04 00:32:49,309,1,WOOHO
2018-11-04 00:33:25,362,1,WOOHO

View file

@ -0,0 +1,60 @@
2018-11-04 00:57:39,550,1,WOOHO
2018-11-04 00:57:40,556,1,WOOHO
2018-11-04 00:57:41,560,1,WOOHO
2018-11-04 00:57:42,564,1,WOOHO
2018-11-04 00:57:43,569,1,WOOHO
2018-11-04 00:57:44,570,1,WOOHO
2018-11-04 00:57:45,575,1,WOOHO
2018-11-04 00:57:46,579,1,WOOHO
2018-11-04 00:57:47,582,1,WOOHO
2018-11-04 00:57:48,586,1,WOOHO
2018-11-04 00:57:49,587,1,WOOHO
2018-11-04 00:57:50,593,1,WOOHO
2018-11-04 00:57:51,598,1,WOOHO
2018-11-04 00:57:52,603,1,WOOHO
2018-11-04 00:57:53,604,1,WOOHO
2018-11-04 00:57:54,609,1,WOOHO
2018-11-04 00:57:55,610,1,WOOHO
2018-11-04 00:57:56,615,1,WOOHO
2018-11-04 00:57:57,619,1,WOOHO
2018-11-04 00:57:58,623,1,WOOHO
2018-11-04 00:57:59,627,1,WOOHO
2018-11-04 00:58:00,631,1,WOOHO
2018-11-04 00:58:01,634,1,WOOHO
2018-11-04 00:58:02,639,1,WOOHO
2018-11-04 00:58:03,643,1,WOOHO
2018-11-04 00:58:04,649,1,WOOHO
2018-11-04 00:58:05,653,1,WOOHO
2018-11-04 00:58:06,658,1,WOOHO
2018-11-04 00:58:07,660,1,WOOHO
2018-11-04 00:58:08,664,1,WOOHO
2018-11-04 00:58:09,669,1,WOOHO
2018-11-04 00:58:10,670,1,WOOHO
2018-11-04 00:58:11,675,1,WOOHO
2018-11-04 00:58:12,678,1,WOOHO
2018-11-04 00:58:13,681,1,WOOHO
2018-11-04 00:58:14,685,1,WOOHO
2018-11-04 00:58:15,687,1,WOOHO
2018-11-04 00:58:16,692,1,WOOHO
2018-11-04 00:58:17,697,1,WOOHO
2018-11-04 00:58:18,703,1,WOOHO
2018-11-04 00:58:19,708,1,WOOHO
2018-11-04 00:58:20,709,1,WOOHO
2018-11-04 00:58:21,722,1,WOOHO
2018-11-04 00:58:22,724,1,WOOHO
2018-11-04 00:58:23,728,1,WOOHO
2018-11-04 00:58:24,730,1,WOOHO
2018-11-04 00:58:25,736,1,WOOHO
2018-11-04 00:58:26,736,1,WOOHO
2018-11-04 00:58:27,741,1,WOOHO
2018-11-04 00:58:28,743,1,WOOHO
2018-11-04 00:58:29,744,1,WOOHO
2018-11-04 00:58:30,750,1,WOOHO
2018-11-04 00:58:31,753,1,WOOHO
2018-11-04 00:58:32,756,1,WOOHO
2018-11-04 00:58:33,760,1,WOOHO
2018-11-04 00:58:34,764,1,WOOHO
2018-11-04 00:58:35,770,1,WOOHO
2018-11-04 00:58:36,772,1,WOOHO
2018-11-04 00:58:37,778,1,WOOHO
2018-11-04 00:58:38,780,1,WOOHO

View file

@ -0,0 +1,59 @@
2018-11-04 00:58:39,784,1,WOOHO
2018-11-04 00:58:40,788,1,WOOHO
2018-11-04 00:58:41,793,1,WOOHO
2018-11-04 00:58:42,796,1,WOOHO
2018-11-04 00:58:43,800,1,WOOHO
2018-11-04 00:58:44,805,1,WOOHO
2018-11-04 00:58:45,810,1,WOOHO
2018-11-04 00:58:46,814,1,WOOHO
2018-11-04 00:58:47,819,1,WOOHO
2018-11-04 00:58:48,825,1,WOOHO
2018-11-04 00:58:49,829,1,WOOHO
2018-11-04 00:58:50,835,1,WOOHO
2018-11-04 00:58:51,843,1,WOOHO
2018-11-04 00:58:52,845,1,WOOHO
2018-11-04 00:58:53,850,1,WOOHO
2018-11-04 00:58:54,854,1,WOOHO
2018-11-04 00:58:55,858,1,WOOHO
2018-11-04 00:58:56,863,1,WOOHO
2018-11-04 00:58:57,864,1,WOOHO
2018-11-04 00:58:58,870,1,WOOHO
2018-11-04 00:58:59,875,1,WOOHO
2018-11-04 00:59:00,878,1,WOOHO
2018-11-04 00:59:01,883,1,WOOHO
2018-11-04 00:59:02,888,1,WOOHO
2018-11-04 00:59:03,891,1,WOOHO
2018-11-04 00:59:04,898,1,WOOHO
2018-11-04 00:59:05,905,1,WOOHO
2018-11-04 00:59:06,909,1,WOOHO
2018-11-04 00:59:07,914,1,WOOHO
2018-11-04 00:59:08,921,1,WOOHO
2018-11-04 00:59:09,924,1,WOOHO
2018-11-04 00:59:10,930,1,WOOHO
2018-11-04 00:59:11,935,1,WOOHO
2018-11-04 00:59:12,940,1,WOOHO
2018-11-04 00:59:13,946,1,WOOHO
2018-11-04 00:59:14,952,1,WOOHO
2018-11-04 00:59:15,958,1,WOOHO
2018-11-04 00:59:16,963,1,WOOHO
2018-11-04 00:59:17,965,1,WOOHO
2018-11-04 00:59:18,970,1,WOOHO
2018-11-04 00:59:19,974,1,WOOHO
2018-11-04 00:59:20,978,1,WOOHO
2018-11-04 00:59:21,981,1,WOOHO
2018-11-04 00:59:22,987,1,WOOHO
2018-11-04 00:59:23,990,1,WOOHO
2018-11-04 00:59:24,995,1,WOOHO
2018-11-04 00:59:25,999,1,WOOHO
2018-11-04 00:59:27,004,1,WOOHO
2018-11-04 00:59:28,007,1,WOOHO
2018-11-04 00:59:29,013,1,WOOHO
2018-11-04 00:59:30,018,1,WOOHO
2018-11-04 00:59:31,022,1,WOOHO
2018-11-04 00:59:32,026,1,WOOHO
2018-11-04 00:59:33,032,1,WOOHO
2018-11-04 00:59:34,039,1,WOOHO
2018-11-04 00:59:35,042,1,WOOHO
2018-11-04 00:59:36,046,1,WOOHO
2018-11-04 00:59:37,051,1,WOOHO
2018-11-04 00:59:38,056,1,WOOHO

View file

@ -0,0 +1,106 @@
2018-11-04 00:59:39,060,1,WOOHO
2018-11-04 00:59:40,066,1,WOOHO
2018-11-04 00:59:41,070,1,WOOHO
2018-11-04 00:59:42,073,1,WOOHO
2018-11-04 00:59:43,078,1,WOOHO
2018-11-04 00:59:44,079,1,WOOHO
2018-11-04 00:59:45,084,1,WOOHO
2018-11-04 00:59:46,088,1,WOOHO
2018-11-04 00:59:47,094,1,WOOHO
2018-11-04 00:59:48,100,1,WOOHO
2018-11-04 00:59:49,104,1,WOOHO
2018-11-04 00:59:50,107,1,WOOHO
2018-11-04 00:59:51,111,1,WOOHO
2018-11-04 00:59:52,118,1,WOOHO
2018-11-04 00:59:53,123,1,WOOHO
2018-11-04 00:59:54,125,1,WOOHO
2018-11-04 00:59:55,131,1,WOOHO
2018-11-04 00:59:56,134,1,WOOHO
2018-11-04 00:59:57,135,1,WOOHO
2018-11-04 00:59:58,141,1,WOOHO
2018-11-04 00:59:59,144,1,WOOHO
2018-11-04 01:00:00,149,1,WOOHO
2018-11-04 01:00:01,154,1,WOOHO
2018-11-04 01:00:02,158,1,WOOHO
2018-11-04 01:00:03,162,1,WOOHO
2018-11-04 01:00:04,165,1,WOOHO
2018-11-04 01:00:05,171,1,WOOHO
2018-11-04 01:00:06,173,1,WOOHO
2018-11-04 01:00:07,179,1,WOOHO
2018-11-04 01:00:08,180,1,WOOHO
2018-11-04 01:00:09,182,1,WOOHO
2018-11-04 01:00:10,187,1,WOOHO
2018-11-04 01:00:11,191,1,WOOHO
2018-11-04 01:00:12,195,1,WOOHO
2018-11-04 01:00:13,199,1,WOOHO
2018-11-04 01:00:14,204,1,WOOHO
2018-11-04 01:00:15,209,1,WOOHO
2018-11-04 01:00:16,213,1,WOOHO
2018-11-04 01:00:17,216,1,WOOHO
2018-11-04 01:00:18,220,1,WOOHO
2018-11-04 01:00:19,225,1,WOOHO
2018-11-04 01:00:20,230,1,WOOHO
2018-11-04 01:00:21,231,1,WOOHO
2018-11-04 01:00:22,236,1,WOOHO
2018-11-04 01:00:23,239,1,WOOHO
2018-11-04 01:00:24,240,1,WOOHO
2018-11-04 01:00:25,242,1,WOOHO
2018-11-04 01:00:26,247,1,WOOHO
2018-11-04 01:00:27,252,1,WOOHO
2018-11-04 01:00:28,257,1,WOOHO
2018-11-04 01:00:31,798,1,WOOHO
2018-11-04 01:00:32,804,1,WOOHO
2018-11-04 01:00:33,808,1,WOOHO
2018-11-04 01:00:34,813,1,WOOHO
2018-11-04 01:00:35,817,1,WOOHO
2018-11-04 01:00:36,821,1,WOOHO
2018-11-04 01:00:37,825,1,WOOHO
2018-11-04 01:00:38,829,1,WOOHO
2018-11-04 01:00:39,831,1,WOOHO
2018-11-04 01:00:40,833,1,WOOHO
2018-11-04 01:00:41,836,1,WOOHO
2018-11-04 01:00:42,840,1,WOOHO
2018-11-04 01:00:43,845,1,WOOHO
2018-11-04 01:00:44,850,1,WOOHO
2018-11-04 01:00:45,854,1,WOOHO
2018-11-04 01:00:46,857,1,WOOHO
2018-11-04 01:00:47,860,1,WOOHO
2018-11-04 01:00:48,865,1,WOOHO
2018-11-04 01:00:49,871,1,WOOHO
2018-11-04 01:00:50,875,1,WOOHO
2018-11-04 01:00:51,880,1,WOOHO
2018-11-04 01:00:52,885,1,WOOHO
2018-11-04 01:00:53,890,1,WOOHO
2018-11-04 01:00:54,893,1,WOOHO
2018-11-04 01:00:55,894,1,WOOHO
2018-11-04 01:00:56,898,1,WOOHO
2018-11-04 01:00:57,904,1,WOOHO
2018-11-04 01:00:58,908,1,WOOHO
2018-11-04 01:00:59,912,1,WOOHO
2018-11-04 01:01:00,917,1,WOOHO
2018-11-04 01:01:01,922,1,WOOHO
2018-11-04 01:01:02,928,1,WOOHO
2018-11-04 01:01:03,932,1,WOOHO
2018-11-04 01:01:04,936,1,WOOHO
2018-11-04 01:01:05,941,1,WOOHO
2018-11-04 01:01:06,947,1,WOOHO
2018-11-04 01:01:07,951,1,WOOHO
2018-11-04 01:01:08,954,1,WOOHO
2018-11-04 01:01:09,957,1,WOOHO
2018-11-04 01:01:10,960,1,WOOHO
2018-11-04 01:01:11,965,1,WOOHO
2018-11-04 01:01:12,970,1,WOOHO
2018-11-04 01:01:13,973,1,WOOHO
2018-11-04 01:01:14,977,1,WOOHO
2018-11-04 01:01:15,981,1,WOOHO
2018-11-04 01:01:16,986,1,WOOHO
2018-11-04 01:01:17,988,1,WOOHO
2018-11-04 01:01:18,994,1,WOOHO
2018-11-04 01:01:19,997,1,WOOHO
2018-11-04 01:01:20,999,1,WOOHO
2018-11-04 01:01:22,005,1,WOOHO
2018-11-04 01:01:23,011,1,WOOHO
2018-11-04 01:01:24,013,1,WOOHO
2018-11-04 01:01:25,018,1,WOOHO
2018-11-04 01:01:26,024,1,WOOHO
2018-11-04 01:01:27,028,1,WOOHO

View file

@ -0,0 +1,90 @@
2018-11-04 01:01:28,031,1,WOOHO
2018-11-04 01:01:29,034,1,WOOHO
2018-11-04 01:01:30,038,1,WOOHO
2018-11-04 01:01:31,043,1,WOOHO
2018-11-04 01:01:32,050,1,WOOHO
2018-11-04 01:01:33,054,1,WOOHO
2018-11-04 01:01:34,057,1,WOOHO
2018-11-04 01:01:35,062,1,WOOHO
2018-11-04 01:01:36,065,1,WOOHO
2018-11-04 01:01:37,068,1,WOOHO
2018-11-04 01:01:38,071,1,WOOHO
2018-11-04 01:01:39,075,1,WOOHO
2018-11-04 01:01:40,080,1,WOOHO
2018-11-04 01:01:41,082,1,WOOHO
2018-11-04 01:01:42,086,1,WOOHO
2018-11-04 01:01:43,091,1,WOOHO
2018-11-04 01:01:44,095,1,WOOHO
2018-11-04 01:01:45,097,1,WOOHO
2018-11-04 01:01:46,101,1,WOOHO
2018-11-04 01:01:47,106,1,WOOHO
2018-11-04 01:01:48,112,1,WOOHO
2018-11-04 01:01:49,114,1,WOOHO
2018-11-04 01:01:50,119,1,WOOHO
2018-11-04 01:01:51,124,1,WOOHO
2018-11-04 01:01:52,132,1,WOOHO
2018-11-04 01:01:53,136,1,WOOHO
2018-11-04 01:01:54,139,1,WOOHO
2018-11-04 01:01:55,143,1,WOOHO
2018-11-04 01:01:56,146,1,WOOHO
2018-11-04 01:01:57,152,1,WOOHO
2018-11-04 01:01:58,156,1,WOOHO
2018-11-04 01:01:59,161,1,WOOHO
2018-11-04 01:02:00,165,1,WOOHO
2018-11-04 01:02:01,171,1,WOOHO
2018-11-04 01:02:02,172,1,WOOHO
2018-11-04 01:02:03,176,1,WOOHO
2018-11-04 01:02:04,182,1,WOOHO
2018-11-04 01:02:05,188,1,WOOHO
2018-11-04 01:02:06,189,1,WOOHO
2018-11-04 01:02:07,190,1,WOOHO
2018-11-04 01:02:08,196,1,WOOHO
2018-11-04 01:02:09,204,1,WOOHO
2018-11-04 01:02:10,207,1,WOOHO
2018-11-04 01:02:11,211,1,WOOHO
2018-11-04 01:02:12,214,1,WOOHO
2018-11-04 01:02:13,220,1,WOOHO
2018-11-04 01:02:14,225,1,WOOHO
2018-11-04 01:02:15,232,1,WOOHO
2018-11-04 01:02:16,236,1,WOOHO
2018-11-04 01:02:17,242,1,WOOHO
2018-11-04 01:02:18,246,1,WOOHO
2018-11-04 01:02:19,250,1,WOOHO
2018-11-04 01:02:20,256,1,WOOHO
2018-11-04 01:02:21,260,1,WOOHO
2018-11-04 01:02:24,816,1,WOOHO
2018-11-04 01:02:25,821,1,WOOHO
2018-11-04 01:02:26,827,1,WOOHO
2018-11-04 01:02:27,830,1,WOOHO
2018-11-04 01:02:28,833,1,WOOHO
2018-11-04 01:02:29,838,1,WOOHO
2018-11-04 01:02:30,842,1,WOOHO
2018-11-04 01:02:31,845,1,WOOHO
2018-11-04 01:02:32,851,1,WOOHO
2018-11-04 01:02:33,855,1,WOOHO
2018-11-04 01:02:34,859,1,WOOHO
2018-11-04 01:02:35,862,1,WOOHO
2018-11-04 01:02:36,865,1,WOOHO
2018-11-04 01:02:37,871,1,WOOHO
2018-11-04 01:02:38,878,1,WOOHO
2018-11-04 01:02:39,878,1,WOOHO
2018-11-04 01:02:40,881,1,WOOHO
2018-11-04 01:02:41,883,1,WOOHO
2018-11-04 01:02:42,888,1,WOOHO
2018-11-04 01:02:43,892,1,WOOHO
2018-11-04 01:02:44,896,1,WOOHO
2018-11-04 01:02:45,900,1,WOOHO
2018-11-04 01:02:46,906,1,WOOHO
2018-11-04 01:02:47,912,1,WOOHO
2018-11-04 01:02:48,915,1,WOOHO
2018-11-04 01:02:49,920,1,WOOHO
2018-11-04 01:02:50,924,1,WOOHO
2018-11-04 01:02:51,931,1,WOOHO
2018-11-04 01:02:52,936,1,WOOHO
2018-11-04 01:02:53,941,1,WOOHO
2018-11-04 01:02:54,946,1,WOOHO
2018-11-04 01:02:55,950,1,WOOHO
2018-11-04 01:02:56,956,1,WOOHO
2018-11-04 01:02:57,960,1,WOOHO
2018-11-04 01:02:58,964,1,WOOHO
2018-11-04 01:02:59,966,1,WOOHO

View file

@ -0,0 +1,18 @@
2018-11-04 01:08:19,659,1,WOOHO
2018-11-04 01:08:20,668,1,WOOHO
2018-11-04 01:08:21,673,1,WOOHO
2018-11-04 01:08:22,681,1,WOOHO
2018-11-04 01:08:23,684,1,WOOHO
2018-11-04 01:08:24,689,1,WOOHO
2018-11-04 01:08:25,693,1,WOOHO
2018-11-04 01:08:26,694,1,WOOHO
2018-11-04 01:08:27,699,1,WOOHO
2018-11-04 01:08:28,704,1,WOOHO
2018-11-04 01:08:29,708,1,WOOHO
2018-11-04 01:08:30,712,1,WOOHO
2018-11-04 01:08:31,718,1,WOOHO
2018-11-04 01:08:32,723,1,WOOHO
2018-11-04 01:08:36,712,1,WOOHO
2018-11-04 01:08:37,716,1,WOOHO
2018-11-04 01:08:38,721,1,WOOHO
2018-11-04 01:08:39,726,1,WOOHO