浏览代码

Merge pull request #15 from Manuel83/master

Update swimIan master
pull/206/head
swimIan GitHub 8 年前
父节点
当前提交
fea3e85053
找不到此签名对应的密钥 GPG 密钥 ID: 4AEE18F83AFDEB23
共有 5 个文件被更改,包括 35 次插入39 次删除
  1. +1
    -0
      config/schema.sql
  2. +13
    -1
      install.sh
  3. +9
    -21
      modules/base_plugins/brew_steps/__init__.py
  4. +11
    -4
      modules/buzzer/__init__.py
  5. +1
    -13
      modules/recipe_import/beerxml.py

+ 1
- 0
config/schema.sql 查看文件

@@ -85,6 +85,7 @@ INSERT OR IGNORE INTO config VALUES ('sensor_cols', 4, 'select', 'Adjust the wid
INSERT OR IGNORE INTO config VALUES ('unit', 'C', 'select', 'Temperature Unit', '["C","F"]');
INSERT OR IGNORE INTO config VALUES ('brewery_name', 'My Home Brewery', 'text', 'Your brewery name', NULL );
INSERT OR IGNORE INTO config VALUES ('buzzer', 16, 'select', 'Buzzer GPIO', '[16,17,18,19,20]');
INSERT OR IGNORE INTO config VALUES ('buzzer_beep_level', 'HIGH', 'select', 'Buzzer Logic Beep Level', '["HIGH", "LOW"]');
INSERT OR IGNORE INTO config VALUES ('setup', 'YES', 'select', 'Show the Setup dialog', '["YES","NO"]');
INSERT OR IGNORE INTO config VALUES ('brew_name', '', 'text', 'Brew Name', NULL);
INSERT OR IGNORE INTO config VALUES ('donation_notification', 'YES', 'select', 'Disable Donation Notification', '["YES","NO"]');


+ 13
- 1
install.sh 查看文件

@@ -19,7 +19,8 @@ show_menu () {
"7" "Software Update (git pull)" \
"8" "Reset File Changes (git reset --hard)" \
"9" "Clear all logs" \
"10" "Reboot Raspberry Pi" 3>&1 1>&2 2>&3)
"10" "Reboot Raspberry Pi" \
"11" "Stop CraftBeerPi, Clear logs, Start CraftBeerPi" 3>&1 1>&2 2>&3)

BUTTON=$?
# Exit if user pressed cancel or escape
@@ -143,6 +144,17 @@ show_menu () {
show_menu
fi
;;
11)
confirmAnswer "Are you sure you want to reboot CraftBeerPi and delete all log files?"
if [ $? = 0 ]; then
sudo /etc/init.d/craftbeerpiboot stop
sudo rm -rf logs/*.log
sudo /etc/init.d/craftbeerpiboot start
show_menu
else
show_menu
fi
;;
esac
fi
}


+ 9
- 21
modules/base_plugins/brew_steps/__init__.py 查看文件

@@ -160,18 +160,16 @@ class BoilStep(StepBase):
temp = Property.Number("Temperature", configurable=True, default_value=100, description="Target temperature for boiling")
kettle = StepProperty.Kettle("Kettle", description="Kettle in which the boiling step takes place")
timer = Property.Number("Timer in Minutes", configurable=True, default_value=90, description="Timer is started when target temperature is reached")
hop_1 = Property.Number("Hop 1 Addition", configurable=True, description="First Hop alert")
hop_1 = Property.Number("Hop 1 Addition", configurable=True, description="Fist Hop alert")
hop_1_added = Property.Number("",default_value=None)
hop_2 = Property.Number("Hop 2 Addition", configurable=True, description="Second Hop alert")
hop_2_added = Property.Number("", default_value=None)
hop_3 = Property.Number("Hop 3 Addition", configurable=True, description="Third Hop alert")
hop_3_added = Property.Number("", default_value=None)
hop_4 = Property.Number("Hop 4 Addition", configurable=True, description="Fourth Hop alert")
hop_4_added = Property.Number("", default_value=None)
hop_5 = Property.Number("Hop 5 Addition", configurable=True, description="Fifth Hop alert")
hop_5_added = Property.Number("", default_value=None)
fining = Property.Number("Fining Addition", configurable=True, default_value=15)
fining_added = Property.Number("",default_value=None, description="Fining Agent Alert")
hop_3 = Property.Number("Hop 3 Addition", configurable=True)
hop_3_added = Property.Number("", default_value=None, description="Third Hop alert")
hop_4 = Property.Number("Hop 4 Addition", configurable=True)
hop_4_added = Property.Number("", default_value=None, description="Fourth Hop alert")
hop_5 = Property.Number("Hop 5 Addition", configurable=True)
hop_5_added = Property.Number("", default_value=None, description="Fives Hop alert")

def init(self):
'''
@@ -204,18 +202,11 @@ class BoilStep(StepBase):

def check_hop_timer(self, number, value):

if self.__getattribute__("hop_%s_added" % number) is not True and (int(value) * 60) == (
self.timer_end - int(time.time())):
if self.__getattribute__("hop_%s_added" % number) is not True and time.time() > (
self.timer_end - (int(self.timer) * 60 - int(value) * 60)):
self.__setattr__("hop_%s_added" % number, True)
self.notify("Hop Alert", "Please add Hop %s" % number, timeout=None)

def check_fining_timer(self, value):

if self.__getattribute__("fining_added") is not True and (int(value) * 60) == (
self.timer_end - int(time.time())):
self.__setattr__("fining_added", True)
self.notify("Fining Alert", "Please add fining agent", timeout=None)

def execute(self):
'''
This method is execute in an interval
@@ -225,7 +216,6 @@ class BoilStep(StepBase):
if self.get_kettle_temp(self.kettle) >= float(self.temp):
# Check if Timer is Running
if self.is_timer_finished() is None:
self.notify("Boil Temp Reached", "Starting the boil timer")
self.start_timer(int(self.timer) * 60)
else:
self.check_hop_timer(1, self.hop_1)
@@ -233,8 +223,6 @@ class BoilStep(StepBase):
self.check_hop_timer(3, self.hop_3)
self.check_hop_timer(4, self.hop_4)
self.check_hop_timer(5, self.hop_5)
self.check_fining_timer(self.fining)

# Check if timer finished and go to next step
if self.is_timer_finished() == True:
self.notify("Boil Step Completed!", "Starting the next step", timeout=None)


+ 11
- 4
modules/buzzer/__init__.py 查看文件

@@ -10,10 +10,11 @@ except Exception as e:
class Buzzer(object):

sound = ["H", 0.1, "L", 0.1, "H", 0.1, "L", 0.1, "H", 0.1, "L"]
def __init__(self, gpio):
def __init__(self, gpio, beep_level):
try:
cbpi.app.logger.info("INIT BUZZER NOW GPIO%s" % gpio)
self.gpio = int(gpio)
self.beep_level = beep_level
GPIO.setmode(GPIO.BCM)
GPIO.setup(self.gpio, GPIO.OUT)
self.state = True
@@ -31,10 +32,14 @@ class Buzzer(object):
try:
for i in sound:
if (isinstance(i, str)):
if i == "H":
if i == "H" and self.beep_level == "HIGH":
GPIO.output(int(self.gpio), GPIO.HIGH)
else:
elif i == "H" and self.beep_level != "HIGH":
GPIO.output(int(self.gpio), GPIO.LOW)
elif i == "L" and self.beep_level == "HIGH":
GPIO.output(int(self.gpio), GPIO.LOW)
else:
GPIO.output(int(self.gpio), GPIO.HIGH)
else:
time.sleep(i)
except Exception as e:
@@ -45,6 +50,8 @@ class Buzzer(object):
@cbpi.initalizer(order=1)
def init(cbpi):
gpio = cbpi.get_config_parameter("buzzer", 16)
cbpi.buzzer = Buzzer(gpio)
beep_level = cbpi.get_config_parameter("buzzer_beep_level", "HIGH")

cbpi.buzzer = Buzzer(gpio, beep_level)
cbpi.beep()
cbpi.app.logger.info("INIT OK")

+ 1
- 13
modules/recipe_import/beerxml.py 查看文件

@@ -51,8 +51,6 @@ class BeerXMLImport(FlaskView):
name = self.getRecipeName(id)
self.api.set_config_parameter("brew_name", name)
boil_time = self.getBoilTime(id)
infuse = self.getMashinTemp(id)
mashinstep_type = cbpi.get_config_parameter("step_mashin", "MashInStep")
mashstep_type = cbpi.get_config_parameter("step_mash", "MashStep")
mash_kettle = cbpi.get_config_parameter("step_mash_kettle", None)

@@ -66,13 +64,11 @@ class BeerXMLImport(FlaskView):

try:

## Add Mashin step
Step.insert(**{"name": "MashIn", "type": mashinstep_type, "config": {"kettle": mash_kettle, "temp": infuse}})
for row in steps:
Step.insert(**{"name": row.get("name"), "type": mashstep_type, "config": {"kettle": mash_kettle, "temp": float(row.get("temp")), "timer": row.get("timer")}})
Step.insert(**{"name": "ChilStep", "type": "ChilStep", "config": {"timer": 15}})
## Add cooking step
Step.insert(**{"name": "Boil", "type": boilstep_type, "config": {"kettle": boil_kettle, "temp": boil_temp, "timer": boil_time}})
Step.insert(**{"name": "ChilStep", "type": "ChilStep", "config": {"timer": 15}})
## Add Whirlpool step
Step.insert(**{"name": "Whirlpool", "type": "ChilStep", "config": {"timer": 15}})
self.api.emit("UPDATE_ALL_STEPS", Step.get_all())
@@ -91,14 +87,6 @@ class BeerXMLImport(FlaskView):
e = xml.etree.ElementTree.parse(self.BEER_XML_FILE).getroot()
return float(e.find('./RECIPE[%s]/BOIL_TIME' % (str(id))).text)

def getMashinTemp(self, id):
e = xml.etree.ElementTree.parse(self.BEER_XML_FILE).getroot()
tempstr = e.find('./RECIPE[%s]/MASH/MASH_STEPS/MASH_STEP/INFUSE_TEMP' % (str(id))).text
val = tempstr[:-1]
infuse = float(val.rstrip())

return infuse

def getSteps(self, id):




正在加载...
取消
保存