mirror of
https://github.com/PiBrewing/craftbeerpi4.git
synced 2024-11-10 01:17:42 +01:00
146 lines
6.3 KiB
Python
146 lines
6.3 KiB
Python
|
import os, threading, time
|
||
|
from aiohttp import web
|
||
|
import logging
|
||
|
from unittest.mock import MagicMock, patch
|
||
|
import asyncio
|
||
|
import random
|
||
|
from cbpi.api import *
|
||
|
from cbpi.api.config import ConfigType
|
||
|
from cbpi.api.base import CBPiBase
|
||
|
|
||
|
logger = logging.getLogger(__name__)
|
||
|
|
||
|
class ConfigUpdate(CBPiExtension):
|
||
|
|
||
|
def __init__(self,cbpi):
|
||
|
self.cbpi = cbpi
|
||
|
self._task = asyncio.create_task(self.run())
|
||
|
|
||
|
|
||
|
async def run(self):
|
||
|
logging.info("Check Config for required changes")
|
||
|
|
||
|
# check is default steps are config parameters
|
||
|
|
||
|
TEMP_UNIT = self.cbpi.config.get("TEMP_UNIT", "C")
|
||
|
default_boil_temp = 99 if TEMP_UNIT == "C" else 212
|
||
|
default_cool_temp = 20 if TEMP_UNIT == "C" else 68
|
||
|
boil_temp = self.cbpi.config.get("steps_boil_temp", None)
|
||
|
cooldown_sensor = self.cbpi.config.get("steps_cooldown_sensor", None)
|
||
|
cooldown_temp = self.cbpi.config.get("steps_cooldown_temp", None)
|
||
|
mashin_step = self.cbpi.config.get("steps_mashin", None)
|
||
|
mash_step = self.cbpi.config.get("steps_mash", None)
|
||
|
mashout_step = self.cbpi.config.get("steps_mashout", None)
|
||
|
boil_step = self.cbpi.config.get("steps_boil", None)
|
||
|
cooldown_step = self.cbpi.config.get("steps_cooldown", None)
|
||
|
|
||
|
if boil_temp is None:
|
||
|
logger.info("INIT Boil Temp Setting")
|
||
|
try:
|
||
|
await self.cbpi.config.add("steps_boil_temp", default_boil_temp, ConfigType.NUMBER, "Default Boil Temperature for Recipe Creation")
|
||
|
except:
|
||
|
logger.warning('Unable to update database')
|
||
|
|
||
|
if cooldown_sensor is None:
|
||
|
logger.info("INIT Cooldown Sensor Setting")
|
||
|
try:
|
||
|
await self.cbpi.config.add("steps_cooldown_sensor", "", ConfigType.SENSOR, "Alternative Sensor to monitor temperature durring cooldown (if not selected, Kettle Sensor will be used)")
|
||
|
except:
|
||
|
logger.warning('Unable to update database')
|
||
|
|
||
|
if cooldown_temp is None:
|
||
|
logger.info("INIT Cooldown Temp Setting")
|
||
|
try:
|
||
|
await self.cbpi.config.add("steps_cooldown_temp", default_cool_temp, ConfigType.NUMBER, "Cooldown temp will send notification when this temeprature is reached")
|
||
|
except:
|
||
|
logger.warning('Unable to update database')
|
||
|
|
||
|
if cooldown_step is None:
|
||
|
logger.info("INIT Cooldown Step Type")
|
||
|
try:
|
||
|
await self.cbpi.config.add("steps_cooldown", "", ConfigType.STEP, "Cooldown step type")
|
||
|
except:
|
||
|
logger.warning('Unable to update database')
|
||
|
|
||
|
if mashin_step is None:
|
||
|
logger.info("INIT MashIn Step Type")
|
||
|
try:
|
||
|
await self.cbpi.config.add("steps_mashin", "", ConfigType.STEP, "MashIn step type")
|
||
|
except:
|
||
|
logger.warning('Unable to update database')
|
||
|
|
||
|
if mash_step is None:
|
||
|
logger.info("INIT Mash Step Type")
|
||
|
try:
|
||
|
await self.cbpi.config.add("steps_mash", "", ConfigType.STEP, "Mash step type")
|
||
|
except:
|
||
|
logger.warning('Unable to update database')
|
||
|
|
||
|
if mashout_step is None:
|
||
|
logger.info("INIT MashOut Step Type")
|
||
|
try:
|
||
|
await self.cbpi.config.add("steps_mashout", "", ConfigType.STEP, "MashOut step type")
|
||
|
except:
|
||
|
logger.warning('Unable to update database')
|
||
|
|
||
|
if boil_step is None:
|
||
|
logger.info("INIT Boil Step Type")
|
||
|
try:
|
||
|
await self.cbpi.config.add("steps_boil", "", ConfigType.STEP, "Boil step type")
|
||
|
except:
|
||
|
logger.warning('Unable to update database')
|
||
|
|
||
|
## Check if AtuoMode for Steps is in config
|
||
|
AutoMode = self.cbpi.config.get("AutoMode", None)
|
||
|
if AutoMode is None:
|
||
|
logger.info("INIT AutoMode")
|
||
|
try:
|
||
|
await self.cbpi.config.add("AutoMode", "Yes", ConfigType.SELECT, "Use AutoMode in steps",
|
||
|
[{"label": "Yes", "value": "Yes"},
|
||
|
{"label": "No", "value": "No"}])
|
||
|
except:
|
||
|
logger.warning('Unable to update config')
|
||
|
|
||
|
## Check if AddMashInStep for Steps is in config
|
||
|
AddMashIn = self.cbpi.config.get("AddMashInStep", None)
|
||
|
if AddMashIn is None:
|
||
|
logger.info("INIT AddMashInStep")
|
||
|
try:
|
||
|
await self.cbpi.config.add("AddMashInStep", "Yes", ConfigType.SELECT, "Add MashIn Step automatically if not defined in recipe",
|
||
|
[{"label": "Yes", "value": "Yes"},
|
||
|
{"label": "No", "value": "No"}])
|
||
|
except:
|
||
|
logger.warning('Unable to update config')
|
||
|
|
||
|
## Check if Brewfather UserID is in config
|
||
|
bfuserid = self.cbpi.config.get("brewfather_user_id", None)
|
||
|
if bfuserid is None:
|
||
|
logger.info("INIT Brewfather User ID")
|
||
|
try:
|
||
|
await self.cbpi.config.add("brewfather_user_id", "", ConfigType.STRING, "Brewfather User ID")
|
||
|
except:
|
||
|
logger.warning('Unable to update config')
|
||
|
|
||
|
## Check if Brewfather API Key is in config
|
||
|
bfapikey = self.cbpi.config.get("brewfather_api_key", None)
|
||
|
if bfapikey is None:
|
||
|
logger.info("INIT Brewfather API Key")
|
||
|
try:
|
||
|
await self.cbpi.config.add("brewfather_api_key", "", ConfigType.STRING, "Brewfather API Key")
|
||
|
except:
|
||
|
logger.warning('Unable to update config')
|
||
|
|
||
|
## Check if Brewfather API Key is in config
|
||
|
RecipeCreationPath = self.cbpi.config.get("RECIPE_CREATION_PATH", None)
|
||
|
if RecipeCreationPath is None:
|
||
|
logger.info("INIT Recipe Creation Path")
|
||
|
try:
|
||
|
await self.cbpi.config.add("RECIPE_CREATION_PATH", "upload", ConfigType.STRING, "API path to creation plugin. Default: upload . CHANGE ONLY IF USING A RECIPE CREATION PLUGIN")
|
||
|
except:
|
||
|
logger.warning('Unable to update config')
|
||
|
|
||
|
|
||
|
def setup(cbpi):
|
||
|
cbpi.plugin.register("ConfigUpdate", ConfigUpdate)
|
||
|
pass
|