From 58a3a0ded3fffaa68252cf0ead4e4028319a5451 Mon Sep 17 00:00:00 2001 From: manuel83 Date: Fri, 16 Nov 2018 21:48:57 +0100 Subject: [PATCH] config added --- .idea/workspace.xml | 49 +++++++---- docs/.nojekyll => .nojekyll | 0 docs/_images/picture.jpeg | Bin 0 -> 80328 bytes docs/_sources/actor.rst.txt | 30 +++++-- docs/_sources/index.rst.txt | 21 ----- docs/_sources/sensor.rst.txt | 18 +++- docs/actor.html | 156 ++++++++++++++++++++++++++++++--- docs/genindex.html | 42 +-------- docs/index.html | 162 ++--------------------------------- docs/objects.inv | Bin 457 -> 394 bytes docs/py-modindex.html | 11 +-- docs/search.html | 4 +- docs/searchindex.js | 2 +- docs/sensor.html | 23 +++-- docs/step.html | 8 +- docs_src/source/index.rst | 21 ----- 16 files changed, 255 insertions(+), 292 deletions(-) rename docs/.nojekyll => .nojekyll (100%) create mode 100644 docs/_images/picture.jpeg diff --git a/.idea/workspace.xml b/.idea/workspace.xml index baa4fef..c20bffd 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,7 +2,7 @@ - + - + - - + + @@ -167,12 +167,12 @@ - + - + @@ -287,6 +287,7 @@ @@ -342,6 +343,24 @@ \ No newline at end of file diff --git a/docs/.nojekyll b/.nojekyll similarity index 100% rename from docs/.nojekyll rename to .nojekyll diff --git a/docs/_images/picture.jpeg b/docs/_images/picture.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..36eb6a128d97ff6abbc71f91ca265f852a4b8d7a GIT binary patch literal 80328 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 literal 0 HcmV?d00001 diff --git a/docs/_sources/actor.rst.txt b/docs/_sources/actor.rst.txt index 0fed2e7..238c446 100644 --- a/docs/_sources/actor.rst.txt +++ b/docs/_sources/actor.rst.txt @@ -1,11 +1,31 @@ -Actor API +Actor ========= -Test -^^^^ +Architecture +^^^^^^^^^^^^ -HELLO WORLD +.. image:: picture.jpeg + :scale: 50% + +ActorController +^^^^^^^^^^^^^^^ .. automodule:: core.controller.actor_controller - :members: \ No newline at end of file + :members: + +Custom Actor +^^^^^^^^^^^^^ + +.. literalinclude:: ../../core/extension/dummy/__init__.py + :caption: __init__.py + :name: __init__-py + :language: python + :linenos: + + +config.yaml + +.. literalinclude:: ../../core/extension/dummy/config.yaml + :language: yaml + :linenos: \ No newline at end of file diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt index 21379e9..ee94958 100644 --- a/docs/_sources/index.rst.txt +++ b/docs/_sources/index.rst.txt @@ -6,27 +6,6 @@ Welcome to CraftBeerPi's documentation! ======================================= -Documentation -^^^^^^^^^^^^^ - -.. automodule:: core.craftbeerpi - :members: - -.. automodule:: core.controller.notification_controller - :members: - -Example Component -^^^^^^^^^^^^^^^^^ - -.. literalinclude:: ../../core/extension/comp/__init__.py - :language: python - - -Config YAML -^^^^^^^^^^^ - -.. literalinclude:: ../../core/extension/comp/config.yaml - :language: yaml .. toctree:: :maxdepth: 1 diff --git a/docs/_sources/sensor.rst.txt b/docs/_sources/sensor.rst.txt index 8b0a365..b078b8f 100644 --- a/docs/_sources/sensor.rst.txt +++ b/docs/_sources/sensor.rst.txt @@ -1,2 +1,16 @@ -Sensor API -========== \ No newline at end of file +Sensor +========== + +Architecture +^^^^ + + + +SensorController +^^^^^^^^^^^^^^^^ + +.. automodule:: core.controller.sensor_controller + :members: + +Custom Sensor +^^^^^^^^^^^^^ \ No newline at end of file diff --git a/docs/actor.html b/docs/actor.html index 3d578b9..6305e22 100644 --- a/docs/actor.html +++ b/docs/actor.html @@ -6,7 +6,7 @@ - Actor API — CraftBeerPi 4.0 documentation + Actor — CraftBeerPi 4.0 documentation @@ -16,7 +16,7 @@ - + @@ -34,12 +34,15 @@

-
-

Actor API

-
-

Test

-

HELLO WORLD

-
+
+

Actor

+
+

Architecture

+_images/picture.jpeg +
+
+

ActorController

+
class core.controller.actor_controller.ActorController(cbpi)

The main actor controller

@@ -85,6 +88,137 @@
+
+
+

Custom Actor

+
+
__init__.py
+
 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
import logging
+
+from core.api import CBPiActor, Property, action, background_task
+
+
+
+class CustomActor(CBPiActor):
+
+    name = Property.Number(label="Test")
+    name1 = Property.Text(label="Test")
+    name2 = Property.Kettle(label="Test")
+
+    @background_task("s1", interval=2)
+    async def bg_job(self):
+        print("WOOH BG")
+
+    @action(key="name", parameters={})
+    def myAction(self):
+        pass
+
+    def state(self):
+        super().state()
+
+    def off(self):
+        print("OFF")
+        self.state = False
+
+    def on(self, power=100):
+
+        print("ON")
+        self.state = True
+
+
+    def __init__(self, cbpi=None):
+
+        if cbpi is None:
+            return
+
+        print("INIT MY ACTOR111111")
+        self.cfg = self.load_config()
+
+        self.logger = logging.getLogger(__file__)
+        logging.basicConfig(level=logging.INFO)
+
+        self.logger.info("########WOOHOO MY ACTOR")
+        self.cbpi = cbpi
+
+
+def setup(cbpi):
+
+    '''
+    This method is called by the server during startup 
+    Here you need to register your plugins at the server
+    
+    :param cbpi: the cbpi core 
+    :return: 
+    '''
+
+    cbpi.plugin.register("CustomActor", CustomActor)
+
+
+
+

config.yaml

+
1
+2
name: Manuel
+version: 4
+
+
@@ -106,8 +240,8 @@

Navigation

@@ -116,7 +250,7 @@
diff --git a/docs/genindex.html b/docs/genindex.html index f787499..fc62cfc 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -40,10 +40,8 @@ A | C | I - | N | O | R - | S

A

@@ -58,14 +56,10 @@
@@ -78,18 +72,6 @@ -

N

- - - -
-

O

- - -
    @@ -102,24 +84,6 @@ - -
    - -

    S

    - -
    @@ -143,8 +107,8 @@

    Navigation

    diff --git a/docs/index.html b/docs/index.html index 3a27426..c102bc5 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,7 +16,7 @@ - + @@ -35,163 +35,13 @@

    Welcome to CraftBeerPi’s documentation!

    -
    -

    Documentation

    -
    -
    -class core.craftbeerpi.CraftBeerPi
    -

    This is a Hello class docstring

    -
    -
    -notify(key, message, type='info')
    -

    This is a convinience method to send notification to the client

    - --- - - - - - -
    Parameters:
      -
    • key – notification key
    • -
    • message – notification message
    • -
    • type – notification type (info,warning,danger,successs)
    • -
    -
    Returns:

    -
    -
    - -
    -
    -register(obj, url_prefix=None)
    -

    This method parses the provided object

    - --- - - - - - -
    Parameters:
      -
    • obj – the object wich will be parsed for registration
    • -
    • url_prefix – that prefix for HTTP Endpoints
    • -
    -
    Returns:

    None

    -
    -
    - -
    -
    -register_background_task(obj)
    -

    This method parses all method for the @background_task decorator and registers the background job -which will be launched during start up of the server

    - --- - - - - - -
    Parameters:obj – the object to parse
    Returns:
    -
    - -
    -
    -register_http_endpoints(obj, url_prefix=None)
    -

    This method parses the provided object for @request_mapping decorator

    - --- - - - - - -
    Parameters:
      -
    • obj – the object which will be analyzed
    • -
    • url_prefix – the prefix which will be used for the all http endpoints of the object
    • -
    -
    Returns:

    -
    -
    - -
    -
    -setup()
    -

    This method will start the server

    - --- - - - -
    Returns:
    -
    - -
    - -
    -
    -class core.controller.notification_controller.NotificationController(cbpi)
    -

    This the notification controller

    -
    - -
    -
    -

    Example Component

    -
    from core.api.decorator import on_event
    -from core.api.extension import CBPiExtension
    -
    -class MyComp(CBPiExtension):
    -
    -    def __init__(self, cbpi):
    -        '''
    -        Initializer
    -        
    -        :param cbpi: 
    -        '''
    -        self.cbpi = cbpi
    -        # register for bus events
    -        self.cbpi.register_events(self)
    -
    -    @on_event(topic="actor/#")
    -    def listen(self, **kwargs):
    -        print("Test", kwargs)
    -
    -def setup(cbpi):
    -    '''
    -    Setup method is invoked during startup
    -    
    -    :param cbpi: the cbpi core object
    -    :return: 
    -    '''
    -    # regsiter the component to the core
    -    cbpi.plugin.register("MyComp", MyComp)
    -
    -
    -
    -
    -

    Config YAML

    -
    name: Manuel
    -version: 4
    -
    -
    -
    @@ -212,8 +62,8 @@ which will be launched during start up of the server

    Navigation

    @@ -221,7 +71,7 @@ which will be launched during start up of the server

    Related Topics

    diff --git a/docs/objects.inv b/docs/objects.inv index 5faf36eb7c6f8d5ada353af0c311443a950c9381..ba3e7950b0cd64477956d600bcc47f374c039ce0 100644 GIT binary patch delta 281 zcmV+!0p|Y61BwHXdVi5IPQ)+}MSGuO5VWzN-EP@x3#3R}P)5d?B$gacWY0>Z;~HF# zlMu&=HWnZd+RmQ;{Ac_}lSiq^u_tTMOQo57bt%9w?s}@v7U3RdQFh$h+f*y=pb+{O z3%QSlLuRS13IQIrj{mWe#u=VRMDD1*f+01{RsB4+Ch(HuAAd~)y72Q7lKN!}RTZ4EG5mKW`pm(``y7EHx4K_8l6!J9AzAht44v?-K;aBS3sUg4AK@m^_aBsiIfFD zgP`*uEG9^{g^tk`W3xA>7psXclD2+Zf3aJHr zo*l&r5?y8b@xf&L5$srv8vtkJ#l4IvbP>+4!+9;QsFbIr_v|Krc}@D!VcY_!HjHl@ zXL>CvWPba9V2fxg(83z2(cjGTfW7@IJFXt_C}zTNQs%oz;_j09dRa7}V_q~WwgDBa z2Q|5u;aH5eJy9=ne1PJn1A>NRJ^p-sdoq~&4m8FMd?<#sIa1H=%0nOl-_pjV${v{G q?KC54$^4$;Yu3Qv)qeWyq#T?v8Xi8(!cJ_%eQyepVEF~2>EPlbbg2UX diff --git a/docs/py-modindex.html b/docs/py-modindex.html index 0156df7..119a099 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -60,12 +60,7 @@
    - core.controller.notification_controller -
    - core.craftbeerpi + core.controller.sensor_controller
@@ -87,8 +82,8 @@

Navigation

diff --git a/docs/search.html b/docs/search.html index da9e3b6..c268af4 100644 --- a/docs/search.html +++ b/docs/search.html @@ -82,8 +82,8 @@

Navigation

diff --git a/docs/searchindex.js b/docs/searchindex.js index 474b9c9..0974c32 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["actor","index","sensor","step"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":1,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["actor.rst","index.rst","sensor.rst","step.rst"],objects:{"core.controller":{actor_controller:[0,0,0,"-"],notification_controller:[1,0,0,"-"]},"core.controller.actor_controller":{ActorController:[0,1,1,""]},"core.controller.actor_controller.ActorController":{init:[0,2,1,""],off:[0,2,1,""],register:[0,2,1,""]},"core.controller.notification_controller":{NotificationController:[1,1,1,""]},"core.craftbeerpi":{CraftBeerPi:[1,1,1,""]},"core.craftbeerpi.CraftBeerPi":{notify:[1,2,1,""],register:[1,2,1,""],register_background_task:[1,2,1,""],register_http_endpoints:[1,2,1,""],setup:[1,2,1,""]},core:{craftbeerpi:[1,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method"},terms:{"class":[0,1],"import":1,"new":0,"return":[0,1],The:0,__init__:1,actor:1,actor_control:0,actorcontrol:0,all:[0,1],analyz:1,api:1,background:1,background_task:1,bus:1,cbpi:[0,1],cbpiextens:1,clazz:0,client:1,control:[0,1],convini:1,core:[0,1],creat:0,danger:1,decor:1,def:1,docstr:1,dure:[0,1],endpoint:1,event:1,extens:1,from:1,hello:[0,1],http:1,info:1,init:0,initi:[0,1],instanc:0,invok:1,job:1,kei:1,kwarg:[0,1],launch:1,listen:1,main:0,manuel:1,messag:1,method:[0,1],mycomp:1,name:[0,1],none:[0,1],notif:1,notifi:1,notification_control:1,notificationcontrol:1,obj:1,object:1,off:0,on_ev:1,param:[0,1],paramet:[0,1],pars:1,plugin:1,prefix:1,print:1,provid:1,regist:[0,1],register_background_task:1,register_ev:1,register_http_endpoint:1,registr:1,regsit:1,request_map:1,self:1,send:1,sensor:1,server:1,setup:1,start:1,startup:[0,1],step:1,successs:1,test:1,thi:[0,1],topic:1,type:[0,1],url_prefix:1,used:1,version:1,warn:1,which:1,wich:1,world:0},titles:["Actor API","Welcome to CraftBeerPi\u2019s documentation!","Sensor API","Step API"],titleterms:{actor:0,api:[0,2,3],compon:1,config:1,craftbeerpi:1,document:1,exampl:1,sensor:2,step:3,test:0,welcom:1,yaml:1}}) \ No newline at end of file +Search.setIndex({docnames:["actor","index","sensor","step"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":1,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["actor.rst","index.rst","sensor.rst","step.rst"],objects:{"core.controller":{actor_controller:[0,0,0,"-"],sensor_controller:[2,0,0,"-"]},"core.controller.actor_controller":{ActorController:[0,1,1,""]},"core.controller.actor_controller.ActorController":{init:[0,2,1,""],off:[0,2,1,""],register:[0,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method"},terms:{"class":0,"import":0,"new":0,"return":0,"super":0,"true":0,The:0,__file__:0,__init__:0,action:0,actor111111:0,actor:1,actor_control:0,all:0,api:[0,1],async:0,background_task:0,basicconfig:0,bg_job:0,call:0,cbpi:0,cbpiactor:0,cfg:0,clazz:0,config:0,control:0,core:0,creat:0,customactor:0,def:0,dure:0,fals:0,from:0,getlogg:0,here:0,info:0,init:0,initi:0,instanc:0,interv:0,kei:0,kettl:0,kwarg:0,label:0,level:0,load_config:0,log:0,logger:0,main:0,manuel:0,method:0,myaction:0,name1:0,name2:0,name:0,need:0,none:0,number:0,off:0,param:0,paramet:0,pass:0,plugin:0,power:0,print:0,properti:0,regist:0,self:0,sensor:1,server:0,setup:0,startup:0,state:0,step:1,test:0,text:0,thi:0,type:0,version:0,wooh:0,woohoo:0,yaml:0,you:0,your:0},titles:["Actor","Welcome to CraftBeerPi\u2019s documentation!","Sensor","Step API"],titleterms:{actor:0,actorcontrol:0,api:3,architectur:[0,2],craftbeerpi:1,custom:[0,2],document:1,sensor:2,sensorcontrol:2,step:3,welcom:1}}) \ No newline at end of file diff --git a/docs/sensor.html b/docs/sensor.html index 1adeb17..a3a5e79 100644 --- a/docs/sensor.html +++ b/docs/sensor.html @@ -6,7 +6,7 @@ - Sensor API — CraftBeerPi 4.0 documentation + Sensor — CraftBeerPi 4.0 documentation @@ -17,7 +17,7 @@ - + @@ -34,8 +34,17 @@
-
-

Sensor API

+
+

Sensor

+
+

Architecture

+
+
+

SensorController

+
+
+

Custom Sensor

+
@@ -56,8 +65,8 @@

Navigation

@@ -65,7 +74,7 @@

Related Topics

diff --git a/docs/step.html b/docs/step.html index 344e183..ef4578c 100644 --- a/docs/step.html +++ b/docs/step.html @@ -16,7 +16,7 @@ - + @@ -55,8 +55,8 @@

Navigation

@@ -64,7 +64,7 @@

Related Topics

diff --git a/docs_src/source/index.rst b/docs_src/source/index.rst index 21379e9..ee94958 100644 --- a/docs_src/source/index.rst +++ b/docs_src/source/index.rst @@ -6,27 +6,6 @@ Welcome to CraftBeerPi's documentation! ======================================= -Documentation -^^^^^^^^^^^^^ - -.. automodule:: core.craftbeerpi - :members: - -.. automodule:: core.controller.notification_controller - :members: - -Example Component -^^^^^^^^^^^^^^^^^ - -.. literalinclude:: ../../core/extension/comp/__init__.py - :language: python - - -Config YAML -^^^^^^^^^^^ - -.. literalinclude:: ../../core/extension/comp/config.yaml - :language: yaml .. toctree:: :maxdepth: 1