README.design

Fri, 24 Aug 2018 21:53:14 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 24 Aug 2018 21:53:14 +0200
changeset 34
a720353fada9
parent 30
f5ab22446aa5
child 40
b825c675987d
permissions
-rw-r--r--

Formatting and measurements

Centrale daemon 'bmsd' regelt de dagelijkse berichten tussen MQTT en de
database. Om deze berichten betrouwbaar af te handelen is MQTT er tussen
gezet.
Alle sensoren en controllers communiceren uitsluitend via MQTT.

Sensoren en controllers:

  1.  Vergisting controllers.
  2.  Temperatuur loggen.
  3.  Hergisting drukmeters. (druk + temp).
  4.  Brouw controllers.
  5.  Ispindel.


Stappen:

  1.  Importeren oude vergisting en brouw logs.  DONE.
  2.  Thermferm moet DLOG berichten gaan sturen, per wijziging en per 5 minuten.  DONE.
  3.  bmsd moet deze DLOG berichten verwerken. Versie 0.0.2. Bier producten in database. DONE.
  4.  Versie 0.0.2 handmatig installeren op productie. DONE.
  5.  Thermferm uitbreiden met vergisting stage. DONE.
  6.  Brouw controller uitbreiden met MQTT.
  7.  bmsd uitbreiden met brouw controller berichten.
  8.  bmsd productie platform upgraden, versie 0.0.3


Web interface bouwen met jqwidgets, breeze en knockout.


Database inventaris:		Werking	Maten
----------------------------	-------	-------
inventory_equipments		Ok.	Ok.
inventory_fermentables		Ok.	Ok.
inventory_hops			Ok.	Ok.
inventory_mash_profiles		Ok zonder de steps.
inventory_miscs			Ok.
inventory_styles		Ok.	Ok.
inventory_suppliers		Ok.	Ok.
inventory_water_profiles	Ok.	Ok.
inventory_water_sources		Ok.	Ok.
inventory_yeasts		Ok.	Ok.

Handelsmaten (een zooitje ongeregeld):
vergistbare ingredienten:	Prijs per kilo, hoeveelheid in gram.
hoppen				Prijs per ons, hoeveelheid in gram.
Kruiden				Prijs per gram, hoeveelheden in gram.
Additieven			Prijs per 100 ml, hoeveeheid in ml.
Water				Prijs per liter of kuub, hoveelheden in liters.
Gist				Prijs per gram / ml. hoeveelheden in gram/ml.

Alles naar standaard maten in de database en presentatie naar behoefte?
Opslag kilos, liter en Euros met veel cijfers achter de comma.

Database:

  1.  Recepten opslaan in json formaat omdat dit flexibel is.
  2.  Brouwsels zijn recepten plus extra gegegevens. json formaat.
  3.  Inventaris ingredienten in json. Voorraad historie is extra arrays.
  4.  Export naar beerxml.
  5.  Import van brouwhulp xml met sync vanuit backup locatie.
  6.  Brouwerij configuratie voornamelijk in json.


MQTT structuur volgens Sparkplug model.

mbv1.0/fermenters/[NBIRTH,DBIRTH]/<hostname>/
mbv1.0/fermenters/DDATA/<hostname>/<unitalias>/

---------------------------------------------------------------------------

namespace/group_id/message_type/edge_node_id/{device_id}

namespace is de root, "mbv1.0"

group_id oa: fermenters, brewcontrol, env_sensor

message_type:	NBIRTH	- Birth certificate for MQTT EoN nodes.
		NDEATH	- Death certificate for MQTT EoN nodes.
		NCMD	- Node command message.
		DBIRTH	- Birth certificate for devices.
		DDEATH	- Death certificate for devices.
		NDATA	- Node data message.
		DDATA	- Device data message.
		DLOG	- Device data logging.
		DCMD	- Device command message.
		STATE	- Critical application state message.

NCMD:	reboot (application restart)
	rebirth

DCMD:	fermenter state change + temperature settings.
	fermenter profile install.
	fermenter load product.
	fermenter set stage


Product: code en naam.
	BIRTH date
	Recept.
	Locatie: Plan - Wacht - Brouw - Vergisting - Verpakken - Hergisting - Rijpen - Proeven - Afgesloten.
	                          |         |            |           |
	                          |         |            |           +--------	Log/rapport
	                          |         |            +--------------------	rapport/etiketten
	                          |         +---------------------------------	Log/rapport
	                          +-------------------------------------------	Log/rapport

mercurial