Evening,
I have a beer fermenting now. I set the step up as:
Next step on: Time Passed
Target Temp: 35.06F
Rest Duration: 48 Hours
My intent is, cool the beer to 35F and hold there for 48 hours then continue. This is my cold crash temp and time ( 48 hours at 35F ). When I look at the status page for the fermentation it shows:
Current Temperature: 33.8F
Step started: 1/23/2024, 06:21:27
Duration approaching: 11:02:30h
Temp. reached: Never
Duration holding: Never
The issue is the temperature has been below and above 35 multiple times, but the counter on the automatic page has not started. I have several other steps before this one that did not count down or advance. They are set the same way except the temps were higher (60, 50, 40) and the hold time was only 30 minutes. For each of those I had to manually advance to the next step.
Am I doing something wrong in my recipe for fermentation or did I find an issue?
Chuck
Question on Fermentation Steps
Re: Question on Fermentation Steps
Hey Chuck,
interesting question, took quite some time to look into. First things first: Your TILT bridge does not obey the "next_request_ms" returned by the backend and is typically 780s early. Please fix that as this is causing a lot of load (and money) on my side, otherwise it is just a matter of time until your device and IP will be blocked.
Regarding your question: Your TILT bridge rounds the temperature values to next closest integer in celsius (either 1°C or 2°C). Your current target temperature maps to 1.66°C. To set the time reached, the temperature has to be within +-0.25°C. This translates to 1.41°C-1.9°C which is not possible due the rounding happening on your side.
Cheers,
Bernhard.
interesting question, took quite some time to look into. First things first: Your TILT bridge does not obey the "next_request_ms" returned by the backend and is typically 780s early. Please fix that as this is causing a lot of load (and money) on my side, otherwise it is just a matter of time until your device and IP will be blocked.
Regarding your question: Your TILT bridge rounds the temperature values to next closest integer in celsius (either 1°C or 2°C). Your current target temperature maps to 1.66°C. To set the time reached, the temperature has to be within +-0.25°C. This translates to 1.41°C-1.9°C which is not possible due the rounding happening on your side.
Cheers,
Bernhard.
Re: Question on Fermentation Steps
Sorry about that. I will get on it right away. Being a complete hack I have no I idea what you are referencing here: "Your TILT bridge does not obey the "next_request_ms" returned by the backend and is typically 780s early." Can you clarify? I will start looking into the rounding now.
In the meantime, I will shut it off so it not causing the issue for you.
To what decimal place are you expecting gravity and temp? Are you expecting it in C or F?
Chuck
In the meantime, I will shut it off so it not causing the issue for you.
To what decimal place are you expecting gravity and temp? Are you expecting it in C or F?
Chuck
Re: Question on Fermentation Steps
No need to shut it off for now. PRO accounts don't get an automated penalty for now.
next_request_ms: When you send a request to the backend, you get a reponse. Part of the response is a field "next_request_ms" holding a number. This is the time in milliseconds your device is supposed to wait, before contacting the backend the next time.
You can send as many decimals as you like. Temperature is rounded internally to one decimal for some calculations. So sending one would make most sense. Temperature has to be SI (°C). Gravity can be either SG or °P (just be sure to set the correct value on your Brick on the Bricks page).
Cheers,
Bernhard.
next_request_ms: When you send a request to the backend, you get a reponse. Part of the response is a field "next_request_ms" holding a number. This is the time in milliseconds your device is supposed to wait, before contacting the backend the next time.
You can send as many decimals as you like. Temperature is rounded internally to one decimal for some calculations. So sending one would make most sense. Temperature has to be SI (°C). Gravity can be either SG or °P (just be sure to set the correct value on your Brick on the Bricks page).
Cheers,
Bernhard.
Re: Question on Fermentation Steps
Ok. I will try to track that down. I am using tilt-pitch. I will have to see if I can even do that. I was lucky to modify it work with BierBot
https://github.com/ChuckGl/tilt-pitch
chuck
https://github.com/ChuckGl/tilt-pitch
chuck
Re: Question on Fermentation Steps
Great job ! Some hints how to do it
- The "next_request_ms" field should be available after your POST in this line: https://github.com/ChuckGl/tilt-pitch/b ... eam.py#L44.
- Return that from your update() call
- Store it in a variable where update is invoked: https://github.com/ChuckGl/tilt-pitch/b ... 13-L159C21
- Upon next time, check here https://github.com/ChuckGl/tilt-pitch/b ... ch.py#L158 whether next_request_ms passed, if not, do nothing or throw a RateLimitedException Exception.
Cheers
- The "next_request_ms" field should be available after your POST in this line: https://github.com/ChuckGl/tilt-pitch/b ... eam.py#L44.
- Return that from your update() call
- Store it in a variable where update is invoked: https://github.com/ChuckGl/tilt-pitch/b ... 13-L159C21
- Upon next time, check here https://github.com/ChuckGl/tilt-pitch/b ... ch.py#L158 whether next_request_ms passed, if not, do nothing or throw a RateLimitedException Exception.
Cheers
Re: Question on Fermentation Steps
You seem to be saying the logic is already in the provider file. I suspect the return value from you is not in a format Pitch is expecting. Pitch is probably expecting the return value to be formatted like the provider file I hack at to create my bierbot provider file.
In the event I am out of my depth trying to fix this. Is there a fix minimum time to throttle request at for Basic and Pro accounts?
Chuck
In the event I am out of my depth trying to fix this. Is there a fix minimum time to throttle request at for Basic and Pro accounts?
Chuck
Re: Question on Fermentation Steps
I'm not saying it's already there. I'm saying it's not much effort to implement and giving hints how you could do it.
Nope, there is no fixed minimum time. Its dynamically calculated based on multiple inputs.
Cheers,
Bernhard.
Nope, there is no fixed minimum time. Its dynamically calculated based on multiple inputs.
Cheers,
Bernhard.
Re: Question on Fermentation Steps
Think I got it fixed. Or rather ChatGPT thinks we got it fixed. Need to work on the temp reporting next.
--Added: Nope guess ChatGPT was wrong. backend hasn't seen the tilt since I started troubleshooting.
--Added: Nope guess ChatGPT was wrong. backend hasn't seen the tilt since I started troubleshooting.
Re: Question on Fermentation Steps
If you push your changes to your repository, I'm happy to take a look (genuinely personally)