¿Existe una biblioteca web de código abierto para calcular ABV u otras tareas relacionadas con la preparación?

¿Alguien conoce un buen script o biblioteca de código abierto/gratuito que se pueda usar en una página web para calcular ABV? No estoy buscando un sitio que haga el cálculo por usted, quiero agregar el javascript a mi sitio. para hacer el calculo.

Escribí un javascript simple pero no pude descifrar el cálculo que tuvo en cuenta la temperatura desde el momento en que se midió. Iba a publicar mi Javascript y html aquí, pero no sé cómo publicar mi html, así que solo daré el javascript a continuación.

Además, si alguien conoce las ecuaciones matemáticas para obtener ABV teniendo en cuenta la temperatura, podría escribir el JavaScript

function calcAbv() {
  var og = document.frm.og.value;
  var fg = document.frm.fg.value;
  document.frm.oneabv.value = Math.round((og - fg) * 131.25,2);
  document.frm.onealtabv.value = Math.round((76.08 * (og - fg) / (1.775 - og)) * (fg / 0.794),2);
  document.frm.twoabv.value = Math.round((1.05/0.79) * (( og- fg )/fg) * 100,2);
  document.frm.twobasabv.value = Math.round((og - fg) * 131,2);
  document.frm.threeabv.value = Math.round(((76.08 * (og - fg) / (1.775 - og)) * (fg / 0.794)),2);
  document.frm.threebasoneabv.value = Math.round(((og - fg) / .75) * 100,2);
  document.frm.threebastwoabv.value = Math.round((og - fg) * 131,2);
  document.frm.fourabv.value = Math.round((og - fg) * 131,2);
}
un montón de fórmulas: homebrewtalk.com/wiki/index.php/Beer_math ¿Por qué es importante la temperatura para ABV calc? ¿Seguro que no te refieres al ajuste del hidrómetro?
@TomMcCann La temperatura puede afectar la lectura del hidrómetro porque la flotabilidad es diferente a diferentes temperaturas. Encontré esta fórmula [Corrección de temperatura del hidrómetro] ( homebrewtalk.com/wiki/index.php/… ) en el sitio que proporcionó. ¡Muchas gracias!
Para publicar el código, hay un botón con llaves: "{}" Eso sangrará el código con cuatro espacios, lo que indica que debe mostrarse como un bloque de código usando una fuente monoespaciada.

Respuestas (5)

Hay brauhaus , una biblioteca de javascript para los cálculos de cerveza casera, tanto en el navegador como en el servidor.

No lo he usado; la página de inicio dice que las características incluyen:

  • Soporte para múltiples tiempos de ejecución de Javascript Node.js 0.6.x, 0.8.x, 0.10.x Chrome, Firefox, Internet Explorer 9+, Safari, Opera, etc.
  • Calcule OG estimado, FG, IBU, ABV, color SRM, calorías y más
  • Compatibilidad con la fórmula de cálculo de Tinseth y Rager IBU Compatibilidad con pellets frente a lúpulo entero
  • Soporte de ebullición de adición tardía
  • Soporte de lupulización en seco
  • Conversiones de unidades incorporadas (kg <-> lb/oz, litro <-> galón, temps, etc.)
  • Color en °SRM para nombrar, °EBC, °Lovibond, conversiones RGB, color CSS, etc.
  • Compatibilidad con complementos para agregar funciones adicionales
  • Ligero: alrededor de 28 kb cuando se minimiza

Se puede usar como una biblioteca javascript de cliente: la página de inicio enumera ejemplos de cómo hacer cálculos. La interfaz principal para los cálculos es a través de una receta: dado que desea un cálculo directo de ABV desde el OG/FG, es posible que deba revisar el código para encontrar ese cálculo específico. La alternativa es crear una receta ficticia y agregar ingredientes, o intentar configurar los valores OG y FG de la receta directamente.

Thx @mdma, parece una gran biblioteca para comenzar, y es de código abierto, así que estoy feliz

Hubo una discusión en HBT sobre esto. Si mides en Fahrenheit, la fórmula es la siguiente:

C = ((1.313454 - (0.132674*F) + (0.00205779 * F^2) - (0.000002627634 * F^2)))

¿Dónde Cestá la corrección y Fson los grados Fahrenheit del líquido que se mide con el hidrómetro? Esto supone que el hidrómetro está calibrado para 59 grados Fahrenheit. Si mide los grados en Celsius, la siguiente fórmula logrará lo mismo, asumiendo (nuevamente) que el hidrómetro está calibrado a un equivalente de 15 grados Celsius (cambiando Fa DCas para no confundirlo con corrección C):

C = ((1,313454 - (0,132674 * ((CC * 1,8) + 32)) + (0,00205779 * (((CC * 1,8) + 32))^2)) - (0,111112627634 * (((CC * 1,8) + 32))^3)))

Por lo tanto, si desea ajustar sus dos variables por adelantado, reemplazando las variables no ajustadas, debe hacer lo siguiente (suponiendo que la temperatura es el nombre de la variable document.frm.og.tempy se mide en grados Fahrenheit):

function calcAbv() {
  var og = ((1.313454 - (0.132674*document.frm.og.temp) + (0.00205779 * Math.pow(document.frm.og.temp, 2)) - (0.000002627634 * Math.pow(document.frm.og.temp, 2)))) + (document.frm.og.value * 0.001),
      fg = ((1.313454 - (0.132674*document.frm.fg.temp) + (0.00205779 * Math.pow(document.frm.fg.temp, 2)) - (0.000002627634 * Math.pow(document.frm.fg.temp, 2)))) + (document.frm.fg.value * 0.001);

  // Rest of the function
}

De lo contrario, si se mide en grados Celsius, lo siguiente funcionaría igual de bien:

function calcAbv() {
  var og = ((1.313454 - (0.132674 * ((document.frm.og.temp * 1.8) + 32)) + (0.00205779 * Math.pow((((document.frm.og.temp * 1.8) + 32)), 2))) - (0.111112627634 * Math.pow((((document.frm.og.temp * 1.8) + 32)), 3)))) + (document.frm.og.value * 0.001),
      fg = ((1.313454 - (0.132674 * ((document.frm.fg.temp * 1.8) + 32)) + (0.00205779 * Math.pow((((document.frm.fg.temp * 1.8) + 32)), 2))) - (0.111112627634 * Math.pow((((document.frm.fg.temp * 1.8) + 32)), 3)))) + (document.frm.fg.value * 0.001);

  // Rest of the function
}
¡Es correcto, pero no es el mejor código que he visto! :) Debe extraer las lecturas de temperatura y gravedad del DOM a una variable local, luego hacer la conversión (C a F si es necesario), luego aplicar la corrección de temperatura y finalmente calcular el abv. El código será mucho más claro en lugar de tratar de combinar todos estos pasos (con la repetición inherente) en el cálculo de ABV.
Estoy de acuerdo, pero como no conozco el contexto de su DOM, simplemente conecté la fórmula dada el Javascript proporcionado. Si publicara el código completo, podríamos enviarlo a Stack Exchange y ayudarlo a limpiarlo.
Sí, estaba pensando que esto estaba fuera de tema para este sitio y encajaba mejor con SO/Programación.

Yo uso Brewtarget . Es una utilidad de código abierto de Java que hace todo lo que necesita para elaborar cerveza, incluidos los cálculos del equipo, las temperaturas de maceración/rociado, las estimaciones antes de la ebullición, la ebullición posterior y los volúmenes finales y la gravedad, IBU, SRM y tiene algunas buenas recetas e instrucciones impresas para el día de la elaboración.

Oh, probé Brewtarget antes, pero no me di cuenta de que era de código abierto. sourceforge.net/projects/brewtarget Saludos Wyrmwood...

Montón de buenas bibliotecas de Brewerwall . Escuché sobre esto en el canal de slack de homebrewchat , deberías unirte :)

¿Puede consultar la siguiente URL? Tiene 5 calculadoras php, js https://github.com/coolfuturefbiagent/calculators

Probé todas las calculadoras y ninguna pasó de 'Cargando...'
Parece estar funcionando para mí...
@FranklinPCombs, ¿lo ejecutó en su servidor local?