mirror of
https://github.com/Manuel83/craftbeerpi3
synced 2026-08-10 02:55:27 +02:00
First Refactoring
- Major API Changes in Core Module - Will be changed further. Still work in progress
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import time
|
||||
from flask_classy import route
|
||||
from modules.core.core import cbpi
|
||||
from modules.core.db import DBModel
|
||||
from modules.core.baseview import BaseView
|
||||
from modules.database.dbmodel import Sensor
|
||||
|
||||
|
||||
class SensorView(BaseView):
|
||||
model = Sensor
|
||||
cache_key = "sensors"
|
||||
|
||||
@route('<int:id>/action/<method>', methods=["POST"])
|
||||
def action(self, id, method):
|
||||
"""
|
||||
Sensor Action
|
||||
---
|
||||
tags:
|
||||
- sensor
|
||||
parameters:
|
||||
- in: path
|
||||
name: id
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: Numeric ID of the sensor
|
||||
- in: path
|
||||
name: method
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
description: action method name
|
||||
responses:
|
||||
200:
|
||||
description: Sensor Action called
|
||||
"""
|
||||
cbpi.cache.get("sensors").get(id).instance.__getattribute__(method)()
|
||||
return ('', 204)
|
||||
|
||||
def _post_post_callback(self, m):
|
||||
|
||||
cbpi.sensor.init_one(m.id)
|
||||
|
||||
def _post_put_callback(self, m):
|
||||
cbpi.sensor.stop_one(m.id)
|
||||
cbpi.sensor.init_one(m.id)
|
||||
|
||||
def _pre_delete_callback(self, m):
|
||||
cbpi.sensor.stop_one(m.id)
|
||||
|
||||
@cbpi.addon.core.initializer(order=1000)
|
||||
def init(cbpi):
|
||||
|
||||
SensorView.register(cbpi._app, route_base='/api/sensor')
|
||||
SensorView.init_cache()
|
||||
|
||||
|
||||
#@cbpi.backgroundtask(key="read_passiv_sensor", interval=5)
|
||||
def read_passive_sensor(api):
|
||||
"""
|
||||
background process that reads all passive sensors in interval of 1 second
|
||||
:return: None
|
||||
|
||||
"""
|
||||
for key, value in cbpi.cache.get("sensors").iteritems():
|
||||
if value.mode == "P":
|
||||
value.instance.read()
|
||||
Reference in New Issue
Block a user