BrewPi switched to OFF in the middle of a profile

I was away for a couple of days and came home to find that my chamber was up around 68 deg F instead of in the cold crash region defined in the profile. Here are the lines from stderr where it switched:

 Jun 04 2016 09:11:25   controller debug message: INFO MESSAGE 12: Received new setting: beerSet = 51.14
 Jun 04 2016 09:11:55   controller debug message: ERROR 10: Expected { got END OF INPUT
 Jun 04 2016 09:11:55   controller debug message: WARNING 1: Invalid command received by controller: {
 Jun 04 2016 09:11:55   controller debug message: WARNING 1: Invalid command received by controller: b
 Jun 04 2016 09:11:55   controller debug message: WARNING 1: Invalid command received by controller: e
 Jun 04 2016 09:11:55   controller debug message: WARNING 1: Invalid command received by controller: e
 Jun 04 2016 09:11:55   controller debug message: WARNING 1: Invalid command received by controller: r
 Jun 04 2016 09:11:55   controller debug message: INFO MESSAGE 14: Default settings loaded.

This looks to be the same event from the json file:

{"c":[{"v":"Date(2016,5,4,9,10,42)"},{"v":51.13},{"v":51.16},null,{"v":39.77},{"v":38.15},null,null,{"v":0}]},
{"c":[{"v":"Date(2016,5,4,9,11,55)"},{"v":51.12},{"v":68.0},null,{"v":40.35},{"v":68.0},null,null,{"v":0}]},
{"c":[{"v":"Date(2016,5,4,9,12,6)"},{"v":51.12},{"v":68.0},null,{"v":40.36},{"v":68.0},null,null,{"v":1}]},

Here’s a screenshot of the web interface graph.

I currently have it set to beer constant, and it seems to be cooling fine in that mode. Below is the version information from stderr.

Found BrewPi v0.2.4, running commit 2a6f7f05 build 40, running on an Arduino Uno with a revC shield on port /dev/ttyACM0

I tried installing the latest version, but it wasn’t compatible so it dropped me back to the version above. Any ideas before I bottle this one and power down? Thanks!

You should not be running 0.2.4. Please update to 0.2.10, our latest release for Arduino.

Run our updater with --ask, and check out the legacy branch for the web interface and script.

Interestingly, I’m running into the same issue, whenever the serial connection is lost. I would expect the arduino (I’m running 0.2.10) to continue with the current settings, and the script to recover. The script does continue but loses the current profile (and the Fahrenheit setting) and switches to off.
Any idea why?

I’m using an esp-link (serial over wifi) so occasionally losing the serial session isn’t surprising, I’m just surprised the script doesn’t handle it.

I’ve updated my version to 0.2.10, but I haven’t had another chance to test it.

It sounds like the Arduino is receiving an ‘E’ (by accident), which causes a settings reset.

I have had this happen to during a pi reboot myself. In the next BrewPi Spark release, there will be some code to require any of these critical commands to be followed by \r and/or \n

That makes sense. It’s only when the serial link gets dropped and re-established. For a short fix, what do you think is the cleanest? Should I add code to check the mode on the arduino and reapply if it doesn’t match?

EDIT:
does the E cause a full settings reset(including device config)? The only thing I lose is temp mode (C/F) and active mode (Beer Profile to Off).