Added actiions for sensors and minor fix in mashsteps

- Actions can now also be called for sensors -> will require ui 0.0.18.
- Some fixes for timer in mashsteps in case of pause is pressed
This commit is contained in:
avollkopf 2021-09-26 12:41:39 +02:00
parent 74fa65da29
commit dd7da9ce71
3 changed files with 46 additions and 1 deletions

View file

@ -1 +1 @@
__version__ = "4.0.0.38"
__version__ = "4.0.0.39"

View file

@ -73,6 +73,7 @@ class MashInStep(CBPiStep):
async def on_timer_done(self,timer):
self.summary = ""
self.kettle.target_temp = 0
await self.push_update()
if self.AutoMode == True:
await self.setAutoMode(False)
@ -152,6 +153,7 @@ class MashStep(CBPiStep):
async def on_timer_done(self,timer):
self.summary = ""
self.kettle.target_temp = 0
if self.AutoMode == True:
await self.setAutoMode(False)
self.cbpi.notify(self.name, 'Step finished', NotificationType.SUCCESS)
@ -173,6 +175,10 @@ class MashStep(CBPiStep):
if self.cbpi.kettle is not None and self.timer is None:
self.timer = Timer(int(self.props.get("Timer",0)) *60 ,on_update=self.on_timer_update, on_done=self.on_timer_done)
elif self.cbpi.kettle is not None and self.timer:
self.timer.start()
self.timer.is_running = True
self.summary = "Waiting for Target Temp"
await self.push_update()
@ -368,6 +374,9 @@ class BoilStep(CBPiStep):
if self.cbpi.kettle is not None and self.timer is None:
self.timer = Timer(int(self.props.get("Timer", 0)) *60 ,on_update=self.on_timer_update, on_done=self.on_timer_done)
elif self.cbpi.kettle is not None and self.timer:
self.timer.start()
self.timer.is_running = True
self.summary = "Waiting for Target Temp"
if self.AutoMode == True:

View file

@ -229,3 +229,39 @@ class SensorHttpEndpoints():
logging.info(sensor_value)
return web.json_response(data=sensor_value)
@request_mapping(path="/{id}/action", method="POST", auth_required=auth)
async def http_action(self, request) -> web.Response:
"""
---
description: Call Action for Sensor
tags:
- Sensor
parameters:
- name: "id"
in: "path"
description: "Actor ID"
required: true
type: "integer"
format: "int64"
- in: body
name: body
description: Update an actor
required: false
schema:
type: object
properties:
name:
type: string
parameter:
type: object
responses:
"204":
description: successful operation
"""
sensor_id = request.match_info['id']
data = await request.json()
print(data)
await self.controller.call_action(sensor_id, data.get("action"), data.get("parameter"))
return web.Response(status=204)