163 lines
5.5 KiB
JSON
163 lines
5.5 KiB
JSON
[
|
|
{
|
|
"name": "Koji Rice (MISO)",
|
|
"description": "Tiene riso alla temperatura e umidità giuste per il koji",
|
|
"controllers": [
|
|
"(make-duty-controller \"heater\" 0.40 60 '<)",
|
|
"(make-duty-controller \"humidifier\" 0.10 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.10 120 '<)",
|
|
"(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.0) (set-target \"T_ext\" 41.0))",
|
|
"on_exit": "(notify \"The yougrt is ready\")"
|
|
},
|
|
{
|
|
"name": "Refrigerate",
|
|
"description": "Lower temperature to 4gradi",
|
|
"exit_condition": "(manual-intervention \"Rimuovi lo yogurt\" '((\"Fatto\" #t)))",
|
|
"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": []
|
|
}
|
|
]
|