2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
<!DOCTYPE html>
<!-- [if IE 8]><html class="no - js lt - ie9" lang="en" > <![endif] -->
<!-- [if gt IE 8]><! --> < html class = "no-js" lang = "en" > <!-- <![endif] -->
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > Kettle — CraftBeerPi 4.0 documentation< / title >
< link rel = "stylesheet" href = "_static/css/theme.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/pygments.css" type = "text/css" / >
2018-12-08 14:21:00 +01:00
< link rel = "index" title = "Index" href = "genindex.html" / >
< link rel = "search" title = "Search" href = "search.html" / >
< link rel = "next" title = "Properties" href = "properties.html" / >
2018-12-09 22:20:33 +01:00
< link rel = "prev" title = "Brewing Step" href = "step.html" / >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< script src = "_static/js/modernizr.min.js" > < / script >
< / head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
< a href = "index.html" class = "icon icon-home" > CraftBeerPi
< / a >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div >
< div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "main navigation" >
< ul class = "current" >
< li class = "toctree-l1" > < a class = "reference internal" href = "install.html" > Installation< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "core.html" > Core< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "actor.html" > Actor< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "sensor.html" > Sensor< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "step.html" > Brewing Step< / a > < / li >
< li class = "toctree-l1 current" > < a class = "current reference internal" href = "#" > Kettle< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "#kettlecontroller" > KettleController< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#cbpikettlelogic" > CBPiKettleLogic< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#custom-logic" > Custom Logic< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "properties.html" > Properties< / a > < / li >
2019-01-05 23:27:29 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "standards.html" > Standard & Guidelines< / a > < / li >
2019-01-08 20:40:03 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "webapis.html" > REST API< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "webapis.html#websocket-api" > WebSocket API< / a > < / li >
2018-12-09 22:20:33 +01:00
< / ul >
< / div >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" >
< nav class = "wy-nav-top" aria-label = "top navigation" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "index.html" > CraftBeerPi< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< div role = "navigation" aria-label = "breadcrumbs navigation" >
< ul class = "wy-breadcrumbs" >
< li > < a href = "index.html" > Docs< / a > » < / li >
< li > Kettle< / li >
< li class = "wy-breadcrumbs-aside" >
< a href = "_sources/kettle_controller.rst.txt" rel = "nofollow" > View page source< / a >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< / li >
< / ul >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< hr / >
< / div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
2018-12-08 14:21:00 +01:00
< div class = "section" id = "kettle" >
< h1 > Kettle< a class = "headerlink" href = "#kettle" title = "Permalink to this headline" > ¶< / a > < / h1 >
< div class = "section" id = "kettlecontroller" >
< h2 > KettleController< a class = "headerlink" href = "#kettlecontroller" title = "Permalink to this headline" > ¶< / a > < / h2 >
< dl class = "class" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController" >
< em class = "property" > class < / em > < code class = "descclassname" > cbpi.controller.kettle_controller.< / code > < code class = "descname" > KettleController< / code > < span class = "sig-paren" > (< / span > < em > cbpi< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController" title = "Permalink to this definition" > ¶< / a > < / dt >
< dd > < p > Bases: < code class = "xref py py-class docutils literal notranslate" > < span class = "pre" > cbpi.controller.crud_controller.CRUDController< / span > < / code > < / p >
2018-12-08 14:21:00 +01:00
< p > The main kettle controller< / p >
2019-01-05 23:27:29 +01:00
< dl class = "attribute" >
< dt id = "cbpi.controller.kettle_controller.KettleController._abc_impl" >
< code class = "descname" > _abc_impl< / code > < em class = "property" > = < _abc_data object> < / em > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController._abc_impl" title = "Permalink to this definition" > ¶< / a > < / dt >
< dd > < / dd > < / dl >
< dl class = "method" >
< dt id = "cbpi.controller.kettle_controller.KettleController._is_logic_running" >
< code class = "descname" > _is_logic_running< / code > < span class = "sig-paren" > (< / span > < em > kettle_id< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController._is_logic_running" title = "Permalink to this definition" > ¶< / a > < / dt >
< dd > < / dd > < / dl >
2018-12-08 14:21:00 +01:00
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.agitator_off" >
< code class = "descname" > agitator_off< / code > < span class = "sig-paren" > (< / span > < em > id< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.agitator_off" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.agitator_on" >
< code class = "descname" > agitator_on< / code > < span class = "sig-paren" > (< / span > < em > id< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.agitator_on" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.get_state" >
< code class = "descname" > get_state< / code > < span class = "sig-paren" > (< / span > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.get_state" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.get_temp" >
< code class = "descname" > get_temp< / code > < span class = "sig-paren" > (< / span > < em > id< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.get_temp" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.get_traget_temp" >
< code class = "descname" > get_traget_temp< / code > < span class = "sig-paren" > (< / span > < em > id< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.get_traget_temp" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.handle_automtic_event" >
< code class = "descname" > handle_automtic_event< / code > < span class = "sig-paren" > (< / span > < em > id< / em > , < em > **kwargs< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.handle_automtic_event" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < p > Method to handle the event ‘ kettle/+/automatic’ < / p >
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field-odd field" > < th class = "field-name" > Parameters:< / th > < td class = "field-body" > < ul class = "first simple" >
< li > < strong > id< / strong > – The kettle id< / li >
< li > < strong > kwargs< / strong > – < / li >
< / ul >
< / td >
< / tr >
< tr class = "field-even field" > < th class = "field-name" > Returns:< / th > < td class = "field-body" > < p class = "first last" > None< / p >
< / td >
< / tr >
< / tbody >
< / table >
< / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.heater_off" >
< code class = "descname" > heater_off< / code > < span class = "sig-paren" > (< / span > < em > id< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.heater_off" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < p > Convenience Method to switch the heater of a kettle off< / p >
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field-odd field" > < th class = "field-name" > Parameters:< / th > < td class = "field-body" > < strong > id< / strong > – < / td >
< / tr >
< tr class = "field-even field" > < th class = "field-name" > Returns:< / th > < td class = "field-body" > < / td >
< / tr >
< / tbody >
< / table >
< / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.heater_on" >
< code class = "descname" > heater_on< / code > < span class = "sig-paren" > (< / span > < em > id< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.heater_on" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < p > Convenience Method to switch the heater of a kettle on< / p >
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field-odd field" > < th class = "field-name" > Parameters:< / th > < td class = "field-body" > < strong > id< / strong > – the kettle id< / td >
< / tr >
< tr class = "field-even field" > < th class = "field-name" > Returns:< / th > < td class = "field-body" > (boolean, string)< / td >
< / tr >
< / tbody >
< / table >
< / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.init" >
< code class = "descname" > init< / code > < span class = "sig-paren" > (< / span > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.init" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < p > This method initializes all actors during startup. It creates actor instances< / p >
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field-odd field" > < th class = "field-name" > Returns:< / th > < td class = "field-body" > < / td >
< / tr >
< / tbody >
< / table >
< / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.job_stop" >
< code class = "descname" > job_stop< / code > < span class = "sig-paren" > (< / span > < em > key< / em > , < em > **kwargs< / em > < span class = "sig-paren" > )< / span > → None< a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.job_stop" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < / dd > < / dl >
< dl class = "attribute" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.model" >
< code class = "descname" > model< / code > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.model" title = "Permalink to this definition" > ¶< / a > < / dt >
< dd > < p > alias of < code class = "xref py py-class docutils literal notranslate" > < span class = "pre" > cbpi.database.model.KettleModel< / span > < / code > < / p >
2018-12-08 14:21:00 +01:00
< / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.controller.kettle_controller.KettleController.toggle_automtic" >
< code class = "descname" > toggle_automtic< / code > < span class = "sig-paren" > (< / span > < em > id< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.controller.kettle_controller.KettleController.toggle_automtic" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < p > Convenience Method to toggle automatic< / p >
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field-odd field" > < th class = "field-name" > Parameters:< / th > < td class = "field-body" > < strong > id< / strong > – kettle id as int< / td >
< / tr >
< tr class = "field-even field" > < th class = "field-name" > Returns:< / th > < td class = "field-body" > (boolean, string)< / td >
< / tr >
< / tbody >
< / table >
< / dd > < / dl >
< / dd > < / dl >
< / div >
< div class = "section" id = "cbpikettlelogic" >
< h2 > CBPiKettleLogic< a class = "headerlink" href = "#cbpikettlelogic" title = "Permalink to this headline" > ¶< / a > < / h2 >
< dl class = "class" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.api.CBPiKettleLogic" >
< em class = "property" > class < / em > < code class = "descclassname" > cbpi.api.< / code > < code class = "descname" > CBPiKettleLogic< / code > < span class = "sig-paren" > (< / span > < em > *args< / em > , < em > **kwds< / em > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.api.CBPiKettleLogic" title = "Permalink to this definition" > ¶< / a > < / dt >
< dd > < p > Bases: < code class = "xref py py-class docutils literal notranslate" > < span class = "pre" > cbpi.api.extension.CBPiExtension< / span > < / code > < / p >
2018-12-08 14:21:00 +01:00
< p > Base Class for a Kettle logic.< / p >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.api.CBPiKettleLogic.init" >
< code class = "descname" > init< / code > < span class = "sig-paren" > (< / span > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.api.CBPiKettleLogic.init" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < p > Code which will be executed when the logic is initialised. Needs to be overwritten by the implementing logic< / p >
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field-odd field" > < th class = "field-name" > Returns:< / th > < td class = "field-body" > None< / td >
< / tr >
< / tbody >
< / table >
< / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.api.CBPiKettleLogic.run" >
< code class = "descname" > run< / code > < span class = "sig-paren" > (< / span > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.api.CBPiKettleLogic.run" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < p > This method is running as background process when logic is started.
Typically a while loop responsible that the method keeps running< / p >
< blockquote >
< div > < dl class = "docutils" >
< dt > while self.running:< / dt >
< dd > await asyncio.sleep(1)< / dd >
< / dl >
< / div > < / blockquote >
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field-odd field" > < th class = "field-name" > Returns:< / th > < td class = "field-body" > None< / td >
< / tr >
< / tbody >
< / table >
< / dd > < / dl >
< dl class = "method" >
2019-01-05 23:27:29 +01:00
< dt id = "cbpi.api.CBPiKettleLogic.stop" >
< code class = "descname" > stop< / code > < span class = "sig-paren" > (< / span > < span class = "sig-paren" > )< / span > < a class = "headerlink" href = "#cbpi.api.CBPiKettleLogic.stop" title = "Permalink to this definition" > ¶< / a > < / dt >
2018-12-08 14:21:00 +01:00
< dd > < p > Code which will be executed when the logic is stopped. Needs to be overwritten by the implementing logic< / p >
< table class = "docutils field-list" frame = "void" rules = "none" >
< col class = "field-name" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tr class = "field-odd field" > < th class = "field-name" > Returns:< / th > < td class = "field-body" > None< / td >
< / tr >
< / tbody >
< / table >
< / dd > < / dl >
< / dd > < / dl >
< / div >
< div class = "section" id = "custom-logic" >
< h2 > Custom Logic< a class = "headerlink" href = "#custom-logic" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "literal-block-wrapper docutils container" id = "init-py" >
< div class = "code-block-caption" > < span class = "caption-text" > __init__.py< / span > < a class = "headerlink" href = "#init-py" title = "Permalink to this code" > ¶< / a > < / div >
< div class = "highlight-python notranslate" > < table class = "highlighttable" > < tr > < td class = "linenos" > < div class = "linenodiv" > < pre > 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
2019-01-05 23:27:29 +01:00
81< / pre > < / div > < / td > < td class = "code" > < div class = "highlight" > < pre > < span > < / span > < span class = "kn" > import< / span > < span class = "nn" > asyncio< / span >
2018-12-08 14:21:00 +01:00
2019-01-05 23:27:29 +01:00
< span class = "kn" > from< / span > < span class = "nn" > cbpi.api< / span > < span class = "kn" > import< / span > < span class = "o" > *< / span >
2018-12-08 14:21:00 +01:00
< span class = "k" > class< / span > < span class = "nc" > CustomLogic< / span > < span class = "p" > (< / span > < span class = "n" > CBPiKettleLogic< / span > < span class = "p" > ):< / span >
< span class = "n" > test< / span > < span class = "o" > =< / span > < span class = "n" > Property< / span > < span class = "o" > .< / span > < span class = "n" > Number< / span > < span class = "p" > (< / span > < span class = "n" > label< / span > < span class = "o" > =< / span > < span class = "s2" > " Test" < / span > < span class = "p" > )< / span >
< span class = "n" > running< / span > < span class = "o" > =< / span > < span class = "bp" > True< / span >
< span class = "n" > async< / span > < span class = "k" > def< / span > < span class = "nf" > wait_for_event< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > topic< / span > < span class = "p" > ,< / span > < span class = "n" > callback< / span > < span class = "o" > =< / span > < span class = "bp" > None< / span > < span class = "p" > ,< / span > < span class = "n" > timeout< / span > < span class = "o" > =< / span > < span class = "bp" > None< / span > < span class = "p" > ):< / span >
< span class = "n" > future_obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > cbpi< / span > < span class = "o" > .< / span > < span class = "n" > app< / span > < span class = "o" > .< / span > < span class = "n" > loop< / span > < span class = "o" > .< / span > < span class = "n" > create_future< / span > < span class = "p" > ()< / span >
< span class = "n" > async< / span > < span class = "k" > def< / span > < span class = "nf" > default_callback< / span > < span class = "p" > (< / span > < span class = "nb" > id< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > future_obj< / span > < span class = "o" > .< / span > < span class = "n" > set_result< / span > < span class = "p" > (< / span > < span class = "s2" > " HELLO" < / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > callback< / span > < span class = "ow" > is< / span > < span class = "bp" > None< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > cbpi< / span > < span class = "o" > .< / span > < span class = "n" > bus< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > topic< / span > < span class = "o" > =< / span > < span class = "n" > topic< / span > < span class = "p" > ,< / span > < span class = "n" > method< / span > < span class = "o" > =< / span > < span class = "n" > default_callback< / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "n" > callback< / span > < span class = "o" > .< / span > < span class = "n" > future< / span > < span class = "o" > =< / span > < span class = "n" > future_obj< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > cbpi< / span > < span class = "o" > .< / span > < span class = "n" > bus< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > topic< / span > < span class = "o" > =< / span > < span class = "n" > topic< / span > < span class = "p" > ,< / span > < span class = "n" > method< / span > < span class = "o" > =< / span > < span class = "n" > callback< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > timeout< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "bp" > None< / span > < span class = "p" > :< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
2019-01-05 23:27:29 +01:00
2018-12-08 14:21:00 +01:00
< span class = "n" > await< / span > < span class = "n" > asyncio< / span > < span class = "o" > .< / span > < span class = "n" > wait_for< / span > < span class = "p" > (< / span > < span class = "n" > future_obj< / span > < span class = "p" > ,< / span > < span class = "n" > timeout< / span > < span class = "o" > =< / span > < span class = "n" > timeout< / span > < span class = "p" > )< / span >
2019-01-05 23:27:29 +01:00
2018-12-08 14:21:00 +01:00
< span class = "k" > return< / span > < span class = "n" > future_obj< / span > < span class = "o" > .< / span > < span class = "n" > result< / span > < span class = "p" > ()< / span >
< span class = "k" > except< / span > < span class = "n" > asyncio< / span > < span class = "o" > .< / span > < span class = "n" > TimeoutError< / span > < span class = "p" > :< / span >
2019-01-05 23:27:29 +01:00
< span class = "k" > pass< / span >
2018-12-08 14:21:00 +01:00
< span class = "k" > else< / span > < span class = "p" > :< / span >
2019-01-05 23:27:29 +01:00
2018-12-08 14:21:00 +01:00
< span class = "n" > await< / span > < span class = "n" > future_obj< / span >
< span class = "k" > return< / span > < span class = "n" > future_obj< / span > < span class = "o" > .< / span > < span class = "n" > result< / span > < span class = "p" > ()< / span >
< span class = "n" > async< / span > < span class = "k" > def< / span > < span class = "nf" > run< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > async< / span > < span class = "k" > def< / span > < span class = "nf" > my_callback< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "o" > ==< / span > < span class = "mi" > 5< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > cbpi< / span > < span class = "o" > .< / span > < span class = "n" > bus< / span > < span class = "o" > .< / span > < span class = "n" > unregister< / span > < span class = "p" > (< / span > < span class = "n" > my_callback< / span > < span class = "p" > )< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " future" < / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > set_result< / span > < span class = "p" > (< / span > < span class = "s2" > " AMAZING" < / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
2019-01-05 23:27:29 +01:00
< span class = "k" > pass< / span >
2018-12-08 14:21:00 +01:00
< span class = "n" > result< / span > < span class = "o" > =< / span > < span class = "n" > await< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > wait_for_event< / span > < span class = "p" > (< / span > < span class = "s2" > " sensor/1" < / span > < span class = "p" > ,< / span > < span class = "n" > callback< / span > < span class = "o" > =< / span > < span class = "n" > my_callback< / span > < span class = "p" > )< / span >
2019-01-05 23:27:29 +01:00
2018-12-08 14:21:00 +01:00
< span class = "sd" > ' ' ' < / span >
< span class = "sd" > while self.running:< / span >
< span class = "sd" > < / span >
< span class = "sd" > < / span >
< span class = "sd" > print(" RUN" , self.test)< / span >
< span class = "sd" > value = await self.cbpi.sensor.get_value(1)< / span >
< span class = "sd" > print(value)< / span >
< span class = "sd" > if value > = 10:< / span >
< span class = "sd" > break< / span >
< span class = "sd" > await asyncio.sleep(1)< / span >
< span class = "sd" > ' ' ' < / span >
2019-01-05 23:27:29 +01:00
2018-12-08 14:21:00 +01:00
< span class = "k" > def< / span > < span class = "nf" > setup< / span > < span class = "p" > (< / span > < span class = "n" > cbpi< / span > < span class = "p" > ):< / span >
< span class = "sd" > ' ' ' < / span >
< span class = "sd" > This method is called by the server during startup < / span >
< span class = "sd" > Here you need to register your plugins at the server< / span >
< span class = "sd" > < / span >
< span class = "sd" > :param cbpi: the cbpi core < / span >
< span class = "sd" > :return: < / span >
< span class = "sd" > ' ' ' < / span >
< span class = "n" > cbpi< / span > < span class = "o" > .< / span > < span class = "n" > plugin< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "s2" > " CustomKettleLogic" < / span > < span class = "p" > ,< / span > < span class = "n" > CustomLogic< / span > < span class = "p" > )< / span >
< / pre > < / div >
< / td > < / tr > < / table > < / div >
< / div >
< p > config.yaml< / p >
< div class = "highlight-yaml notranslate" > < table class = "highlighttable" > < tr > < td class = "linenos" > < div class = "linenodiv" > < pre > 1
2< / pre > < / div > < / td > < td class = "code" > < div class = "highlight" > < pre > < span > < / span > < span class = "l l-Scalar l-Scalar-Plain" > name< / span > < span class = "p p-Indicator" > :< / span > < span class = "l l-Scalar l-Scalar-Plain" > DummyKettleLogic< / span >
< span class = "l l-Scalar l-Scalar-Plain" > version< / span > < span class = "p p-Indicator" > :< / span > < span class = "l l-Scalar l-Scalar-Plain" > 4< / span >
< / pre > < / div >
< / td > < / tr > < / table > < / div >
< / div >
< / div >
2018-12-09 22:20:33 +01:00
< / div >
2018-12-08 14:21:00 +01:00
< / div >
2018-12-09 22:20:33 +01:00
< footer >
< div class = "rst-footer-buttons" role = "navigation" aria-label = "footer navigation" >
< a href = "properties.html" class = "btn btn-neutral float-right" title = "Properties" accesskey = "n" rel = "next" > Next < span class = "fa fa-arrow-circle-right" > < / span > < / a >
< a href = "step.html" class = "btn btn-neutral" title = "Brewing Step" accesskey = "p" rel = "prev" > < span class = "fa fa-arrow-circle-left" > < / span > Previous< / a >
< / div >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< hr / >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< div role = "contentinfo" >
< p >
© Copyright 2018, Manuel Fritsch
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< / p >
< / div >
Built with < a href = "http://sphinx-doc.org/" > Sphinx< / a > using a < a href = "https://github.com/rtfd/sphinx_rtd_theme" > theme< / a > provided by < a href = "https://readthedocs.org" > Read the Docs< / a > .
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< / footer >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< / div >
< / div >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< / section >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< / div >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< script type = "text/javascript" id = "documentation_options" data-url_root = "./" src = "_static/documentation_options.js" > < / script >
< script type = "text/javascript" src = "_static/jquery.js" > < / script >
< script type = "text/javascript" src = "_static/underscore.js" > < / script >
< script type = "text/javascript" src = "_static/doctools.js" > < / script >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< script type = "text/javascript" src = "_static/js/theme.js" > < / script >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< script type = "text/javascript" >
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
< / script >
2018-12-08 14:21:00 +01:00
2018-12-09 22:20:33 +01:00
< / body >
2018-12-08 14:21:00 +01:00
< / html >