hakkoso/recipes.json

233 lines
8.3 KiB
JSON

[
{
"name": "Salame",
"description": "25 e 90 di umidità per 12h poi passa a 20 e 80-85 per 4gg e poi 16 gradi circa a 80 per una ventina di giorni un mesetto",
"controllers": [
"(make-duty-controller \"humidifier\" 0.6 100 '<)",
"(make-duty-controller \"freezer\" 0.4 100 '>)",
"(make-duty-controller \"heater\" 1.0 100 '<)"
],
"phases": [
{
"name": "Prepare",
"description": "Turn Fan On",
"exit_condition": "#t",
"on_load": "(set-actuator \"fan\" #t)",
"on_exit": "#t"
},
{
"name": "Stufatura",
"description": "Tiene ad alta temperatura e umidità",
"exit_condition": "(> (time-in-this-phase) (hours 11))",
"on_load": "(begin \n(set-controller \"freezer\" \"T_ext\")(set-controller \"humidifier\" \"H_ext\")\n(set-controller \"heater\" \"T_ext2\")\n(set-target \"H_ext\" 90.0)\n(set-target \"T_ext2\" 25.0)\n(set-target \"T_ext\" 30.0))",
"on_exit": "#t"
},
{
"name": "Abbassa",
"description": "Abbassa entrambe (temp a 20, umidità a 82)",
"exit_condition": "(> (time-in-this-phase) (hours (* 24 4))",
"on_load": "(begin \n(set-controller \"freezer\" \"T_ext\")(set-controller \"humidifier\" \"H_ext\")\n(set-controller \"heater\" \"T_ext2\")\n(set-target \"H_ext\" 82.0)\n(set-target \"T_ext2\" 20.0)\n(set-target \"T_ext\" 23.0))",
"on_exit": "#t"
},
{
"name": "Maturazione",
"description": "Abbassa entrambe ancora (temp a 16, umidità a 80)",
"exit_condition": "(> (time-in-this-phase) (hours (* 24 30))",
"on_load": "(begin \n(set-controller \"freezer\" \"T_ext\")(set-controller \"humidifier\" \"H_ext\")\n(set-controller \"heater\" \"T_ext2\")\n(set-target \"H_ext\" 80.0)\n(set-target \"T_ext2\" 15.0)\n(set-target \"T_ext\" 16.0))",
"on_exit": "#t"
}
]
},
{
"name": "Pollo CBT",
"description": "Cuoce il pollo in vasetto a bassa temperatura",
"controllers": [
"(make-duty-controller \"heater\" 0.90 60 '<)",
"(make-duty-controller \"heater2\" 0.90 60 '<)"
],
"phases": [
{
"name": "Prepare",
"description": "Turn Fan On",
"exit_condition": "#t",
"on_load": "(set-actuator \"fan\" #t)",
"on_exit": "#t"
},
{
"name": "Heat",
"description": "Reach 78°C",
"exit_condition": "(>= (get-sensor \"T_ext\") 78.0)",
"on_load": "(begin (set-controller \"heater\" \"T_food\")\n(set-controller \"heater2\" \"T_ext\")\n(set-target \"T_food\" 78.0)\n(set-target \"T_ext\" 78.0))",
"on_exit": "(notify \"Temperatura raggiunta!\")"
},
{
"name": "Hold",
"description": "Keep 30°C",
"exit_condition": "(> (time-in-this-phase) (hours 3))",
"on_exit": "(notify \"Il pollo è cotto!\")",
"on_load": "#t"
}
]
},
{
"name": "Koji Rice (MISO)",
"description": "Tiene riso alla temperatura e umidità giuste per il koji",
"controllers": [
"(make-duty-controller \"heater\" 0.90 60 '<)",
"(make-duty-controller \"humidifier\" 0.40 100 '<)"
],
"phases": [
{
"name": "Prepare",
"description": "Turn Fan On",
"exit_condition": "#t",
"on_load": "(set-actuator \"fan\" #t)",
"on_exit": "#t"
},
{
"name": "Cool Down",
"description": "Wait until rice reaches 37",
"exit_condition": "(<= (get-sensor \"T_food\") 37)",
"on_load": "(begin (set-controller \"heater\" \"T_ext\")\n(set-controller \"humidifier\" \"H_ext\")\n(set-target \"T_ext\" 37.0)\n(set-target \"H_ext\" 90.0))",
"on_exit": "#t"
},
{
"name": "Inocula!",
"description": "Add koji spores",
"exit_condition": "(manual-intervention \"Inocula\" '((\"Fatto\" #t)))",
"on_load": "(notify \"Inocula ora!\")",
"on_exit": "(notify (concat \"Inoculated at \" (now)))"
},
{
"name": "Hold",
"description": "Keep 30°C",
"exit_condition": "(> (time-in-this-phase) (hours 12))",
"on_load": "(begin (set-controller \"heater\" \"T_food\")\n(set-controller \"humidifier\" \"H_ext\")\n(set-target \"T_food\" 30.0)\n(set-target \"H_ext\" 90.0))",
"on_exit": "(notify \"Rimischia il koji!\")"
},
{
"name": "Hold",
"description": "Keep 30°C",
"exit_condition": "(> (time-in-this-phase) (hours 12))",
"on_exit": "(notify \"24 ore, controlla la temperatura\")",
"on_load": "#t"
},
{
"name": "Hold",
"description": "Keep 30°C, abbassa l'umidità per favorire l'ingresso del koji nel chicco",
"exit_condition": "(> (time-in-this-phase) (hours 12))",
"on_load": "(begin (set-controller \"heater\" \"T_food\")\n(set-controller \"humidifier\" \"H_ext\")\n(set-target \"T_food\" 30.0)\n(set-target \"H_ext\" 80.0))",
"on_exit": "(notify \"Rimischia il koji!\")"
},
{
"name": "Hold",
"description": "Keep 30°C",
"exit_condition": "(> (time-in-this-phase) (hours 12))",
"on_exit": "(notify \"Rimischia il koji!\")",
"on_load": "#t"
}
]
},
{
"name": "Tepache",
"description": "Tiene il tepache a ~23 gradi",
"controllers": [
"(make-duty-controller \"heater\" 0.20 120 '<)"
],
"phases": [
{
"name": "Hold",
"description": "Keep 23°C",
"exit_condition": "(> (time-in-this-phase) (hours 10))",
"on_load": "(begin (set-controller \"heater\" \"T_food\")\n(set-target \"T_food\" 23.0))",
"on_exit": "#t"
}
]
},
{
"name": "Stracchino",
"description": "Tiene lo stracchino a ~35 gradi per 24 ore",
"controllers": [
"(make-duty-controller \"heater\" 0.80 120 '<)"
],
"phases": [
{
"name": "Hold",
"description": "Keep 35°C",
"exit_condition": "(> (time-in-this-phase) (hours 17))",
"on_load": "(begin (set-controller \"heater\" \"T_food\")\n(set-target \"T_food\" 35.0))",
"on_exit": "#t"
}
]
},
{
"name": "Yogurt",
"description": "Lascia raffreddare lo yogurt per fare l'inoculo, mantiene a 42 gradi fino a che è pronto, e poi porta a 4 gradi.",
"controllers": [
"(make-duty-controller \"heater2\" 0.40 60 '<)",
"(make-duty-controller \"freezer\" 0.75 (* 30 60) '>)"
],
"phases": [
{
"name": "Prepare",
"description": "Turn Fan On",
"exit_condition": "#t",
"on_load": "(set-actuator \"fan\" #t)",
"on_exit": "#t"
},
{
"name": "Cool",
"description": "Cool to 46°C",
"exit_condition": "(and (< (get-sensor \"T_food\") 46.0)\n(> (get-sensor \"T_food\") 42.0))",
"on_load": "(begin (set-controller \"heater2\" \"T_food\") (set-target \"T_food\" 46.0) (set-controller \"freezer\" \"T_ext\") (set-target \"T_ext\" 46.0))",
"on_exit": "#t"
},
{
"name": "Inoculate (backslopping)",
"description": "Add 50ml Yogurt",
"exit_condition": "(manual-intervention \"Inocula 50g di yogurt\" '((\"Fatto\" #t)))",
"on_load": "(notify \"Inoculate 50g of yogurt NOW!\")",
"on_exit": "(notify (concat \"Inoculated at \" (now)))"
},
{
"name": "Hold",
"description": "Keep at 42°C for 4h",
"exit_condition": "(> (time-in-this-phase) (hours 4))",
"on_load": "(begin (set-target \"T_food\" 41.5) (set-target \"T_ext\" 47.0))",
"on_exit": "(notify \"The yougrt is ready\")"
},
{
"name": "Refrigerate",
"description": "Lower temperature to 4gradi",
"exit_condition": "#f",
"on_load": "(begin (set-target \"T_food\" 4.0) (set-target \"T_ext\" 4.0))",
"on_exit": "(begin (notify \"You can remove the yogurt from the heater\") (set-actuator \"fan\" #f))"
}
]
},
{
"name": "Nattō",
"description": "FIXME",
"controllers": [
"(make-duty-controller \"heater\" 0.20 120 '<)"
],
"phases": []
},
{
"name": "Tempeh",
"description": "FIXME",
"controllers": [
"(make-duty-controller \"heater\" 0.20 120 '<)"
],
"phases": []
},
{
"name": "Gorgonzola",
"description": "FIXME",
"controllers": [
"(make-duty-controller \"heater\" 0.20 120 '<)"
],
"phases": []
}
]