Same here.Years ago, I had written an MS Access databasae program in VBA for a friend of mine to manage his payphone business. I then "leased" the program for a yearly fee to several companies. Once the business was no longer profitable or worth my time, I sent all the users a forever password. I am not sure if some or still using that program or not, but I hope @BrunDog does something like that.
I have pushed the limits of BruControl and it has some issues that I wished were fixed (mostly the global local database issues and better memory control) , but generally the program can do anything I want it to.
My program could do any commissions for any “ widget”. It had tax reports, client reports and all kinds of things that did not need to be a pay phone. It did have a few things that we specific to a pay phone, but that dealt more with being able to import, sorta like the node red “interface” between BruControl and Beer Smith.Same here.
In terms of the last part, yeah, when people ask me about it, I describe it as so nicely open-ended and customizable that I could run water sprinklers with it if I wanted
I just received an email from BrunDog and he said they are committed BruControl and will continue to develop it.The hunt continues, I have an idea that might produce an answer, I will let you know if it pans out.
I've had issues with my 4-relay ESP32 boards doing that at times, but those are powered by 110v (board has stepdowns, of course). For me, it seemed like power flow issues since the relays run the same 110v series (so solenoid flies open or shut quickly, adding a jolt to the current), so not sure if that would be similar to your case.anyone have any thoughts on ESP32 going dark regularly? I have in on a external USB din-rail power brick powered by 24vdc. View attachment 872415
My work around was to plug my ESP32 boards into a smart plug (running Tasmota). I added a timer in BC that starts when an element shows as disconnected/dropped. Once it hits a minute, a script turns on an alert global, which my Node-RED picks up. From there, it toggles the smart plug off and on. When the system comes back online, a script resets the timer.
I should make a YouTube video testing them all, hah.@CDCTx
I thought I was out-of-hand with multiple Unitanks - SsBrewtech and BrewBuilt
But I see you added a Spike to your collection! LMAO
I like the BrewBuilt the best, no doubt.
You got me thinking now.... I will take the really long cooling coil from the SS-14G and mount it on top of the BrewBuilt X3-14G and see if it will reach down deep enough for a 5-7 gallon batch. When the Hellez Lager is done in the X3 and the Strong Bitter is done in the Ss-14G......I should make a YouTube video testing them all, hah.
The SS is intended for an impending single-vessel solera project (it'sa half-barrel). There was a good deal from a local guy getting out of the hobby.
I started with the 14g Brewbuilt and loved it but wished I had more ports. I then got the Spike 14g for that reason. Brewbuilt then started adding more ports, hah. I would have gotten the X3, but the cooling jacket is only good if you brew the batch sizes for it, and I mostly do 5 gal. 7gal X2 for Christmas it was!
I've had a bunch of these issues and usually it was because my router changed the IP address of the device for some reason I haven't been able to figure out (was set for static IP). I've updated the IP in Brucontrol and voila, it works again! Before that, I had issues with a crappy mesh router and it would simply not hold the signal. Switched to TPlink Omada system and much better!anyone have any thoughts on ESP32 going dark regularly? I have in on a external USB din-rail power brick powered by 24vdc. View attachment 872415
Looks like it runs ESP32-S3, which sadly won't work at this time. I keep hoping we'll get ESP32-S3 and -C3 support at some point, as the S3 is powerful and flexible.Is the Arduino Nano ESP32 compatible with Brucontrol? I wasn't sure if the ESP32 firmware would apply to this board or not? When i try to run the interface setup, it doesn't list any firmware options to select.
Thanks.
Looks like it runs ESP32-S3, which sadly won't work at this time. I keep hoping we'll get ESP32-S3 and -C3 support at some point, as the S3 is powerful and flexible.
Oh! I bought one of these already. Figured if I went with my own control software project, this would be my go-to board (I have other Waveshare boards, including their touchscreens; good stuff). But if we see an update to BC with S3 support....game changer. I know BrunDog was playing with the S3 because of the expanded pin support.yes, with the S3, hoping for support of one of the relay boards so I can run 24vdc, ex antenna, and onboard relays for less than $50. (unsure if the rs-485 implementation can be bypassed for SPI Sensors.) https://www.amazon.com/Waveshare-Industrial-6-Channel-Interfaces-Expanding/dp/B0D14SLHGD
First and foremost is keep your brucfg file. Normally, that is default.brucfg, but if you have other profiles set up, then save those. Keep the Config Backup folder in case you need to revert to a saved config when BC last acted right.I made a mistake with my OneDrive and inadvertently deleted a my data file and some other things. I copied the files back from a backup I had and now Brucontrol is crashing and closing at least once per day. It didn't use to crash at all. So, a couple of questions:
1. If I decide to uninstall and do a fresh install of Brucontrol -- what is absolutely essential to ensure I keep all my scripts and other programming details? I do not want to lose any of this.
2. Are there other things I should check as to why it might be crashing? Long shot here, but thought I'd ask anyway
3. I noticed my data files is >5GB. Are there obvious things to reduce this file size?
Thanks so much.
Thanks. Does that keep the scripts? Didn't look like it when i opened the file. Are the scripts only kept in the .mdf file?First and foremost is keep your brucfg file. Normally, that is default.brucfg, but if you have other profiles set up, then save those. Keep the Config Backup folder in case you need to revert to a saved config when BC last acted right.
I simply do not use the local data as the data base gets too big in a hurry and does cause issues with BruControl. The file you need for your Devices and scripts is normally in your C:/Documents/BruControl folder. It has a name that ends in .brucfg.I made a mistake with my OneDrive and inadvertently deleted a my data file and some other things. I copied the files back from a backup I had and now Brucontrol is crashing and closing at least once per day. It didn't use to crash at all. So, a couple of questions:
1. If I decide to uninstall and do a fresh install of Brucontrol -- what is absolutely essential to ensure I keep all my scripts and other programming details? I do not want to lose any of this.
2. Are there other things I should check as to why it might be crashing? Long shot here, but thought I'd ask anyway
3. I noticed my data files is >5GB. Are there obvious things to reduce this file size?
Thanks so much.
An .mdf file is a standard Microsoft Database file that holds data FROM your globals. It has nothing else in it except instances of those global values transferred from BruControl to the .mdf file. It is a one way steet. Data from a BruControl Global to the mdf file.Thanks. Does that keep the scripts? Didn't look like it when i opened the file. Are the scripts only kept in the .mdf file?
Same here, thanks to @RiverCityBrewer . Really good to have you in the group. You helped me more than once – like with magnetic flowmeters, Node-RED, and more.First, I want to acknowlege @RiverCityBrewer who greatly helped me getting Node Red up and running.
A Node-red flow to create a .csv file of a mash temp with time every minute.
The global element I used was named DX_gblV_Mash_Temp_DE
In addition, I have a folder
C:\BruControl\NodeRedData
To run this, you must have professional License, the Data Exchange enabled under settings, Node-Red installed and Running, and the flow in the local host on the same computer as BruControl.
This will create a simple .csv file which needs to be renamed after each Mash to a different name as this flow will create the file if it does not exist, but will simply append to the file if it does.
This flow could likely be improved as it is my first shot, but I think it would suit my needs.
The Flow:
[
{
"id": "c68aff04e20ee551",
"type": "tab",
"label": "Mash Temperature",
"disabled": false,
"info": "",
"env": []
},
{
"id": "17b429a9678c0b7c",
"type": "inject",
"z": "c68aff04e20ee551",
"name": "Start Mash Temperture",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "60",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 190,
"y": 80,
"wires": [
[
"3c74d78c0e3b11dc"
]
]
},
{
"id": "3c74d78c0e3b11dc",
"type": "http request",
"z": "c68aff04e20ee551",
"name": "Connect to BruControl",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://127.0.0.1:8000/globals",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 420,
"y": 140,
"wires": [
[
"1e10d705ed8387aa"
]
]
},
{
"id": "034ac9778088f6fa",
"type": "function",
"z": "c68aff04e20ee551",
"name": "Get and Pass Mash Temp",
"func": "var arr = msg.payload; //arr for array\nvar Mash_Temp;\nvar Mash_Data;\nvar bcGlobals;\n\n//The following lines rearranges the array into a standard JSON key/value pair via a string and then makes it an object.\nbcGlobals = '{' + arr.map(function (elem) {\n return '\"' + elem.Name + '\":\"' + elem.Value + '\"';\n}).join(\",\");\nbcGlobals = bcGlobals + '}';\nbcGlobals = JSON.parse(bcGlobals);\n\n\nMash_Temp = bcGlobals['DX_gblV_Mash_Temp_DE']; //Sets Mash_Temp to the value of the BC global based on the global name. Change the name accordingly.\nnode.warn(new Date() +Mash_Temp); //Shows the value in the debug pane.\n\nmsg.payload = (new Date() + Mash_Temp); //Sets msg.payload to the DX_gblV_Mash_Temp_DE value so it can carry forward.\n\n\nreturn msg;\n\nreturn msg; //Returns the message, meaning msg.payload moves forward with the new value.",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 830,
"y": 280,
"wires": [
[
"bd321ddfc458903d",
"63caa0e376233921"
]
]
},
{
"id": "1e10d705ed8387aa",
"type": "json",
"z": "c68aff04e20ee551",
"name": "Convert JSON String to Object",
"property": "payload",
"action": "",
"pretty": false,
"x": 710,
"y": 140,
"wires": [
[
"034ac9778088f6fa"
]
]
},
{
"id": "bd321ddfc458903d",
"type": "debug",
"z": "c68aff04e20ee551",
"name": "Show Mash Temps",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1250,
"y": 280,
"wires": []
},
{
"id": "63caa0e376233921",
"type": "csv",
"z": "c68aff04e20ee551",
"name": "",
"sep": ",",
"hdrin": "",
"hdrout": "none",
"multi": "one",
"ret": "\\r\\n",
"temp": "Mash Temperture",
"skip": "0",
"strings": true,
"include_empty_strings": "",
"include_null_values": "",
"x": 1030,
"y": 440,
"wires": [
[
"aa477984d42a05fa"
]
]
},
{
"id": "aa477984d42a05fa",
"type": "file",
"z": "c68aff04e20ee551",
"name": "Write CSV File",
"filename": "C:\\BruControl\\NodeRedData\\MashTemperature.csv",
"filenameType": "str",
"appendNewline": true,
"createDir": false,
"overwriteFile": "false",
"encoding": "none",
"x": 1180,
"y": 440,
"wires": [
[]
]
}
]