Brewing with Node-RED pt 2: My Dashboard

This post continues my discussion of Node-RED for brewing applications. Read part 1 here.

The most recent information and version of my brewing dashboard can always be found on github. I’ll improve it and add features from time to time, and it’s all there for you to borrow ideas from/copy/modify and otherwise jump start your own process of using Node-RED.

My brewing dashboard is quite specific to my 2 vessel brewery. Node-RED really encourages intensely personalized app/dashboard development. Notable features of my brewing dashboard are:

  • PID temperature control of mash (using RIMS), with output limiting functionality
  • PID temperature control and manual control options of a boil kettle
  • Output blocking to ensure only a single element is used at once
  • Volume sensing (not shown in screenshots below as I had my pressure transmitter disconnected)
  • Looks nice and has mobile friendly buttons and sliders
  • MIT opensource license (any my code anyways, Node-RED itself is licensed under Apache 2.0)

There’s a bit more detail in each of the below screenshots. Please let me know if you have any questions about what I have going on here!

This dashboard has worked incredibly well for me so far. I’ve been using it in some form to brew for the past year or so. Changes I make to my dashboard now have tended towards more aesthetics rather than function. A goal of mine is to eventually incorporate control of my pump VFD (beyond basic on/off functionality), through this dashboard.

This is the main view of my brewing dashboard. Works well on mobile too (using 1 column instead of 2). Ignore the missing temperatures, I took this UI screenshot while all of my sensors were disconnected for brewery modifications…
The mash settings page has all the advanced output and settings in regards to mash temperature control, that you may expect. One somewhat novel feature is that I have an output limiter for my RIMS inline heater. So for heating strike water I may use 100% output, but dial it back to 25% max for mash recirculation and temperature control. Also on this page, a temperature Δ may be specified (mash target vs. rims target). This may be necessary when brewing in situations with high heat loss (e.g. outside in the winter).
The boil settings page is a little simpler. Just basic PID settings and PID related outputs (these are useful for tuning and troubleshooting PID behaviour). A PID on the boil may be used for no-boil beers or kettle sours. Possibly as well for a hop stand, though I think that’d be overkill.

  17 comments for “Brewing with Node-RED pt 2: My Dashboard

  1. Jay
    July 8, 2019 at 8:43 am

    I have to say, this IS the way to go for setting up a highly customizable interface with the ability to integrate almost everything! I looked through your flows and it is a bit of a challenge for me to follow but I hope to be up to speed soon. I played a bit with a simple ESP32 + sensors and a Sonoff and it works well! Thanks for the tips and the writeup!

    • Justin
      July 8, 2019 at 9:48 am

      Sure thing! While homebrewers trying to do this stuff on their own with Node-RED may not find information regarding their specific use case, most of functionality they would be searching for would be used in many other applications. Whether it’s scheduling lights around a smart home, or louvres, fans, pumps and sprayers in a connected greenhouse, lots of builds and entire “flows” for that matter out there that are applicable to homebrewing. Search methodology may need to be adjusted, is all!

  2. Lee
    August 28, 2019 at 7:29 pm

    Hey Justin, about to start having a look at Node-RED due to inspiration from your work, as an alternative to my current CraftBeerPi rig. From your repo it appears that you haven’t set up for step mashing, are you able to tell me if there’s any limitations in Node-RED that would prevent a mash step (time / temp) sequence being built similar to CBP or Ardbir, etc.? This would be a requirement for my brewery so a showstopper right now if that type of thing is outside a Node-RED scope.

    Also, given that you’ve written a few CBP plugins yourself, do you know if there’s any way to adjust the boil power (PWM duty) on the fly during a boil step in CBP? I’ve read through as much of the code as I can (although my understanding is limited) and can’t see any way to hook into the GUI power setting from a plugin.

    Thanks,

    • Justin
      August 28, 2019 at 10:56 pm

      Yes I personally haven’t implemented any scheduling for step mashes etc., but seems like a worthy challenge! Setting up in the backend I think would be pretty easy, making a UI for it could lead to some challenge if that was a goal/requirement.

      In the backend, the most basic thing you could do that I can think of is to create a series of inject nodes, which injected a new set point for mash target temperature at a specified time.

      There are also a handful of different timer and scheduler type of plugins that you can play around with, as probably the most popular use of node-red is automatically setting lights and window blinds and that sort of thing, see https://flows.nodered.org/?sort=downloads&term=timer&num_pages=1

      Anyways. I will add this to my list of things to play around when I next have some time… let me know if you have any luck!

      I never used the brew steps feature with CBPi when I was involved in that, sorry. You could maybe do something a little hacky where you write a kettle type that sets PWM power to the “kettle target”. Not sure how comfortable you are with this sort of stuff, but that’s one thing I can think of off the top of my head if scheduling power levels is not possible, but scheduling target temps is…

  3. Stig Berntsen
    October 21, 2019 at 12:20 pm

    Hi Justin, is it easy to start with Node-Red an import your app – to take a look?
    Node-red is new to me.

    • Justin
      October 21, 2019 at 12:36 pm

      I think it is fairly easy! Happy to help if you get stuck Stig.

      • Stig
        October 21, 2019 at 2:15 pm

        I`l give it a go :) Should have done this a long long time ago. Any pointers to get started is appreciated.

        • Justin
          October 21, 2019 at 2:33 pm

          Should be able to get node-red installed with a single command. See here: https://nodered.org/docs/getting-started/raspberrypi

          You can then run it as a service, also detailed on that link.

          Once you open the editor you can import flows. Literally just copy and https://raw.githubusercontent.com/jangevaare/brew2/master/flows_brew2.json

          and you will have it running. You will need to change a couple things like the addresses of your 1wire sensors. Navigating the editor may take some getting used to if you haven’t used anything like it before.

          • Stig
            October 21, 2019 at 6:13 pm

            Thanks, this will get me going :)

          • Stig Berntsen
            May 10, 2020 at 5:51 pm

            Sorry, never got it up and running, keep getting a lot of “unkowns” – when I import the content from the flows_brew2.json file.

  4. Thomas
    May 21, 2020 at 4:34 pm

    I am rebuilding my electric brewery, and I like you use of node-red. I am curious about what sensors you are using for volume measurements. It looks like some sort of pressure sensor. I am assuming you are measuring the pressure of a tube submerged in the water. Can you share any more detail?

    • Justin
      May 21, 2020 at 5:10 pm

      It is a 4-20ma pressure transducer (0-6Kpa) from aliexpress with a analog input board from widgetlords – this one. They have an official Node-RED plugin and several different I/O boards for RPi that you may find useful or interesting.

      I’m not connecting the pressure sensor to a tube or anything. Actually I haven’t been using it lately because I am short on kettle ports.

      Check out how Hop Rod Garage sets their system up with pressure sensors hardware wise, they have several posts on it.

      • Thomas
        May 22, 2020 at 1:05 am

        Do you have a part no of the exact sensor?

        • Justin
          May 22, 2020 at 10:37 am

          This one here in 6kpa. You can convert kpa to cm of water column to get an idea of the volume measuring range.

  5. Michael Kurak
    May 27, 2020 at 9:34 pm

    Hi Justin,

    Can you conrtol multiple kettles with Node Red…or would one be better off with some other system? I am, in particular, thinking about the possibility of controlling multiple BIAB-type systems simultaneously.

    • Justin
      May 27, 2020 at 9:54 pm

      Totally. There’s no explicit limit, but eventually of course you’ll have resource allocation or GPIO limitations.

      There’s ways you could, say, set up one system, and copy it several times for independent control of identical systems (say for a brew on premises operation?), within the same Node-RED runtime, changing only sensor and GPIO ids.

      Edit: I should add also, that my system isn’t set up for something like this, but I think somebody could get a simple implementation going in an afternoon. You may find some inspiration on the Node-RED forums here.

  6. Mihajlo Zivkovic
    July 31, 2020 at 1:25 pm

    Hi Justin,
    totally cool project. I am using Craftbeer PI past 2 years and have expansion board 3 and electronics built around it.
    Did you use new electronics for your new node red setup and do you think I can just use Raspi + Expansion board to control elements I have ?

Leave a Reply

Your email address will not be published. Required fields are marked *