BrewBlox Tilt Service

Yes.

Edit your docker-compose.yml, and add --lower-bound [value] and/or --upper-bound [value] to command. Then run docker-compose up -d to restart the reconfigured service.

1 Like

Thanks for the quick response @Bob_Steers, great service as usual.

0.9 and 1.2 are probably good default limits.

1 Like

@j616s Kudos and Thanks for your great work on the Tilt service. I installed it two days ago and all is working great. I installed by modifying docker-compose.yml and then added tilt to the graph.

Question: Is there a way to change update frequency?

Looks like updates in the graph are every minute which ends up creating a pretty jagged line. Given fermentation is a slow process, I think a data point every 15 min (or maybe even as slow as 1 per hour) would make more sense and result in a smoother graph line. Caveat: I think the update to the graph should average (probably use “median” or “mode”) all the values taken over the last period of time.

Data shown in graphs is averaged, based on the shown period and data available in the database.

If you just installed the Tilt it will use the 1m averaging until it has enough data to switch to 10m / 1h / 6h periods.
To try this feature, you can select Spark data over the last month(s). When hovering over individual points, you’ll see the increased interval.

Thx @Bob_Steers!
I changed graph to show “2d” duration and that does indeed smooth out the line with data points at 10m intervals!
Interestingly, when the duration is “1d” the graph still shows 1m data points (but maybe that’s just my lack of understanding all the parts.)
Cheers!

The dataset is selected that has closest to, and at least 200 points during the chosen period.

Assuming no gaps, the boundaries are:

  • realtime -> 1m @ 3h 20m
  • 1m -> 10m @ 1d 9h 20m
  • 10m -> 1h @ 8d 8h
  • 1h -> 6h @ 50d

Edit: during design, we also charted yielded points to check max output before boundary.
X is total number of published points, and Y is how much the current optimal dataset would yield.
This is based on the observed ~10 points a minute we get when using a 5s sleep between publishing data in the Spark service.
https://plotly.com/~steersbob/6/realtime-downsample-1m-downsample-10m-downsample-1h-downsample-6h/#/

I think I got too excited too soon (well, I’m still excited because this setup is so much better than the tilt app, but …)
Tilt data has stopped showing up on the graph.
If I restart the tilt service, it starts showing up again for a few minutes, then stops again.
I don’t see anything interesting in the tilt service logs.

Anyone have any troubleshooting thoughts?

A few people have mentioned this but I haven’t seen it myself. I seem to remember someone mentioning the same was happening with the TiltPi software. I’ll try and put some time to investigating when I can but I can’t promise when that’ll be. If you do spot anything in the logs etc, I’d love to know.

Hi all,
I started a new topic for: [Brewblox-Tilt] Tilt data stops showing on fermentation graph

I’ve not checked in on brewblox and tilt integration in a long time, but it appears things have been moving right along. A question since I’m not looking to upgrade my system for another week or two: does this service allow the poll rate from the tilt to be adjusted independent of the other devices (i.e. temp probes)? With my current setup it polls the tilt so frequently that the battery dies after a handful of brews.

The Tilt is independent from everything connected to the Spark.
@j616s will have to clarify what the poll rate is for the Tilt, and whether it can be adjusted.

The way the Tilt works, it isn’t polled. The Tilt broadcasts at a set frequency over Bluetooth Low Energy and anything else listens passively. I think there may be some feedback in BLE to ask transmitting devices to adjust their transmit power but I’m not certain if thats implemented. And my understanding of it is that adjusting when/how often the receiving device listens won’t have any impact. But my understanding is the device will always broadcast values at whatever frequency it chooses no matter what is listening. Any change in battery life is likely coincidental. The tilt service will record values as frequently as it receives them, which I seem to remember Tilt state is every 7secs, though I think its a bit variable. Particularly if the signal is poor and the receiving device misses a broadcast.

Ah, that’s really interesting and good to know @j616s. At least from my experience, I get probably 3-4 brews out of a battery whereas others seem to suggest 10-15 when checking intermittently with the tilt mobile app (all anecdotal of course). It could be coincidental as you say, but I wonder if as part of the bluetooth protocol if there’s a lower-cost receiver discovery process that would reduce overall power usage if nothing is listening for the data.

It also depends if you have one of the older models with a screw cap on both ends, or a newer with a screw cap on one end. I think they’re rated for about 1-2months per battery with the old ones and about 12-18months with the new ones.

But, as I say, the BLE profile used is a passive broadcast one. It’s actually primarily intended for location finding in buildings or underground metro systems. You have a beacon that broadcasts two IDs. One for a large scale location, e.g. building, and one for a small scale, e.g. room. That way, an app on your mobile could figure out where you are when you can’t get a GPS signal. Tilt use the same thing but put the temperature in in place of one ID, and the SG in place of the other.

1 Like

@j616s Hi James,
I’ve set up my brewblox controller on a Ubuntu 20.04 machine.
Unfortunately, my tilt is not pairing via Bluetooth.

douwe@douwe-HP-ProDesk-600-G1-DM:~/brewblox$ brewblox-ctl follow |grep tilt
Attaching to brewblox_spark-one_1, brewblox_spark-brew_1, brewblox_mdns_1, brewblox_ui_1, brewblox_automation_1, brewblox_plaato_1, brewblox_tilt_1, brewblox_datastore_1, brewblox_traefik_1, brewblox_history_1, brewblox_influx_1, brewblox_eventbus_1, brewblox_emitter_1
tilt_1        | 2020/06/08 12:27:39 INFO     brewblox_service.service        Creating [tilt] application
tilt_1        | 2020/06/08 12:27:39 WARNING  brewblox_tilt                   Calibration file not found: /share/SGCal.csv . Calibrated values won't be provided.
tilt_1        | 2020/06/08 12:27:39 WARNING  brewblox_tilt                   Calibration file not found: /share/tempCal.csv . Calibrated values won't be provided.
tilt_1        | 2020/06/08 12:27:39 INFO     brewblox_service.service        Service info: v1.0.2-53-g14b0a0f @ Sun May  3 13:18:05 UTC 2020
tilt_1        | 2020/06/08 12:27:39 INFO     brewblox_tilt                   Started TiltScanner

I can see the tilt on my iPhone in the Tilt app.

can try to pair with the blutoothctl command line?
thanks,
Douwe

Hello. Bluetooth Low Energy as used by the Tilt doesn’t pair. The Tilt just broadcasts values to anything listening. It looks like the Brewblox Tilt service has started correctly. So it could be an issue with the signal strength? Your phone will likely have a different type of antenna/bluetooth chip to the one in the computer you’re using to run Brewblox. These factors along with things like orientation of the antenna can affect signal strength. Your phone getting a good signal isn’t necessarily a guarantee your computer will. You could give blutoothctl a go, though.

Thanks James,

I will give that a try.
The ubuntu machine is pairing with a bluetooth speaker and my Ipods. So bluetooth is working.I use a Pluggeble USB dongle. The machine is less than 1 meter away from the fermentation vessel.

I will keep you informed!

Is it possible that the dongle doesn’t support BLE? That might result in the software connecting to the bluetooth drivers successfully but it not receive any data.

I will check that, Thanks