Enibrauhaus 1.0
Enibrauhaus è il nome scherzoso che ho dato al mio birrificio/cantina casalinga ma in futuro potrebbe diventare molto più tecnologico e... virtuale.
Stack tecnologico attuale della Enibrauhaus
Da quando sono ripartito l'anno scorso ho cercato di razionalizzare l'utilizzo degli strumenti tecnologici in tutta la catena produttiva facendo una scaletta:
- Gestione archivio: fogli di calcolo su Google Sheets
- Calcolo ricetta: BrewOnline
- Controller cotta: originale del Brauheld
- Calcolo acqua: foglio di calcolo EZ Calculator (non mi funziona bene su Google Sheets e devo usarlo con openoffice)
- Controllo frigor fermentazione: termostato Inkbird ITC-308 che controlla frigo e base riscaldante
- Controllo densità fermentazione: Tilt e relativa app bluetooth
- Priming: foglio di calcolo di Brewingbad
- Appunti della cotta/appunti assaggi/log imbottigliamento: Google Drive/Samsung Notes (scritti a penna sul tablet)
Da sviluppatore web, ha cominciato a ronzarmi in testa un grillo sempre più insistente: perché non tendere verso un'integrazione maggiore di questi elementi? Perché non avere un'orchestra armoniosa anziché tanti applicativi eterogenei e stonati?
Futuro della Enibrauhaus
Inizialmente non avevo intenzione di scrivere linee di codice, avevo pensato a Brewfather e la sua collaudata integrazione con tilt e un futuro controller del klarstein del tipo Smartpid.
Poi ho cominciato a strendere una ricetta con brewfather e non mi sono trovato bene, specialmente nell'impostare l'efficienza direttamente nell'impianto. Non che non mi piaccia l'app Brewfather, anzi, è un capolavoro di usabilità e al vertice delle tecnologie lato web attuali. Basti pensare che è una single page application e certificata come progressive web app: se volete approfondire questi aspetti tecnici date un'occhiata qua.
Il mio modus operandi dell'utilizzo di brewonline era diverso, partivo da un quantitativo di grani base fisso e giocavo con le percentuali e valori di grammi speciali sensati (che senso ha fare 217 grammi di carared? o 200g o 250g...). Poi mi regolavo con l'acqua e riportavo i litri ottenuti nei valori in alto di litri in pentola/fermentatore per cercare di stare nel range dello stile. In pratica cerco di fare una quadra ad occhio.
Mi ritrovo con l'approccio del creatore di brewonline : "preoccupatevi prima di tutto dei risultati ottenuti, di produrre qualcosa di bevibile, piuttosto che al valore esatto di IBU o del EBC", anche se a molti homebrewer scientifici potranno sanguinare gli occhi a leggere ciò. Quando comincerò ad avere una certa stabilità, solo allora entrerò più nel dettaglio, anche attraverso una maggior comprensione delle fatidiche formule dei vari parametri come GU/IBU/EBC...
Ed è qui che venne l'illuminazione: perché non cucirmi addosso un'app che segua di pari passo la mia compressione delle formule? Tanto alla fine c'è comunque da lavorare a integrare tutto (con conseguente tempo perso a capire come fare), tanto vale partire da un foglio bianco. Mal che vada continuo col mio metodo arcaico che ho elencato sopra.
E poi ci sono i fogli di calcolo usati come applicazione, nel 2019 mi sembrano anacronistici. Di fatto è anche il motivo perché le aziende si muovono da Excel agli applicativi gestionali, senza i quali sarei disoccupato.
Cose da nerd
L'architettura che ho in testa è questa:
- Frontend: Blazor. Il webAssembly sta cominciando a muovere i primi passi e nel futuro potrebbe rubare un po' di terreno all'omnipresente javascript lato frontend. Inoltre so programmare meglio in C# rispetto a js e l'ho preferito ai framework js come Vue.js (che ho visto in passato), poco male il fatto che sia ancora beta visto che non devo vendere a nessuno. Sicuramente voglio che la mia applicazione esegua i calcoli direttamente sul client, pensiamo per es. al calcolo dell'alcalinità residua a partire dai valori dei sali minerali: non voglio il click di un bottone per eseguire il calcolo passando per il server, voglio subito il ricalcolo nella casella di testo come avverrebbe in excel.
- UI: un progetto Blazor ha già installato il collaudato Bootstrap. A questo momento la grafica è l'ultimo dei miei problemi e quella di default non è affatto male, è già responsive e mobile first. Ma se devo proprio sbilanciarmi andrei di SemanticUI perché è veramente bello.
- Backend: Serverless. Appesantendo il client si snellisce il server a tal punto che per le mie operazioni di login/salvataggio ricette possono essere eseguite come funzioni in cloud e non richiedono un server dedicato sempre attivo. Con enormi benefici di sicurezza, costi e configurazioni dei server.
- DB non so ancora. Sono più ferrato in database relazionali e so poco niente di quelli NoSQL. Probabilmente PosgreSQL più qualche tecnologia nosql per gestire le entità in locale su blazor. Ma dipende anche dal provider cloud che sceglierò.
Ovviamente sono tecnologie che ho visto da pochissimo e per una prima versione passerà molto tempo. Qua una bozza seguendo un tutorial:
Se ho ancora dubbi sull'architettura web ancora meno ne so per quanto riguarda l'IOT/elettronica e come si potrebbe controllare il tutto da un'interfaccia web. Per il Tilt sono già dotato di un Raspberry Pi zeroB (tilt pi) mentre per automatizzare la produzione e la fermentazione la strada è ancora lunga, ho pensato a CraftBeerPi per la sua "customizzabilità" ma ho letto cose interessanti dell' ESP8266 che sembra anche più basilare e simile ai miei concetti di less is more.
In ogni caso procederò a piccoli passi e spero che entro natale si cominceranno a vedere le prime soluzioni, d'altronde lo spirito è sempre: "Relax, Don't Worry, Have A Homebrew".
Commenti
Posta un commento