Skip to content

Commit 015e5c7

Browse files
committed
use json.dumps() instead of str() for serial writes and csv file now that controller firmware 0.2.9 is compatible
1 parent f777386 commit 015e5c7

File tree

2 files changed

+15
-23
lines changed

2 files changed

+15
-23
lines changed

brewpi.py

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -488,9 +488,9 @@ def renameTempKey(key):
488488
elif messageType == "getMode": # echo cs['mode'] setting
489489
conn.send(cs['mode'])
490490
elif messageType == "getFridge": # echo fridge temperature setting
491-
conn.send(str(cs['fridgeSet']))
491+
conn.send(json.dumps(cs['fridgeSet']))
492492
elif messageType == "getBeer": # echo fridge temperature setting
493-
conn.send(str(cs['beerSet']))
493+
conn.send(json.dumps(cs['beerSet']))
494494
elif messageType == "getControlConstants":
495495
conn.send(json.dumps(cc))
496496
elif messageType == "getControlSettings":
@@ -527,7 +527,7 @@ def renameTempKey(key):
527527
cs['mode'] = 'b'
528528
# round to 2 dec, python will otherwise produce 6.999999999
529529
cs['beerSet'] = round(newTemp, 2)
530-
ser.write("j{mode:b, beerSet:" + str(cs['beerSet']) + "}")
530+
ser.write("j{mode:b, beerSet:" + json.dumps(cs['beerSet']) + "}")
531531
logMessage("Notification: Beer temperature set to " +
532532
str(cs['beerSet']) +
533533
" degrees in web interface")
@@ -547,7 +547,7 @@ def renameTempKey(key):
547547
if cc['tempSetMin'] <= newTemp <= cc['tempSetMax']:
548548
cs['mode'] = 'f'
549549
cs['fridgeSet'] = round(newTemp, 2)
550-
ser.write("j{mode:f, fridgeSet:" + str(cs['fridgeSet']) + "}")
550+
ser.write("j{mode:f, fridgeSet:" + json.dumps(cs['fridgeSet']) + "}")
551551
logMessage("Notification: Fridge temperature set to " +
552552
str(cs['fridgeSet']) +
553553
" degrees in web interface")
@@ -775,14 +775,14 @@ def renameTempKey(key):
775775
csvFile = open(localCsvFileName, "a")
776776
try:
777777
lineToWrite = (time.strftime("%b %d %Y %H:%M:%S;") +
778-
str(newRow['BeerTemp']) + ';' +
779-
str(newRow['BeerSet']) + ';' +
780-
str(newRow['BeerAnn']) + ';' +
781-
str(newRow['FridgeTemp']) + ';' +
782-
str(newRow['FridgeSet']) + ';' +
783-
str(newRow['FridgeAnn']) + ';' +
784-
str(newRow['State']) + ';' +
785-
str(newRow['RoomTemp']) + '\n')
778+
json.dumps(newRow['BeerTemp']) + ';' +
779+
json.dumps(newRow['BeerSet']) + ';' +
780+
json.dumps(newRow['BeerAnn']) + ';' +
781+
json.dumps(newRow['FridgeTemp']) + ';' +
782+
json.dumps(newRow['FridgeSet']) + ';' +
783+
json.dumps(newRow['FridgeAnn']) + ';' +
784+
json.dumps(newRow['State']) + ';' +
785+
json.dumps(newRow['RoomTemp']) + '\n')
786786
csvFile.write(lineToWrite)
787787
except KeyError, e:
788788
logMessage("KeyError in line from controller: %s" % str(e))
@@ -839,14 +839,8 @@ def renameTempKey(key):
839839
newTemp = temperatureProfile.getNewTemp(util.scriptPath())
840840
if newTemp != cs['beerSet']:
841841
cs['beerSet'] = newTemp
842-
if cc['tempSetMin'] < newTemp < cc['tempSetMax']:
843-
# if temperature has to be updated send settings to controller
844-
ser.write("j{beerSet:" + str(cs['beerSet']) + "}")
845-
elif newTemp is None:
846-
# temperature control disabled by profile
847-
logMessage("Temperature control disabled by empty cell in profile.")
848-
ser.write("j{beerSet:-99999}") # send as high negative value that will result in INT_MIN on controller
849-
842+
# if temperature has to be updated send settings to controller
843+
ser.write("j{beerSet:" + json.dumps(cs['beerSet']) + "}")
850844

851845
except socket.error as e:
852846
logMessage("Socket error(%d): %s" % (e.errno, e.strerror))

programController.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,7 @@ def get_combined_settings_dict(self, oldSettings):
403403
def send_restored_settings(self, restoredSettings):
404404
for key in restoredSettings:
405405
setting = restoredSettings[key]
406-
if not setting:
407-
continue # skip None values until fixed in firmware
408-
command = "j{" + str(key) + ":" + str(setting) + "}\n"
406+
command = "j{" + json.dumps(key) + ":" + json.dumps(setting) + "}\n"
409407
self.ser.write(command)
410408
# make readline blocking for max 5 seconds to give the controller time to respond after every setting
411409
oldTimeout = self.ser.timeout

0 commit comments

Comments
 (0)