Kettle Logic Added

This commit is contained in:
manuel83 2018-11-18 23:09:17 +01:00
parent f300076134
commit 4f74b39e39
26 changed files with 1363 additions and 869 deletions

File diff suppressed because it is too large Load diff

View file

@ -13,8 +13,9 @@ logging.basicConfig(level=logging.INFO)
class CBPiExtension(): class CBPiExtension():
def __init__(self, *args, **kwds): def __init__(self, *args, **kwds):
for a in kwds: for a in kwds:
print(a)
super(CBPiExtension, self).__setattr__(a, kwds.get(a)) super(CBPiExtension, self).__setattr__(a, kwds.get(a))
self.cbpi = kwds.get("cbpi") self.cbpi = kwds.get("cbpi")
self.id = kwds.get("id") self.id = kwds.get("id")

View file

@ -3,5 +3,4 @@ from core.api.extension import CBPiExtension
class CBPiKettleLogic(CBPiExtension): class CBPiKettleLogic(CBPiExtension):
def test(self): pass
pass

View file

@ -10,7 +10,7 @@ from core.utils import parse_props
class ActorHttp(HttpAPI): class ActorHttp(HttpAPI):
@request_mapping(path="/{id}/on", auth_required=False) @request_mapping(path="/{id:\d+}/on", auth_required=False)
async def http_on(self, request) -> web.Response: async def http_on(self, request) -> web.Response:
""" """
:param request: :param request:
@ -21,7 +21,7 @@ class ActorHttp(HttpAPI):
return web.Response(status=204) return web.Response(status=204)
@request_mapping(path="/{id}/off", auth_required=False) @request_mapping(path="/{id:\d+}/off", auth_required=False)
async def http_off(self, request) -> web.Response: async def http_off(self, request) -> web.Response:
""" """
:param request: :param request:
@ -31,7 +31,7 @@ class ActorHttp(HttpAPI):
self.cbpi.bus.fire(topic="actor/%s/off" % id, id=id) self.cbpi.bus.fire(topic="actor/%s/off" % id, id=id)
return web.Response(status=204) return web.Response(status=204)
@request_mapping(path="/{id}/toggle", auth_required=False) @request_mapping(path="/{id:\d+}/toggle", auth_required=False)
async def http_toggle(self, request) -> web.Response: async def http_toggle(self, request) -> web.Response:
""" """
:param request: :param request:
@ -83,7 +83,7 @@ class ActorController(ActorHttp, CRUDController):
if value.type in self.types: if value.type in self.types:
cfg = value.config.copy() cfg = value.config.copy()
print(cfg)
cfg.update(dict(cbpi=self.cbpi, id=id, name=value.name)) cfg.update(dict(cbpi=self.cbpi, id=id, name=value.name))
clazz = self.types[value.type]["class"]; clazz = self.types[value.type]["class"];

View file

@ -1,6 +1,6 @@
from aiohttp import web from aiohttp import web
from core.api import request_mapping from core.api import request_mapping, on_event
from core.controller.crud_controller import CRUDController from core.controller.crud_controller import CRUDController
from core.database.model import KettleModel from core.database.model import KettleModel
from core.http_endpoints.http_api import HttpAPI from core.http_endpoints.http_api import HttpAPI
@ -13,18 +13,23 @@ class KettleHttp(HttpAPI):
async def get_types(self, request): async def get_types(self, request):
web.json_response(data=self.types, dumps=json_dumps) web.json_response(data=self.types, dumps=json_dumps)
@request_mapping(path="/automatic", auth_required=False) @request_mapping(path="/{id:\d+}/automatic", auth_required=False)
async def start2(self, request):
id = int(request.match_info['id'])
result = await self.toggle_automtic(id)
if result[0] is True:
return web.Response(text="OK")
else:
return web.Response(status=404, text=result[1])
@request_mapping(path="/{id:\d+}/heater", auth_required=False)
async def start(self, request): async def start(self, request):
await self.toggle_automtic(1) id = int(request.match_info['id'])
return web.Response(text="OK") result = await self.heater_on(id)
if result[0] is True:
@request_mapping(path="/automatic/stop", auth_required=False) return web.Response(text="OK")
async def stop(self, request): else:
kettle = await self.get_one(1) return web.Response(status=404, text=result[1])
kettle.instance.running = False
return web.Response(text="OK")
class KettleController(CRUDController, KettleHttp): class KettleController(CRUDController, KettleHttp):
''' '''
@ -38,6 +43,8 @@ class KettleController(CRUDController, KettleHttp):
self.types = {} self.types = {}
self.cbpi.register(self, "/kettle") self.cbpi.register(self, "/kettle")
async def init(self): async def init(self):
''' '''
This method initializes all actors during startup. It creates actor instances This method initializes all actors during startup. It creates actor instances
@ -47,26 +54,87 @@ class KettleController(CRUDController, KettleHttp):
await super(KettleController, self).init() await super(KettleController, self).init()
async def toggle_automtic(self, id): async def toggle_automtic(self, id):
'''
:param id:
:return:
'''
kettle = await self.get_one(id) kettle = await self.get_one(id)
if kettle is None:
return (False, "Kettle Not Found")
if kettle.logic is None:
return (False, "No Logic defined")
id = kettle.heater
self.cbpi.bus.fire(topic="kettle/%s/automatic" % id, id=id)
return (True, "Logic switched on switched")
@on_event(topic="kettle/+/automatic")
async def handle_automtic_event(self, id, **kwargs):
'''
Method to handle the event 'kettle/+/automatic'
:param id: The kettle id
:param kwargs:
:return: None
'''
id = int(id)
print("WOOOHO", type(id), self.cache)
if id in self.cache:
print("id", id)
kettle = self.cache[id]
if hasattr(kettle, "instance") is False:
kettle.instance = None
if kettle.instance is None:
if kettle.logic in self.types:
clazz = self.types.get("CustomKettleLogic")["class"]
cfg = kettle.config.copy()
cfg.update(dict(cbpi=self.cbpi))
kettle.instance = clazz(**cfg)
print("START LOGIC")
await self.cbpi.start_job(kettle.instance.run(), "Kettle_logic_%s" % kettle.id, "kettle_logic")
else:
kettle.instance.running = False
kettle.instance = None
if hasattr(kettle, "instance") is False:
kettle.instance = None
if kettle.instance is None:
if kettle.logic in self.types:
clazz = self.types.get("CustomKettleLogic")["class"]
kettle.instance = clazz()
await self.cbpi.start_job(kettle.instance.run(), "test", "test")
else:
kettle.instance.running = False
kettle.instance = None
async def heater_on(self, id): async def heater_on(self, id):
pass '''
Convenience Method to switch the heater of a kettle on
:param id: the kettle id
:return: (boolean, string)
'''
kettle = await self.get_one(id)
if kettle is None:
return (False, "Kettle Not Found")
if kettle.heater is None:
return (False, "No Heater defined")
id = kettle.heater
self.cbpi.bus.fire(topic="actor/%s/on" % id, id=id, power=99)
return (True,"Heater switched on")
async def heater_off(self, id): async def heater_off(self, id):
pass '''
Convenience Method to switch the heater of a kettle off
:param id:
:return:
'''
kettle = await self.get_one(id)
if kettle is None:
return (False, "Kettle Not Found")
if kettle.heater is None:
return (False, "No Heater defined")
id = kettle.heater
self.cbpi.bus.fire(topic="actor/%s/off" % id, id=id, power=99)
return (True, "Heater switched off")
async def agitator_on(self, id): async def agitator_on(self, id):
pass pass
@ -75,7 +143,9 @@ class KettleController(CRUDController, KettleHttp):
pass pass
async def get_traget_temp(self, id): async def get_traget_temp(self, id):
pass kettle = await self.get_one(id)
return kettle.target_temp
async def get_temp(self, id): async def get_temp(self, id):
pass
pass

View file

@ -20,20 +20,9 @@ class SensorController(CRUDController, HttpAPI):
self.service = self self.service = self
self.types = {} self.types = {}
self.sensors = {"S1": "S1", "S2": "S2"} self.sensors = {}
this_directory = os.path.dirname(__file__)
# __file__ is the absolute path to the current python file.
handler = TimedRotatingFileHandler(os.path.join(this_directory, '../../logger.conf'), when="m", interval=1, backupCount=5)
#handler = RotatingFileHandler("first_logfile.log", mode='a', maxBytes=300, backupCount=2, encoding=None, delay=0)
formatter = logging.Formatter('%(asctime)s,%(sensor)s,%(message)s')
handler.setFormatter(formatter)
self.logger = logging.getLogger("SensorController")
self.logger.setLevel(logging.INFO)
self.logger.propagate = False
self.logger.addHandler(handler)
async def init(self): async def init(self):
''' '''
@ -56,7 +45,6 @@ class SensorController(CRUDController, HttpAPI):
self.cache[id].instance.job = await scheduler.spawn(self.cache[id].instance.run(self.cbpi), value.name, "sensor") self.cache[id].instance.job = await scheduler.spawn(self.cache[id].instance.run(self.cbpi), value.name, "sensor")
print("------------") print("------------")
@background_task(name="test", interval=1) async def get_value(self, id):
async def hallo(self):
print("AHLLO") return self.cache[id].instance.value
self.logger.info("WOOHO", extra={"sensor": 1})

View file

@ -1,3 +1,4 @@
import datetime
from aiohttp import web from aiohttp import web
from aiojobs.aiohttp import get_scheduler_from_app from aiojobs.aiohttp import get_scheduler_from_app
@ -27,6 +28,9 @@ class SystemController():
result = [] result = []
for j in scheduler: for j in scheduler:
try: try:
print(datetime.datetime.fromtimestamp(
j.start_time
).strftime('%Y-%m-%d %H:%M:%S'))
result.append(dict(name=j.name, type=j.type, time=j.start_time)) result.append(dict(name=j.name, type=j.type, time=j.start_time))
except: except:
pass pass

View file

@ -50,7 +50,7 @@ class CraftBeerPi():
self.initializer = [] self.initializer = []
setup(self.app) setup(self.app)
self.bus = EventBus() self.bus = EventBus(self)
self.ws = WebSocket(self) self.ws = WebSocket(self)
self.actor = ActorController(self) self.actor = ActorController(self)
self.sensor = SensorController(self) self.sensor = SensorController(self)

View file

@ -1,3 +1,4 @@
import inspect
import logging import logging
@ -55,18 +56,22 @@ class EventBus(object):
break break
del parent._children[k] del parent._children[k]
def __init__(self): def __init__(self, cbpi):
self.logger = logging.getLogger(__name__) self.logger = logging.getLogger(__name__)
self._root = self.Node() self._root = self.Node()
self.docs = {} self.docs = {}
self.cbpi = cbpi
def fire(self, topic: str, **kwargs) -> None: def fire(self, topic: str, **kwargs) -> None:
self.logger.info("EMIT EVENT %s", topic) self.logger.info("EMIT EVENT %s", topic)
for methods in self.iter_match(topic): for methods in self.iter_match(topic):
for f in methods: for f in methods:
if inspect.iscoroutinefunction(f):
f(**kwargs, topic = topic) print("ITS ASYNC")
self.cbpi.app.loop.create_task(f(**kwargs, topic = topic))
else:
f(**kwargs, topic = topic)
def iter_match(self, topic): def iter_match(self, topic):

View file

@ -17,6 +17,12 @@ class MyComp(CBPiExtension):
def listen(self, **kwargs): def listen(self, **kwargs):
print("Test", kwargs) print("Test", kwargs)
@on_event(topic="kettle/+/automatic")
def listen2(self, **kwargs):
print("HANDLE AUTOMATIC", kwargs)
self.cbpi.bus.fire(topic="actor/%s/toggle" % 1, id=1)
def setup(cbpi): def setup(cbpi):
''' '''
Setup method is invoked during startup Setup method is invoked during startup

View file

@ -23,7 +23,7 @@ class CustomActor(CBPiActor):
def on(self, power=100): def on(self, power=100):
print("ON", self.gpio) print("###### ON", self.gpio)
self.state = True self.state = True

View file

@ -6,7 +6,8 @@ from core.api.kettle_logic import CBPiKettleLogic
class CustomLogic(CBPiKettleLogic): class CustomLogic(CBPiKettleLogic):
name = Property.Number(label="Test") test = Property.Number(label="Test")
running = True running = True
@ -14,9 +15,15 @@ class CustomLogic(CBPiKettleLogic):
while self.running: while self.running:
print("RUN") print("RUN", self.test)
value = await self.cbpi.sensor.get_value(1)
print(value)
if value >= 10:
break
await asyncio.sleep(1) await asyncio.sleep(1)
print("STOP LOGIC")
def setup(cbpi): def setup(cbpi):
''' '''

View file

@ -12,6 +12,7 @@ class CustomSensor(CBPiSensor):
interval = Property.Number(label="interval") interval = Property.Number(label="interval")
name2 = Property.Kettle(label="Test") name2 = Property.Kettle(label="Test")
value = 0
@action(key="name", parameters={}) @action(key="name", parameters={})
def myAction(self): def myAction(self):
@ -24,8 +25,11 @@ class CustomSensor(CBPiSensor):
pass pass
async def run(self, cbpi): async def run(self, cbpi):
self.value = 0
while True: while True:
await asyncio.sleep(self.interval) await asyncio.sleep(self.interval)
self.value = self.value + 1
print("SENSOR IS RUNNING") print("SENSOR IS RUNNING")

Binary file not shown.

View file

@ -1,5 +1,44 @@
2018-11-18 15:39:26,909,1,WOOHO 2018-11-18 20:51:31,507,1,WOOHO
2018-11-18 15:39:28,083,1,WOOHO 2018-11-18 20:51:32,513,1,WOOHO
2018-11-18 15:39:28,716,1,WOOHO 2018-11-18 20:51:33,514,1,WOOHO
2018-11-18 15:39:29,721,1,WOOHO 2018-11-18 20:51:34,518,1,WOOHO
2018-11-18 15:39:30,724,1,WOOHO 2018-11-18 20:51:35,523,1,WOOHO
2018-11-18 20:51:36,528,1,WOOHO
2018-11-18 20:51:37,531,1,WOOHO
2018-11-18 20:51:38,536,1,WOOHO
2018-11-18 20:51:39,538,1,WOOHO
2018-11-18 20:51:40,542,1,WOOHO
2018-11-18 20:51:41,547,1,WOOHO
2018-11-18 20:51:42,550,1,WOOHO
2018-11-18 20:51:43,551,1,WOOHO
2018-11-18 20:51:44,555,1,WOOHO
2018-11-18 20:51:45,559,1,WOOHO
2018-11-18 20:51:46,563,1,WOOHO
2018-11-18 20:51:47,567,1,WOOHO
2018-11-18 20:51:48,568,1,WOOHO
2018-11-18 20:51:49,572,1,WOOHO
2018-11-18 20:51:50,573,1,WOOHO
2018-11-18 20:51:51,579,1,WOOHO
2018-11-18 20:51:52,584,1,WOOHO
2018-11-18 20:51:53,591,1,WOOHO
2018-11-18 20:51:54,594,1,WOOHO
2018-11-18 20:51:55,598,1,WOOHO
2018-11-18 20:51:56,603,1,WOOHO
2018-11-18 20:51:57,606,1,WOOHO
2018-11-18 20:51:58,610,1,WOOHO
2018-11-18 20:51:59,614,1,WOOHO
2018-11-18 20:52:00,618,1,WOOHO
2018-11-18 20:52:01,621,1,WOOHO
2018-11-18 20:52:02,622,1,WOOHO
2018-11-18 20:52:03,626,1,WOOHO
2018-11-18 20:52:04,630,1,WOOHO
2018-11-18 20:52:05,634,1,WOOHO
2018-11-18 20:52:06,638,1,WOOHO
2018-11-18 20:52:07,642,1,WOOHO
2018-11-18 20:52:08,646,1,WOOHO
2018-11-18 20:52:09,651,1,WOOHO
2018-11-18 20:52:10,655,1,WOOHO
2018-11-18 20:52:11,657,1,WOOHO
2018-11-18 20:52:12,662,1,WOOHO
2018-11-18 20:52:13,666,1,WOOHO
2018-11-18 20:52:14,670,1,WOOHO

View file

@ -1,59 +0,0 @@
2018-11-18 14:05:13,822,1,WOOHO
2018-11-18 14:05:14,829,1,WOOHO
2018-11-18 14:05:15,832,1,WOOHO
2018-11-18 14:05:16,837,1,WOOHO
2018-11-18 14:05:17,842,1,WOOHO
2018-11-18 14:05:18,844,1,WOOHO
2018-11-18 14:05:19,849,1,WOOHO
2018-11-18 14:05:20,860,1,WOOHO
2018-11-18 14:05:21,863,1,WOOHO
2018-11-18 14:05:22,869,1,WOOHO
2018-11-18 14:05:23,875,1,WOOHO
2018-11-18 14:05:24,877,1,WOOHO
2018-11-18 14:05:25,880,1,WOOHO
2018-11-18 14:05:26,883,1,WOOHO
2018-11-18 14:05:27,888,1,WOOHO
2018-11-18 14:05:28,889,1,WOOHO
2018-11-18 14:05:29,893,1,WOOHO
2018-11-18 14:05:30,897,1,WOOHO
2018-11-18 14:05:31,901,1,WOOHO
2018-11-18 14:05:32,906,1,WOOHO
2018-11-18 14:05:33,907,1,WOOHO
2018-11-18 14:05:34,912,1,WOOHO
2018-11-18 14:05:35,915,1,WOOHO
2018-11-18 14:05:36,919,1,WOOHO
2018-11-18 14:05:37,922,1,WOOHO
2018-11-18 14:05:38,927,1,WOOHO
2018-11-18 14:05:39,928,1,WOOHO
2018-11-18 14:05:40,932,1,WOOHO
2018-11-18 14:05:41,936,1,WOOHO
2018-11-18 14:05:42,941,1,WOOHO
2018-11-18 14:05:43,945,1,WOOHO
2018-11-18 14:05:44,951,1,WOOHO
2018-11-18 14:05:45,954,1,WOOHO
2018-11-18 14:05:46,957,1,WOOHO
2018-11-18 14:05:47,961,1,WOOHO
2018-11-18 14:05:48,966,1,WOOHO
2018-11-18 14:05:49,974,1,WOOHO
2018-11-18 14:05:50,975,1,WOOHO
2018-11-18 14:05:51,976,1,WOOHO
2018-11-18 14:05:52,977,1,WOOHO
2018-11-18 14:05:53,977,1,WOOHO
2018-11-18 14:05:54,981,1,WOOHO
2018-11-18 14:05:55,986,1,WOOHO
2018-11-18 14:05:56,988,1,WOOHO
2018-11-18 14:05:57,988,1,WOOHO
2018-11-18 14:05:58,992,1,WOOHO
2018-11-18 14:05:59,995,1,WOOHO
2018-11-18 14:06:00,998,1,WOOHO
2018-11-18 14:06:01,999,1,WOOHO
2018-11-18 14:06:03,004,1,WOOHO
2018-11-18 14:06:04,009,1,WOOHO
2018-11-18 14:06:05,013,1,WOOHO
2018-11-18 14:06:06,019,1,WOOHO
2018-11-18 14:06:07,025,1,WOOHO
2018-11-18 14:06:08,030,1,WOOHO
2018-11-18 14:06:09,033,1,WOOHO
2018-11-18 14:06:10,037,1,WOOHO
2018-11-18 14:06:11,041,1,WOOHO
2018-11-18 14:06:12,042,1,WOOHO

View file

@ -1,116 +0,0 @@
2018-11-18 14:06:13,042,1,WOOHO
2018-11-18 14:06:14,050,1,WOOHO
2018-11-18 14:06:15,051,1,WOOHO
2018-11-18 14:06:16,056,1,WOOHO
2018-11-18 14:06:17,060,1,WOOHO
2018-11-18 14:06:18,064,1,WOOHO
2018-11-18 14:06:19,069,1,WOOHO
2018-11-18 14:06:20,084,1,WOOHO
2018-11-18 14:06:21,087,1,WOOHO
2018-11-18 14:06:22,091,1,WOOHO
2018-11-18 14:06:23,092,1,WOOHO
2018-11-18 14:06:24,096,1,WOOHO
2018-11-18 14:06:25,097,1,WOOHO
2018-11-18 14:06:26,101,1,WOOHO
2018-11-18 14:06:27,102,1,WOOHO
2018-11-18 14:06:28,104,1,WOOHO
2018-11-18 14:06:29,109,1,WOOHO
2018-11-18 14:06:30,113,1,WOOHO
2018-11-18 14:06:31,115,1,WOOHO
2018-11-18 14:06:32,119,1,WOOHO
2018-11-18 14:06:33,125,1,WOOHO
2018-11-18 14:06:34,129,1,WOOHO
2018-11-18 14:06:35,133,1,WOOHO
2018-11-18 14:06:36,134,1,WOOHO
2018-11-18 14:06:37,136,1,WOOHO
2018-11-18 14:06:38,137,1,WOOHO
2018-11-18 14:06:39,139,1,WOOHO
2018-11-18 14:06:40,143,1,WOOHO
2018-11-18 14:06:41,144,1,WOOHO
2018-11-18 14:06:42,145,1,WOOHO
2018-11-18 14:06:43,147,1,WOOHO
2018-11-18 14:06:44,151,1,WOOHO
2018-11-18 14:06:45,153,1,WOOHO
2018-11-18 14:06:46,159,1,WOOHO
2018-11-18 14:06:47,163,1,WOOHO
2018-11-18 14:06:48,169,1,WOOHO
2018-11-18 14:06:49,172,1,WOOHO
2018-11-18 14:06:50,174,1,WOOHO
2018-11-18 14:06:51,182,1,WOOHO
2018-11-18 14:06:52,188,1,WOOHO
2018-11-18 14:06:53,193,1,WOOHO
2018-11-18 14:06:54,195,1,WOOHO
2018-11-18 14:06:55,196,1,WOOHO
2018-11-18 14:06:56,197,1,WOOHO
2018-11-18 14:06:57,203,1,WOOHO
2018-11-18 14:06:58,208,1,WOOHO
2018-11-18 14:06:59,212,1,WOOHO
2018-11-18 14:07:00,216,1,WOOHO
2018-11-18 14:07:01,218,1,WOOHO
2018-11-18 14:07:02,219,1,WOOHO
2018-11-18 14:07:03,225,1,WOOHO
2018-11-18 14:07:04,228,1,WOOHO
2018-11-18 14:07:05,233,1,WOOHO
2018-11-18 14:07:06,239,1,WOOHO
2018-11-18 14:07:07,244,1,WOOHO
2018-11-18 14:07:08,249,1,WOOHO
2018-11-18 14:07:09,250,1,WOOHO
2018-11-18 14:07:10,254,1,WOOHO
2018-11-18 14:07:11,259,1,WOOHO
2018-11-18 14:07:14,795,1,WOOHO
2018-11-18 14:07:15,799,1,WOOHO
2018-11-18 14:07:16,800,1,WOOHO
2018-11-18 14:07:17,808,1,WOOHO
2018-11-18 14:07:18,811,1,WOOHO
2018-11-18 14:07:19,813,1,WOOHO
2018-11-18 14:07:20,817,1,WOOHO
2018-11-18 14:07:21,821,1,WOOHO
2018-11-18 14:07:22,825,1,WOOHO
2018-11-18 14:07:23,829,1,WOOHO
2018-11-18 14:07:24,834,1,WOOHO
2018-11-18 14:07:25,835,1,WOOHO
2018-11-18 14:07:26,839,1,WOOHO
2018-11-18 14:07:27,841,1,WOOHO
2018-11-18 14:07:28,845,1,WOOHO
2018-11-18 14:07:29,851,1,WOOHO
2018-11-18 14:07:30,854,1,WOOHO
2018-11-18 14:07:31,859,1,WOOHO
2018-11-18 14:07:32,862,1,WOOHO
2018-11-18 14:07:33,867,1,WOOHO
2018-11-18 14:07:34,873,1,WOOHO
2018-11-18 14:07:35,874,1,WOOHO
2018-11-18 14:07:36,878,1,WOOHO
2018-11-18 14:07:37,883,1,WOOHO
2018-11-18 14:07:38,888,1,WOOHO
2018-11-18 14:07:39,889,1,WOOHO
2018-11-18 14:07:40,893,1,WOOHO
2018-11-18 14:07:41,898,1,WOOHO
2018-11-18 14:07:42,902,1,WOOHO
2018-11-18 14:07:43,907,1,WOOHO
2018-11-18 14:07:44,912,1,WOOHO
2018-11-18 14:07:45,913,1,WOOHO
2018-11-18 14:07:46,918,1,WOOHO
2018-11-18 14:07:47,920,1,WOOHO
2018-11-18 14:07:48,924,1,WOOHO
2018-11-18 14:07:49,928,1,WOOHO
2018-11-18 14:07:50,929,1,WOOHO
2018-11-18 14:07:51,934,1,WOOHO
2018-11-18 14:07:52,937,1,WOOHO
2018-11-18 14:07:53,941,1,WOOHO
2018-11-18 14:07:54,945,1,WOOHO
2018-11-18 14:07:55,949,1,WOOHO
2018-11-18 14:07:56,954,1,WOOHO
2018-11-18 14:07:57,956,1,WOOHO
2018-11-18 14:07:58,962,1,WOOHO
2018-11-18 14:07:59,966,1,WOOHO
2018-11-18 14:08:00,970,1,WOOHO
2018-11-18 14:08:01,975,1,WOOHO
2018-11-18 14:08:02,977,1,WOOHO
2018-11-18 14:08:03,981,1,WOOHO
2018-11-18 14:08:04,986,1,WOOHO
2018-11-18 14:08:05,987,1,WOOHO
2018-11-18 14:08:06,988,1,WOOHO
2018-11-18 14:08:07,993,1,WOOHO
2018-11-18 14:08:08,996,1,WOOHO
2018-11-18 14:08:09,998,1,WOOHO
2018-11-18 14:08:10,999,1,WOOHO

View file

@ -1,170 +0,0 @@
2018-11-18 14:08:12,004,1,WOOHO
2018-11-18 14:08:13,007,1,WOOHO
2018-11-18 14:08:14,013,1,WOOHO
2018-11-18 14:08:15,016,1,WOOHO
2018-11-18 14:08:16,020,1,WOOHO
2018-11-18 14:08:17,025,1,WOOHO
2018-11-18 14:08:18,030,1,WOOHO
2018-11-18 14:08:19,032,1,WOOHO
2018-11-18 14:08:20,036,1,WOOHO
2018-11-18 14:08:21,042,1,WOOHO
2018-11-18 14:08:22,047,1,WOOHO
2018-11-18 14:08:23,048,1,WOOHO
2018-11-18 14:08:24,052,1,WOOHO
2018-11-18 14:08:25,056,1,WOOHO
2018-11-18 14:08:26,061,1,WOOHO
2018-11-18 14:08:27,065,1,WOOHO
2018-11-18 14:08:28,069,1,WOOHO
2018-11-18 14:08:29,073,1,WOOHO
2018-11-18 14:08:30,076,1,WOOHO
2018-11-18 14:08:31,082,1,WOOHO
2018-11-18 14:08:32,083,1,WOOHO
2018-11-18 14:08:33,089,1,WOOHO
2018-11-18 14:08:34,091,1,WOOHO
2018-11-18 14:08:35,092,1,WOOHO
2018-11-18 14:08:36,097,1,WOOHO
2018-11-18 14:08:37,101,1,WOOHO
2018-11-18 14:08:38,105,1,WOOHO
2018-11-18 14:08:39,107,1,WOOHO
2018-11-18 14:08:40,112,1,WOOHO
2018-11-18 14:08:41,116,1,WOOHO
2018-11-18 14:08:42,121,1,WOOHO
2018-11-18 14:08:43,124,1,WOOHO
2018-11-18 14:08:44,126,1,WOOHO
2018-11-18 14:08:45,128,1,WOOHO
2018-11-18 14:08:46,131,1,WOOHO
2018-11-18 14:08:47,136,1,WOOHO
2018-11-18 14:08:48,138,1,WOOHO
2018-11-18 14:08:49,146,1,WOOHO
2018-11-18 14:08:50,152,1,WOOHO
2018-11-18 14:08:51,154,1,WOOHO
2018-11-18 14:08:52,160,1,WOOHO
2018-11-18 14:08:53,165,1,WOOHO
2018-11-18 14:08:54,170,1,WOOHO
2018-11-18 14:08:55,174,1,WOOHO
2018-11-18 14:08:56,178,1,WOOHO
2018-11-18 14:08:57,181,1,WOOHO
2018-11-18 14:08:58,185,1,WOOHO
2018-11-18 14:08:59,191,1,WOOHO
2018-11-18 14:09:00,193,1,WOOHO
2018-11-18 14:09:01,199,1,WOOHO
2018-11-18 14:09:02,201,1,WOOHO
2018-11-18 14:09:03,212,1,WOOHO
2018-11-18 14:09:04,213,1,WOOHO
2018-11-18 14:09:05,215,1,WOOHO
2018-11-18 14:09:06,218,1,WOOHO
2018-11-18 14:09:07,223,1,WOOHO
2018-11-18 14:09:08,227,1,WOOHO
2018-11-18 14:09:11,791,1,WOOHO
2018-11-18 14:09:12,796,1,WOOHO
2018-11-18 14:09:13,801,1,WOOHO
2018-11-18 14:09:14,805,1,WOOHO
2018-11-18 14:09:15,806,1,WOOHO
2018-11-18 14:09:16,811,1,WOOHO
2018-11-18 14:09:17,814,1,WOOHO
2018-11-18 14:09:18,820,1,WOOHO
2018-11-18 14:09:19,821,1,WOOHO
2018-11-18 14:09:20,829,1,WOOHO
2018-11-18 14:09:21,832,1,WOOHO
2018-11-18 14:09:22,836,1,WOOHO
2018-11-18 14:09:23,841,1,WOOHO
2018-11-18 14:09:24,844,1,WOOHO
2018-11-18 14:09:25,848,1,WOOHO
2018-11-18 14:09:26,853,1,WOOHO
2018-11-18 14:09:27,858,1,WOOHO
2018-11-18 14:09:28,860,1,WOOHO
2018-11-18 14:09:29,865,1,WOOHO
2018-11-18 14:09:30,868,1,WOOHO
2018-11-18 14:09:31,872,1,WOOHO
2018-11-18 14:09:32,879,1,WOOHO
2018-11-18 14:09:33,884,1,WOOHO
2018-11-18 14:09:34,885,1,WOOHO
2018-11-18 14:09:35,889,1,WOOHO
2018-11-18 14:09:36,894,1,WOOHO
2018-11-18 14:09:37,899,1,WOOHO
2018-11-18 14:09:38,905,1,WOOHO
2018-11-18 14:09:39,905,1,WOOHO
2018-11-18 14:09:40,906,1,WOOHO
2018-11-18 14:09:41,907,1,WOOHO
2018-11-18 14:09:42,913,1,WOOHO
2018-11-18 14:09:43,914,1,WOOHO
2018-11-18 14:09:44,918,1,WOOHO
2018-11-18 14:09:45,920,1,WOOHO
2018-11-18 14:09:46,923,1,WOOHO
2018-11-18 14:09:47,927,1,WOOHO
2018-11-18 14:09:48,931,1,WOOHO
2018-11-18 14:09:49,937,1,WOOHO
2018-11-18 14:09:50,948,1,WOOHO
2018-11-18 14:09:51,950,1,WOOHO
2018-11-18 14:09:52,954,1,WOOHO
2018-11-18 14:09:53,957,1,WOOHO
2018-11-18 14:09:54,959,1,WOOHO
2018-11-18 14:09:55,965,1,WOOHO
2018-11-18 14:09:56,969,1,WOOHO
2018-11-18 14:09:57,974,1,WOOHO
2018-11-18 14:09:58,979,1,WOOHO
2018-11-18 14:09:59,982,1,WOOHO
2018-11-18 14:10:00,986,1,WOOHO
2018-11-18 14:10:01,991,1,WOOHO
2018-11-18 14:10:02,997,1,WOOHO
2018-11-18 14:10:04,001,1,WOOHO
2018-11-18 14:10:05,007,1,WOOHO
2018-11-18 14:10:06,013,1,WOOHO
2018-11-18 14:10:07,017,1,WOOHO
2018-11-18 14:10:10,186,1,WOOHO
2018-11-18 14:10:11,192,1,WOOHO
2018-11-18 14:10:12,194,1,WOOHO
2018-11-18 14:10:13,197,1,WOOHO
2018-11-18 14:10:14,202,1,WOOHO
2018-11-18 14:10:15,206,1,WOOHO
2018-11-18 14:10:16,210,1,WOOHO
2018-11-18 14:10:17,211,1,WOOHO
2018-11-18 14:10:18,215,1,WOOHO
2018-11-18 14:10:19,216,1,WOOHO
2018-11-18 14:10:20,219,1,WOOHO
2018-11-18 14:10:21,219,1,WOOHO
2018-11-18 14:10:22,220,1,WOOHO
2018-11-18 14:10:23,224,1,WOOHO
2018-11-18 14:10:24,227,1,WOOHO
2018-11-18 14:10:25,232,1,WOOHO
2018-11-18 14:10:26,237,1,WOOHO
2018-11-18 14:10:27,239,1,WOOHO
2018-11-18 14:10:28,244,1,WOOHO
2018-11-18 14:10:29,246,1,WOOHO
2018-11-18 14:10:30,248,1,WOOHO
2018-11-18 14:10:31,251,1,WOOHO
2018-11-18 14:10:32,256,1,WOOHO
2018-11-18 14:10:33,258,1,WOOHO
2018-11-18 14:10:34,261,1,WOOHO
2018-11-18 14:10:35,263,1,WOOHO
2018-11-18 14:10:36,265,1,WOOHO
2018-11-18 14:10:37,267,1,WOOHO
2018-11-18 14:10:38,268,1,WOOHO
2018-11-18 14:10:39,269,1,WOOHO
2018-11-18 14:10:40,274,1,WOOHO
2018-11-18 14:10:41,278,1,WOOHO
2018-11-18 14:10:42,282,1,WOOHO
2018-11-18 14:10:43,286,1,WOOHO
2018-11-18 14:10:44,290,1,WOOHO
2018-11-18 14:10:45,295,1,WOOHO
2018-11-18 14:10:46,299,1,WOOHO
2018-11-18 14:10:47,302,1,WOOHO
2018-11-18 14:10:48,307,1,WOOHO
2018-11-18 14:10:49,310,1,WOOHO
2018-11-18 14:10:50,321,1,WOOHO
2018-11-18 14:10:51,324,1,WOOHO
2018-11-18 14:10:52,329,1,WOOHO
2018-11-18 14:10:53,333,1,WOOHO
2018-11-18 14:10:54,336,1,WOOHO
2018-11-18 14:10:55,341,1,WOOHO
2018-11-18 14:10:56,346,1,WOOHO
2018-11-18 14:10:57,350,1,WOOHO
2018-11-18 14:10:58,354,1,WOOHO
2018-11-18 14:10:59,358,1,WOOHO
2018-11-18 14:11:00,362,1,WOOHO
2018-11-18 14:11:01,367,1,WOOHO
2018-11-18 14:11:02,370,1,WOOHO
2018-11-18 14:11:03,372,1,WOOHO
2018-11-18 14:11:04,378,1,WOOHO
2018-11-18 14:11:05,382,1,WOOHO
2018-11-18 14:11:06,386,1,WOOHO

View file

@ -1,60 +0,0 @@
2018-11-18 14:11:07,390,1,WOOHO
2018-11-18 14:11:08,395,1,WOOHO
2018-11-18 14:11:09,399,1,WOOHO
2018-11-18 14:11:10,402,1,WOOHO
2018-11-18 14:11:11,407,1,WOOHO
2018-11-18 14:11:12,411,1,WOOHO
2018-11-18 14:11:13,416,1,WOOHO
2018-11-18 14:11:14,419,1,WOOHO
2018-11-18 14:11:15,423,1,WOOHO
2018-11-18 14:11:16,428,1,WOOHO
2018-11-18 14:11:17,434,1,WOOHO
2018-11-18 14:11:18,439,1,WOOHO
2018-11-18 14:11:19,443,1,WOOHO
2018-11-18 14:11:20,451,1,WOOHO
2018-11-18 14:11:21,457,1,WOOHO
2018-11-18 14:11:22,458,1,WOOHO
2018-11-18 14:11:23,462,1,WOOHO
2018-11-18 14:11:24,467,1,WOOHO
2018-11-18 14:11:25,470,1,WOOHO
2018-11-18 14:11:26,474,1,WOOHO
2018-11-18 14:11:27,478,1,WOOHO
2018-11-18 14:11:28,480,1,WOOHO
2018-11-18 14:11:29,480,1,WOOHO
2018-11-18 14:11:30,484,1,WOOHO
2018-11-18 14:11:31,489,1,WOOHO
2018-11-18 14:11:32,492,1,WOOHO
2018-11-18 14:11:33,496,1,WOOHO
2018-11-18 14:11:34,502,1,WOOHO
2018-11-18 14:11:35,505,1,WOOHO
2018-11-18 14:11:36,509,1,WOOHO
2018-11-18 14:11:37,513,1,WOOHO
2018-11-18 14:11:38,519,1,WOOHO
2018-11-18 14:11:39,520,1,WOOHO
2018-11-18 14:11:40,525,1,WOOHO
2018-11-18 14:11:41,530,1,WOOHO
2018-11-18 14:11:42,535,1,WOOHO
2018-11-18 14:11:43,540,1,WOOHO
2018-11-18 14:11:44,542,1,WOOHO
2018-11-18 14:11:45,546,1,WOOHO
2018-11-18 14:11:46,551,1,WOOHO
2018-11-18 14:11:47,554,1,WOOHO
2018-11-18 14:11:48,559,1,WOOHO
2018-11-18 14:11:49,563,1,WOOHO
2018-11-18 14:11:50,572,1,WOOHO
2018-11-18 14:11:51,576,1,WOOHO
2018-11-18 14:11:52,581,1,WOOHO
2018-11-18 14:11:53,586,1,WOOHO
2018-11-18 14:11:54,589,1,WOOHO
2018-11-18 14:11:55,594,1,WOOHO
2018-11-18 14:11:56,597,1,WOOHO
2018-11-18 14:11:57,601,1,WOOHO
2018-11-18 14:11:58,606,1,WOOHO
2018-11-18 14:11:59,610,1,WOOHO
2018-11-18 14:12:00,614,1,WOOHO
2018-11-18 14:12:01,618,1,WOOHO
2018-11-18 14:12:02,621,1,WOOHO
2018-11-18 14:12:03,625,1,WOOHO
2018-11-18 14:12:04,630,1,WOOHO
2018-11-18 14:12:05,635,1,WOOHO
2018-11-18 14:12:06,639,1,WOOHO

View file

@ -1,39 +0,0 @@
2018-11-18 14:12:07,642,1,WOOHO
2018-11-18 14:12:08,644,1,WOOHO
2018-11-18 14:12:09,649,1,WOOHO
2018-11-18 14:12:10,653,1,WOOHO
2018-11-18 14:12:11,654,1,WOOHO
2018-11-18 14:12:12,657,1,WOOHO
2018-11-18 14:12:13,661,1,WOOHO
2018-11-18 14:12:14,666,1,WOOHO
2018-11-18 14:12:15,670,1,WOOHO
2018-11-18 14:12:16,674,1,WOOHO
2018-11-18 14:12:17,677,1,WOOHO
2018-11-18 14:12:18,682,1,WOOHO
2018-11-18 14:12:19,686,1,WOOHO
2018-11-18 14:12:20,695,1,WOOHO
2018-11-18 14:12:21,700,1,WOOHO
2018-11-18 14:12:22,701,1,WOOHO
2018-11-18 14:12:23,702,1,WOOHO
2018-11-18 14:12:24,703,1,WOOHO
2018-11-18 14:12:25,711,1,WOOHO
2018-11-18 14:12:26,718,1,WOOHO
2018-11-18 14:12:27,719,1,WOOHO
2018-11-18 14:12:28,729,1,WOOHO
2018-11-18 14:12:29,733,1,WOOHO
2018-11-18 14:12:30,743,1,WOOHO
2018-11-18 14:12:31,753,1,WOOHO
2018-11-18 14:12:32,758,1,WOOHO
2018-11-18 14:12:33,761,1,WOOHO
2018-11-18 14:12:34,768,1,WOOHO
2018-11-18 14:12:35,770,1,WOOHO
2018-11-18 14:12:36,777,1,WOOHO
2018-11-18 14:12:37,778,1,WOOHO
2018-11-18 14:12:38,787,1,WOOHO
2018-11-18 14:12:39,798,1,WOOHO
2018-11-18 14:12:40,802,1,WOOHO
2018-11-18 14:12:41,813,1,WOOHO
2018-11-18 14:12:42,816,1,WOOHO
2018-11-18 14:12:43,819,1,WOOHO
2018-11-18 14:12:44,827,1,WOOHO
2018-11-18 14:12:45,837,1,WOOHO

View file

@ -0,0 +1,60 @@
2018-11-18 20:46:31,513,1,WOOHO
2018-11-18 20:46:32,516,1,WOOHO
2018-11-18 20:46:33,521,1,WOOHO
2018-11-18 20:46:34,524,1,WOOHO
2018-11-18 20:46:35,528,1,WOOHO
2018-11-18 20:46:36,532,1,WOOHO
2018-11-18 20:46:37,535,1,WOOHO
2018-11-18 20:46:38,537,1,WOOHO
2018-11-18 20:46:39,538,1,WOOHO
2018-11-18 20:46:40,540,1,WOOHO
2018-11-18 20:46:41,541,1,WOOHO
2018-11-18 20:46:42,546,1,WOOHO
2018-11-18 20:46:43,550,1,WOOHO
2018-11-18 20:46:44,553,1,WOOHO
2018-11-18 20:46:45,556,1,WOOHO
2018-11-18 20:46:46,560,1,WOOHO
2018-11-18 20:46:47,562,1,WOOHO
2018-11-18 20:46:48,568,1,WOOHO
2018-11-18 20:46:49,571,1,WOOHO
2018-11-18 20:46:50,575,1,WOOHO
2018-11-18 20:46:51,582,1,WOOHO
2018-11-18 20:46:52,585,1,WOOHO
2018-11-18 20:46:53,592,1,WOOHO
2018-11-18 20:46:54,596,1,WOOHO
2018-11-18 20:46:55,599,1,WOOHO
2018-11-18 20:46:56,601,1,WOOHO
2018-11-18 20:46:57,603,1,WOOHO
2018-11-18 20:46:58,607,1,WOOHO
2018-11-18 20:46:59,612,1,WOOHO
2018-11-18 20:47:00,614,1,WOOHO
2018-11-18 20:47:01,617,1,WOOHO
2018-11-18 20:47:02,620,1,WOOHO
2018-11-18 20:47:03,623,1,WOOHO
2018-11-18 20:47:04,626,1,WOOHO
2018-11-18 20:47:05,629,1,WOOHO
2018-11-18 20:47:06,634,1,WOOHO
2018-11-18 20:47:07,638,1,WOOHO
2018-11-18 20:47:08,643,1,WOOHO
2018-11-18 20:47:09,645,1,WOOHO
2018-11-18 20:47:10,650,1,WOOHO
2018-11-18 20:47:11,650,1,WOOHO
2018-11-18 20:47:12,656,1,WOOHO
2018-11-18 20:47:13,661,1,WOOHO
2018-11-18 20:47:14,663,1,WOOHO
2018-11-18 20:47:15,666,1,WOOHO
2018-11-18 20:47:16,669,1,WOOHO
2018-11-18 20:47:17,670,1,WOOHO
2018-11-18 20:47:18,671,1,WOOHO
2018-11-18 20:47:19,676,1,WOOHO
2018-11-18 20:47:20,678,1,WOOHO
2018-11-18 20:47:21,683,1,WOOHO
2018-11-18 20:47:22,684,1,WOOHO
2018-11-18 20:47:23,688,1,WOOHO
2018-11-18 20:47:24,692,1,WOOHO
2018-11-18 20:47:25,694,1,WOOHO
2018-11-18 20:47:26,698,1,WOOHO
2018-11-18 20:47:27,699,1,WOOHO
2018-11-18 20:47:28,701,1,WOOHO
2018-11-18 20:47:29,703,1,WOOHO
2018-11-18 20:47:30,703,1,WOOHO

View file

@ -0,0 +1,60 @@
2018-11-18 20:47:31,707,1,WOOHO
2018-11-18 20:47:32,710,1,WOOHO
2018-11-18 20:47:33,715,1,WOOHO
2018-11-18 20:47:34,716,1,WOOHO
2018-11-18 20:47:35,717,1,WOOHO
2018-11-18 20:47:36,722,1,WOOHO
2018-11-18 20:47:37,727,1,WOOHO
2018-11-18 20:47:38,728,1,WOOHO
2018-11-18 20:47:39,731,1,WOOHO
2018-11-18 20:47:40,732,1,WOOHO
2018-11-18 20:47:41,736,1,WOOHO
2018-11-18 20:47:42,737,1,WOOHO
2018-11-18 20:47:43,741,1,WOOHO
2018-11-18 20:47:44,744,1,WOOHO
2018-11-18 20:47:45,745,1,WOOHO
2018-11-18 20:47:46,747,1,WOOHO
2018-11-18 20:47:47,751,1,WOOHO
2018-11-18 20:47:48,756,1,WOOHO
2018-11-18 20:47:49,757,1,WOOHO
2018-11-18 20:47:50,763,1,WOOHO
2018-11-18 20:47:51,768,1,WOOHO
2018-11-18 20:47:52,772,1,WOOHO
2018-11-18 20:47:53,779,1,WOOHO
2018-11-18 20:47:54,782,1,WOOHO
2018-11-18 20:47:55,783,1,WOOHO
2018-11-18 20:47:56,787,1,WOOHO
2018-11-18 20:47:57,789,1,WOOHO
2018-11-18 20:47:58,792,1,WOOHO
2018-11-18 20:47:59,793,1,WOOHO
2018-11-18 20:48:00,797,1,WOOHO
2018-11-18 20:48:01,800,1,WOOHO
2018-11-18 20:48:02,805,1,WOOHO
2018-11-18 20:48:03,809,1,WOOHO
2018-11-18 20:48:04,810,1,WOOHO
2018-11-18 20:48:05,816,1,WOOHO
2018-11-18 20:48:06,819,1,WOOHO
2018-11-18 20:48:07,825,1,WOOHO
2018-11-18 20:48:08,829,1,WOOHO
2018-11-18 20:48:09,835,1,WOOHO
2018-11-18 20:48:10,838,1,WOOHO
2018-11-18 20:48:11,839,1,WOOHO
2018-11-18 20:48:12,844,1,WOOHO
2018-11-18 20:48:13,845,1,WOOHO
2018-11-18 20:48:14,848,1,WOOHO
2018-11-18 20:48:15,850,1,WOOHO
2018-11-18 20:48:16,852,1,WOOHO
2018-11-18 20:48:17,854,1,WOOHO
2018-11-18 20:48:18,859,1,WOOHO
2018-11-18 20:48:19,859,1,WOOHO
2018-11-18 20:48:20,864,1,WOOHO
2018-11-18 20:48:21,868,1,WOOHO
2018-11-18 20:48:22,869,1,WOOHO
2018-11-18 20:48:23,876,1,WOOHO
2018-11-18 20:48:24,877,1,WOOHO
2018-11-18 20:48:25,879,1,WOOHO
2018-11-18 20:48:26,884,1,WOOHO
2018-11-18 20:48:27,889,1,WOOHO
2018-11-18 20:48:28,892,1,WOOHO
2018-11-18 20:48:29,895,1,WOOHO
2018-11-18 20:48:30,901,1,WOOHO

View file

@ -0,0 +1,59 @@
2018-11-18 20:48:31,906,1,WOOHO
2018-11-18 20:48:32,914,1,WOOHO
2018-11-18 20:48:33,917,1,WOOHO
2018-11-18 20:48:34,922,1,WOOHO
2018-11-18 20:48:35,924,1,WOOHO
2018-11-18 20:48:36,924,1,WOOHO
2018-11-18 20:48:37,928,1,WOOHO
2018-11-18 20:48:38,931,1,WOOHO
2018-11-18 20:48:39,935,1,WOOHO
2018-11-18 20:48:40,936,1,WOOHO
2018-11-18 20:48:41,940,1,WOOHO
2018-11-18 20:48:42,944,1,WOOHO
2018-11-18 20:48:43,947,1,WOOHO
2018-11-18 20:48:44,951,1,WOOHO
2018-11-18 20:48:45,952,1,WOOHO
2018-11-18 20:48:46,953,1,WOOHO
2018-11-18 20:48:47,954,1,WOOHO
2018-11-18 20:48:48,960,1,WOOHO
2018-11-18 20:48:49,964,1,WOOHO
2018-11-18 20:48:50,968,1,WOOHO
2018-11-18 20:48:51,969,1,WOOHO
2018-11-18 20:48:52,974,1,WOOHO
2018-11-18 20:48:53,980,1,WOOHO
2018-11-18 20:48:54,981,1,WOOHO
2018-11-18 20:48:55,985,1,WOOHO
2018-11-18 20:48:56,991,1,WOOHO
2018-11-18 20:48:57,995,1,WOOHO
2018-11-18 20:48:58,996,1,WOOHO
2018-11-18 20:49:00,001,1,WOOHO
2018-11-18 20:49:01,004,1,WOOHO
2018-11-18 20:49:02,005,1,WOOHO
2018-11-18 20:49:03,009,1,WOOHO
2018-11-18 20:49:04,011,1,WOOHO
2018-11-18 20:49:05,013,1,WOOHO
2018-11-18 20:49:06,017,1,WOOHO
2018-11-18 20:49:07,022,1,WOOHO
2018-11-18 20:49:08,027,1,WOOHO
2018-11-18 20:49:09,029,1,WOOHO
2018-11-18 20:49:10,031,1,WOOHO
2018-11-18 20:49:11,035,1,WOOHO
2018-11-18 20:49:12,039,1,WOOHO
2018-11-18 20:49:13,044,1,WOOHO
2018-11-18 20:49:14,045,1,WOOHO
2018-11-18 20:49:15,049,1,WOOHO
2018-11-18 20:49:16,051,1,WOOHO
2018-11-18 20:49:17,056,1,WOOHO
2018-11-18 20:49:18,057,1,WOOHO
2018-11-18 20:49:19,063,1,WOOHO
2018-11-18 20:49:20,068,1,WOOHO
2018-11-18 20:49:21,069,1,WOOHO
2018-11-18 20:49:22,072,1,WOOHO
2018-11-18 20:49:23,077,1,WOOHO
2018-11-18 20:49:24,081,1,WOOHO
2018-11-18 20:49:25,082,1,WOOHO
2018-11-18 20:49:26,087,1,WOOHO
2018-11-18 20:49:27,088,1,WOOHO
2018-11-18 20:49:28,092,1,WOOHO
2018-11-18 20:49:29,097,1,WOOHO
2018-11-18 20:49:30,099,1,WOOHO

View file

@ -0,0 +1,60 @@
2018-11-18 20:49:31,101,1,WOOHO
2018-11-18 20:49:32,105,1,WOOHO
2018-11-18 20:49:33,110,1,WOOHO
2018-11-18 20:49:34,112,1,WOOHO
2018-11-18 20:49:35,117,1,WOOHO
2018-11-18 20:49:36,118,1,WOOHO
2018-11-18 20:49:37,122,1,WOOHO
2018-11-18 20:49:38,124,1,WOOHO
2018-11-18 20:49:39,126,1,WOOHO
2018-11-18 20:49:40,127,1,WOOHO
2018-11-18 20:49:41,128,1,WOOHO
2018-11-18 20:49:42,134,1,WOOHO
2018-11-18 20:49:43,136,1,WOOHO
2018-11-18 20:49:44,139,1,WOOHO
2018-11-18 20:49:45,142,1,WOOHO
2018-11-18 20:49:46,147,1,WOOHO
2018-11-18 20:49:47,150,1,WOOHO
2018-11-18 20:49:48,151,1,WOOHO
2018-11-18 20:49:49,155,1,WOOHO
2018-11-18 20:49:50,157,1,WOOHO
2018-11-18 20:49:51,160,1,WOOHO
2018-11-18 20:49:52,166,1,WOOHO
2018-11-18 20:49:53,167,1,WOOHO
2018-11-18 20:49:54,173,1,WOOHO
2018-11-18 20:49:55,177,1,WOOHO
2018-11-18 20:49:56,182,1,WOOHO
2018-11-18 20:49:57,183,1,WOOHO
2018-11-18 20:49:58,187,1,WOOHO
2018-11-18 20:49:59,189,1,WOOHO
2018-11-18 20:50:00,193,1,WOOHO
2018-11-18 20:50:01,197,1,WOOHO
2018-11-18 20:50:02,202,1,WOOHO
2018-11-18 20:50:03,204,1,WOOHO
2018-11-18 20:50:04,210,1,WOOHO
2018-11-18 20:50:05,211,1,WOOHO
2018-11-18 20:50:06,214,1,WOOHO
2018-11-18 20:50:07,215,1,WOOHO
2018-11-18 20:50:08,217,1,WOOHO
2018-11-18 20:50:09,219,1,WOOHO
2018-11-18 20:50:10,221,1,WOOHO
2018-11-18 20:50:11,225,1,WOOHO
2018-11-18 20:50:12,230,1,WOOHO
2018-11-18 20:50:13,235,1,WOOHO
2018-11-18 20:50:14,239,1,WOOHO
2018-11-18 20:50:15,243,1,WOOHO
2018-11-18 20:50:16,244,1,WOOHO
2018-11-18 20:50:17,248,1,WOOHO
2018-11-18 20:50:18,253,1,WOOHO
2018-11-18 20:50:19,254,1,WOOHO
2018-11-18 20:50:20,254,1,WOOHO
2018-11-18 20:50:21,259,1,WOOHO
2018-11-18 20:50:22,264,1,WOOHO
2018-11-18 20:50:23,271,1,WOOHO
2018-11-18 20:50:24,277,1,WOOHO
2018-11-18 20:50:25,281,1,WOOHO
2018-11-18 20:50:26,286,1,WOOHO
2018-11-18 20:50:27,292,1,WOOHO
2018-11-18 20:50:28,294,1,WOOHO
2018-11-18 20:50:29,297,1,WOOHO
2018-11-18 20:50:30,300,1,WOOHO

View file

@ -0,0 +1,60 @@
2018-11-18 20:50:31,302,1,WOOHO
2018-11-18 20:50:32,305,1,WOOHO
2018-11-18 20:50:33,309,1,WOOHO
2018-11-18 20:50:34,310,1,WOOHO
2018-11-18 20:50:35,311,1,WOOHO
2018-11-18 20:50:36,317,1,WOOHO
2018-11-18 20:50:37,319,1,WOOHO
2018-11-18 20:50:38,321,1,WOOHO
2018-11-18 20:50:39,324,1,WOOHO
2018-11-18 20:50:40,325,1,WOOHO
2018-11-18 20:50:41,326,1,WOOHO
2018-11-18 20:50:42,332,1,WOOHO
2018-11-18 20:50:43,338,1,WOOHO
2018-11-18 20:50:44,339,1,WOOHO
2018-11-18 20:50:45,345,1,WOOHO
2018-11-18 20:50:46,350,1,WOOHO
2018-11-18 20:50:47,351,1,WOOHO
2018-11-18 20:50:48,352,1,WOOHO
2018-11-18 20:50:49,355,1,WOOHO
2018-11-18 20:50:50,360,1,WOOHO
2018-11-18 20:50:51,363,1,WOOHO
2018-11-18 20:50:52,367,1,WOOHO
2018-11-18 20:50:53,370,1,WOOHO
2018-11-18 20:50:54,372,1,WOOHO
2018-11-18 20:50:55,378,1,WOOHO
2018-11-18 20:50:56,379,1,WOOHO
2018-11-18 20:50:57,384,1,WOOHO
2018-11-18 20:50:58,388,1,WOOHO
2018-11-18 20:50:59,389,1,WOOHO
2018-11-18 20:51:00,390,1,WOOHO
2018-11-18 20:51:01,391,1,WOOHO
2018-11-18 20:51:02,392,1,WOOHO
2018-11-18 20:51:03,395,1,WOOHO
2018-11-18 20:51:04,400,1,WOOHO
2018-11-18 20:51:05,405,1,WOOHO
2018-11-18 20:51:06,408,1,WOOHO
2018-11-18 20:51:07,412,1,WOOHO
2018-11-18 20:51:08,415,1,WOOHO
2018-11-18 20:51:09,420,1,WOOHO
2018-11-18 20:51:10,424,1,WOOHO
2018-11-18 20:51:11,429,1,WOOHO
2018-11-18 20:51:12,433,1,WOOHO
2018-11-18 20:51:13,435,1,WOOHO
2018-11-18 20:51:14,438,1,WOOHO
2018-11-18 20:51:15,442,1,WOOHO
2018-11-18 20:51:16,448,1,WOOHO
2018-11-18 20:51:17,451,1,WOOHO
2018-11-18 20:51:18,454,1,WOOHO
2018-11-18 20:51:19,458,1,WOOHO
2018-11-18 20:51:20,462,1,WOOHO
2018-11-18 20:51:21,467,1,WOOHO
2018-11-18 20:51:22,472,1,WOOHO
2018-11-18 20:51:23,478,1,WOOHO
2018-11-18 20:51:24,482,1,WOOHO
2018-11-18 20:51:25,484,1,WOOHO
2018-11-18 20:51:26,489,1,WOOHO
2018-11-18 20:51:27,492,1,WOOHO
2018-11-18 20:51:28,497,1,WOOHO
2018-11-18 20:51:29,501,1,WOOHO
2018-11-18 20:51:30,504,1,WOOHO

View file

@ -3,9 +3,7 @@ from aiohttp.test_utils import AioHTTPTestCase, unittest_run_loop
from core.craftbeerpi import CraftBeerPi from core.craftbeerpi import CraftBeerPi
class MyAppTestCase(AioHTTPTestCase): class KettleTestCase(AioHTTPTestCase):
async def get_application(self): async def get_application(self):
@ -16,5 +14,6 @@ class MyAppTestCase(AioHTTPTestCase):
@unittest_run_loop @unittest_run_loop
async def test_example(self): async def test_example(self):
assert await self.cbpi.kettle.toggle_automtic(1) is True
await self.cbpi.kettle.toggle_automtic(1) assert await self.cbpi.kettle.toggle_automtic(1) is True
assert await self.cbpi.kettle.toggle_automtic(99) is False