Repository navigation
Releases
Releases · roguecode/RaptHooker
RaptHooker 0.11.0
Added
- Alerts now show in the UI and can be acknowledged to clear
- Alerts also show on relevant screen UI's (#36)
RaptHooker 0.10.0
Brew profiles, alerts that follow your brew, and reminders for things like dry hopping.
Added
- Brew profiles. Save a set of alerts and planned events, pick it when you start a
brew. Make one under Brews → Profiles, or save a brew's alerts and events as a profile. - Alerts for one brew. Add alerts on a brew's page that only watch that brew.
- New alerts: Fermentation starts, Attenuation reaches and Days into the brew. Each one goes off once
per brew. - Say what to do. Give an alert a message ("Add the dry hops") and have it added to the brew's timeline when it
goes off. - Planned events and reminders. Plan an event for later in a brew (a dry hop on day 3) and get a reminder when it
starts and ends. - Readings on charts. Hovering on the graphs shows the values now.
- Decimal places. Choose how many decimals SG, °P and temperatures show under Settings → Hub. Notifications and
chart axes now show SG to 4 decimals by default.
Fixed
- Fermentation speeds up and Fermentation slows no longer go off as soon as a brew starts. They now wait for
the gravity to drop 2 points from what the pill read at the start of the brew. - Hubs where Bluetooth can't start, such as in a Proxmox LXC container, can update again instead of rolling back. New
installs in a container now turn Bluetooth off; add--bluetoothto keep it on.
RaptHooker 0.9.1
Added
GET /api/screens/wifihas abandfield: the band of the hub's own Wi-Fi network (2.4, 5 or 6 GHz).
Fixed
- Setting up a screen when the hub is on the 5 GHz band of a network that has the same name on 2.4 GHz: the screen was
given the 5 GHz channel, and could fail to join ("couldn't join"). It now gets the network's 2.4 GHz channel. - Screens a router turns away before they join ("couldn't join"), like one that only takes 802.11n: the screen now
switches between 802.11g and n by itself after 10 s, as it already did when it joined but got no address. This is in
screen firmware 1.1.2. A screen being set up gets it first, and set-up screens are offered it under Screens.
RaptHooker 0.9.1-beta.2
A beta of RaptHooker 0.9.1, for trying out what's coming.
Fixed
- Setting up a screen when the hub is on the 5 GHz band of a network that has the same name on 2.4 GHz: the screen was
given the 5 GHz channel, and could fail to join ("couldn't join"). It now gets the network's 2.4 GHz channel.
GET /api/screens/wifihas a newbandfield for the hub's own network. - Screens a router turns away before they join ("couldn't join"), like one that only takes 802.11n: the screen now
switches between 802.11g and n by itself after 10 s, as it already did when it joined but got no address. This is in
screen firmware 1.1.2. A screen being set up gets it first, and set-up screens are offered it under Screens.
RaptHooker 0.9.1-beta.1
A beta of RaptHooker 0.9.1, for trying out what's coming.
Fixed
- Setting up a screen when the hub is on the 5 GHz band of a network that has the same name on 2.4 GHz: the screen was
given the 5 GHz channel, and could fail to join ("couldn't join"). It now gets the network's 2.4 GHz channel.
GET /api/screens/wifihas a newbandfield for the hub's own network.
RaptHooker 0.9.0
Join us on Discord: https://discord.gg/qyaY6QXjdh
Added
- Support for new devices:
- iSpindel
- Tilt Hydrometer (experimental)
- RAPT Laser Level (experimental)
- Alerts for when fermentation speeds up or stalls, and alerts now show on charts.
- Brew events can now have a start and end time (like a dry hop), and can be hidden from the chart.
- Bluetooth can be switched off, for hubs that only use relays or iSpindels.
- Beta versions. Add support to switch between mainline and betas from Settings → Updates.
- A Help button in the top bar, linking to the Discord server and GitHub.
Changed
- The Pills page is now Devices.
- The dashboard and TV charts cover the whole brew instead of the last 24 hours.
Fixed
- Excluded chart ranges now also apply on the dashboard, in TV mode and on image links.
RaptHooker 0.9.0-beta.1
A beta of RaptHooker 0.9.0, for trying out what's coming.
Added
- iSpindels. RaptHooker now records iSpindels, the DIY Wi-Fi hydrometer, like a
pill: dashboard, charts, brews, calibration, alerts, webhooks, MQTT and Home Assistant, CSV export. An iSpindel sends
its readings over your Wi-Fi to the hub (/api/ispindel), with a token the hub makes for it. Add device →
iSpindel can set one up for you: the hub finds iSpindels in setup mode (it keeps looking, every 15 seconds while
the tab is open), joins one's hotspot for about a minute, changes only the settings it needs (Wi-Fi, the HTTP
service, the hub's address, the token and how often it sends) and adds it when its first reading arrives. Or set it
up by hand, with every value to type shown on the same screen, ready to copy. Tested with a real iSpindel on firmware
6.5.1.- Stored in the same tables as pills, with two new columns for readings,
tilt(degrees) andvoltage(battery
volts), and their sums in the rollups (schema 6). Older versions leave them alone: they list an iSpindel you've
added but don't record it. - An iSpindel's
kindisispindel, its addressISPINDEL:<chip id>and its idispindel-<chip id>. - A new kind of API token, made by the hub and listed as iSpindels under Settings → API tokens, can only post
iSpindel readings. - Readings in the API gain
voltage, and devices heard nearby aname. New webhook variablebattery_voltage, MQTT
state fieldbattery_voltageand, for iSpindels, a Battery voltage entity in Home Assistant. An iSpindel's CSV
export has its own columns.
- Stored in the same tables as pills, with two new columns for readings,
- Tilt hydrometers (experimental). A Tilt of any colour, Pro too, is found over Bluetooth (or
through a relay) and added like a pill, then recorded once a minute: gravity and temperature, with brews, charts,
calibration, alerts, webhooks, MQTT and Home Assistant, CSV export. Not tried with a real Tilt yet: please report back
if you have one.- A Tilt's
kindistilt; its id comes from its Bluetooth address, like a pill's. It's named and coloured after its
colour when added. - The ESP32 relay's ESPHome configuration passes Tilts on too: update yours from
docs/esphome-relay.yaml to relay them.
- A Tilt's
- RAPT Laser Levels (experimental). A RAPT Laser Level on a keg says how far down the beer
is; RaptHooker shows how full the keg is (litres and %) from the keg's size, set on its page (KegLand's 19 L keg to
start with). It has its own dashboard card with a bar, a volume chart, TV mode and screens, and webhooks, MQTT, Home
Assistant and CSV export get the volume, fill and distance. Not tried with a real one yet: its Bluetooth format comes
from two community projects, checked against a third's captures (see attribution.md). Please
report back if you have one.- A new
distancecolumn for readings (mm), NULL for every other device, and its sums in the rollups (schema 7).
Older versions leave it alone. - A Laser Level's
kindislaser-level, and its settings have avessel(capacitylitres,emptyMm,fullMm).
Only the distance is stored, so changing the keg changes how full it was everywhere. - Readings in the API gain
distance,fillandvolume, and the historydistance. New webhook variables
volume_l,fill_percentanddistance_mm, MQTT state fieldsvolume,fillanddistance, and Volume,
Fill and Distance to the beer entities in Home Assistant for Laser Levels. - Keg up. Keg up a beer under a Laser Level, with its name, style and ABV (all
optional, and they can be filled in from any brew). Its card then shows the beer with how much went in, is left and
has been poured (in place of how full the keg is), and its chart starts at the new Kegged range. Keg empty
moves it to the earlier kegs on its page.- Kept in a new
kegstable (schema 8), which older versions leave alone. How much went in is the fullest reading in
the 6 hours after kegging up. - New
/api/kegsendpoints,kegandkeg-removedlive messages, and akegon each Laser Level in the API.
- Kept in a new
- Volume units. With a Laser Level, a volume unit next to °C/°F shows kegs in litres, US gallons, UK or US pints, or
each Laser Level's own unit (330 ml cans, say: set in its settings, and in the API as itsservingUnit). Picked per
browser; the hub keeps litres.
- A new
- Add device. A new Add device button on the dashboard opens one dialog with a tab for each kind of device: RAPT
Pills, RAPT Thermometers, RAPT Laser Levels and Tilts heard nearby, ready to name and add as on the dashboard, and
iSpindels. - Alerts on how fast fermentation is going (#21). Two new
kinds of alert, Fermentation slows and Fermentation speeds up, go off when the gravity drops
fewer or more points a day than you pick, going by the pill's velocity. "Fermentation slows" at 10, say, tells you
fermentation is nearing its end. While a brew is running, it waits until the gravity has dropped 2 points from the
OG, so it doesn't go off before fermentation gets going. As you type a threshold, the alert editor says what it means
in SG (0.5 points a day: "drops by less than 0.0005 in a day (that's 1.0500 to 1.0495)"), where it clears and what
else decides when it goes off; "Fermentation stable" gets the same.- Their kinds in the API are
velocity_slowandvelocity_fast, with thethresholdin points a day dropped (a
velocity of −12 is 12), which has to be more than 0. An older version, if you go back, keeps such a rule but doesn't
fire it.
- Their kinds in the API are
- Alerts on the chart. A pill's History chart marks where each alert went off and where it cleared. Alerts,
under the chart, hides them in this browser.GET /api/alerts/eventstakespillId=for just one pill's. - Events that last a while, and taking events off the chart
(#20). A brew event can have an end (Add an end time in
the event), now or planned: a dry hop sitting in the fermenter for three days, say, is shaded on the charts from
start to end, and the timeline says how long it lasts. The eye next to an event on the timeline takes it off the
charts (the brew's, the pill's and the summary's) and puts it back; it stays on the timeline. The hub remembers it,
so every device shows the same. See Events.- Stored in two new columns of
brew_events(schema 9):end_at, empty for every event so far, andhidden. An
older version, if you go back, shows every event as a moment, on the chart, and keeps both when it changes one. - Events in the API gain
endAt(null for a moment) andhidden.POSTandPUT /api/brews/:id/eventstake both;
leaving them out of aPUTkeeps what's saved.
- Stored in two new columns of
- Switching Bluetooth off, for a hub on a machine without it or where it can't be passed through (an LXC container,
say). Settings → Hub → Listen over Bluetooth switches the hub's own Bluetooth off or on straight away; the
installer's--no-bluetoothswitches it off for good (bluetooth.enabled: falsein the config file, kept through
updates;--bluetoothundoes it) and leaves the machine's Bluetooth alone. While it's off there's no Bluetooth isn't
working warning, and relays and iSpindels carry on. See
Without Bluetooth.- Hub settings gain
bluetooth(true unless switched off; leaving it out ofPUT /api/settings/hubkeeps what's
saved). The Bluetooth status'sstatecan beoff, withoffBysaying where (settingsorconfig). - An older version, if you go back, listens over Bluetooth again.
- Hub settings gain
- Beta versions. Settings → Updates → Beta versions lists the betas published on GitHub (pre-releases, like
0.9.0-beta.1) with what's in each, and the owner can install one with Try this beta. A hub on a beta says so
(Beta in the top bar), points out a later beta of the same one, and can Go back to release x.y.z at any time;
when the release the beta leads up to is out, it's offered as an ordinary update. Hubs never install a beta by
themselves. See Trying a beta.- Your data stays through every switch: every release keeps working with what any other has left, older or newer.
Every release is now tested against every published one, both ways, before it's published
(Keeping people's data). GET /api/updategainsprerelease,canInstall,betas,betasCheckedAt,betasError,newerBetaand
target(the version an update is installing, or didn't).POST /api/update/betaslooks for betas, and
POST /api/update/install({ "version": "0.9.0-beta.1" }) installs one of them, or the latest release.update.sh --versiontakes a beta's version too.
- Your data stays through every switch: every release keeps working with what any other has left, older or newer.
Changed
- The MeadTools webhook preset is now marked Verified: it's been tried against MeadTools and works.
- The Pills page is now Devices, as it has every kind of device on it.
- The small charts on the dashboard's cards and in TV mode cover a running brew (or the beer on tap) from its start,
or else the last 24 hours, or everything when there's less than that (they always showed the last 24 hours). - For an iSpindel, the
rssiwebhook variable and the Signal strength entity are its Wi-Fi signal. screens.wifiandscreens.hubUrlalso apply to setting up iSpindels; the hub sets up one screen or iSpindel at a
time.- The
devicewebhook variable can also betiltorlaser-level. A Tilt has no Battery or Tilt entity in Home
Assistant (it sends neither), and a Laser Level only the entiti...
RaptHooker 0.8.0
Added
- MeadTools webhook preset. Send your pills' readings to MeadTools' wireless hydrometer
logging: paste the hydrometer token from MeadTools into the body, and each pill shows up there under its own name,
ready to start a brew for. Untested for now, so please report back if you try it.
Changed
- Send all pills in one request is only offered for destinations that can read several pills from one request
(your own server, Home Assistant, Discord, Everything (JSON) and Custom). Brewfather, Grainfather, Brewer's Friend,
BrewSpy, Bricks, MeadTools, Fermentrack, Ubidots and ThingSpeak take one reading per request, so a webhook for all
pills sends each one on its own. A webhook already saved with it on for one of them still sends as before; its card
and the editor warn about it.
RaptHooker 0.7.0
Added
- Screens. RaptHooker can now turn a Geekmagic Ultra/Smart weather clock (a little 240 × 240 Wi-Fi desk screen) into a display
for your pills. Plug it in, open the new Screens tab and press Add a screen: the hub finds the screen's own
Wi-Fi, puts RaptHooker's firmware on it, connects it to your network and shows the details once it's there. From then
on the screen fetches a picture of a pill (or of every pill) from the hub, designed with the same choices as an image
link, as often as you like; when something's wrong it says so in a line under the picture. The Screens page shows
how each one is doing, offers new screen firmware (Update all), finds screens on the network again (adding one
takes the code it shows), and can put a screen's original firmware back. A pill's page shows the screens showing it,
and the Image link dialog can send its picture to a screen. A hub that can't switch Wi-Fi networks (in Docker, say)
sets screens up from a browser instead. See docs/rapthooker-screens.md.- Stored in a new
screenstable (schema 5), which older versions leave alone. - On a Pi, setting up again (or updating) adds a polkit rule that lets the service switch Wi-Fi networks through
NetworkManager for this. - New config keys
screens.wifiandscreens.hubUrl; the Docker config sets screens up from a browser.
- Stored in a new
- ESP32 screens over USB. The ESP32-2432S028 2.8" board ("Cheap Yellow Display", 320 × 240) is a RaptHooker
screen too: plug it into the hub's USB, and Add a screen (on its new Plugged into the hub (USB) tab) writes the
firmware and your Wi-Fi details in one go, watches it join, and finds it on the network, in about a minute, without
the hub leaving its Wi-Fi. As panels on these boards vary from batch to batch, Does the screen look right? shows a
test pattern and can turn, mirror or recolour the picture. Updates on these boards go back to the firmware they had by
themselves if the new one doesn't work.- The screen firmware (1.1.0) now builds for the ESP32 as well as the ESP8266, from the same source.
- On a Pi, setting up again (or updating) installs esptool in
/usr/local/lib/rapthooker/esptooland adds the
service to thedialoutgroup. - New config keys
screens.usbandscreens.python; the Docker config has USB set-up off. - Saved screens gain
panel(display corrections), which older versions keep. - Boards left plugged into the hub are recognised: firmware 1.1.1 says which screen it is over USB (without
restarting), so the USB tab lists your screens under Already set up and only opens by itself for a new board. - Screens are marked experimental. The Screens page says so, and lists the screens that have been confirmed
working, with where users bought them (not endorsements), and which other screens might or won't work.
Changed
- The live updates'
hellomessage also has the hub's screens.
Fixed
- A hub on Wi-Fi alone came back after a router restart only when NetworkManager happened to try again (it gives up
after a few failures). Now the hub asks NetworkManager to reconnect once it has been off its Wi-Fi for 2 minutes.
RaptHooker 0.6.0
Added
- Leave a bump out of the charts. Knocked the pill while adding hops, and the chart shows a big spike? Zoom in on it
and press Exclude this range. The pill's and the brew's charts then hide those readings and draw a dashed curve
through the gap that carries on the way the readings were going either side; the charts' averages, smoothing and
RaptHooker's velocity leave the knock out too. Point at the curve (or tap it) to see the range shaded, with a button
to put its readings back for good. The readings themselves are kept: brew stats, alerts, webhooks and exports don't
change. Exclusions, next to the lines on the chart, switches back to the readings in this browser. The ranges are
saved with the pill's settings (a newexclusionslist, which older versions keep), so every browser sees them. - Smoothing for the eye. Smoothing − / + under a pill's and a brew's chart draws the lines as a moving average
over 15 minutes up to 16 hours, centred so the line doesn't lag; 0 shows the readings as they are. Only the drawing
changes: the legend, stats, alerts and webhooks keep using the readings. Each browser remembers its choice.
Changed
- The chart's buttons are under it. The lines to show, Show it all, Exclude this range, Exclusions and
Smoothing sit below the chart; the time ranges, PNG and CSV stay above. The notes that were under the chart are
gone (the legend names the dotted and faded lines).
Removed
- Picking the OG from the chart. Tapping a reading to use it as the brew's OG is gone; change the OG with Edit
on the brew.