[ { "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": [] } ]