README.design

Fri, 08 Mar 2019 11:31:06 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 08 Mar 2019 11:31:06 +0100
changeset 325
9a8c650972ca
parent 314
f943efa07d9f
child 355
64d6f3c857d7
permissions
-rw-r--r--

Update some documentation. Thermometer gauges animate easing

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. Niet, ESP32 wordt onstabiel.
  7.  bmsd uitbreiden met brouw controller berichten. Niet, zie hierboven.
  8.  bmsd productie platform upgraden, versie 0.0.3 DONE.
  9.  bmsd recepten editor implementeren. DONE.
 10.  bmsd uitbreiden met productie (brews) stappen, met hierin recepten. DONE.
 11.  bmsd koppelen logs aan productie. DONE.




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, uuid en naam.
	Stage:  Plan Wait Brew Primary Secondary Tertiary Package Carbonation Mature Taste Ready Closed
	                    |     |       |         |        |          |
	                    |     |       |         |        |          +-------------	Log/rapport
	                    |     |       |         |        +------------------------	rapport/etiketten
	                    |     +-------+---------+---------------------------------	Log/rapport
	                    +---------------------------------------------------------	Log/rapport

	Main table: products.
	  In progress: overview.
	  In Progress: view charts. DONE fermenters, todo brewlogs.
	  In Progress: view logs. 
	  In Progress: update state.
	  In Progress: Tabbed screens. DONE.
          Start new: some sort of wizzard like a new recipe. DONE.
	  Archive: select via name/code/date.
	  Calendar: shows upcoming events.
	  Recipes can be copied to 'recipes' or 'brews', imported from 'recipes'/'products' or created manual.
          Products recipes Beerxml import.
	  Recipes Beerxml import.


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

	Formaat csv vergisting logs.

Directory:	www/logs/fermentation
Filenaam:	product_code\ product_name.log

   2014-11-15 18:39,BEER,PRIMARY,20.312,19.750,-1.500,20.5,18.6,18.8,35,12345,0,67890,Whatsup,Fermenter
            |         |     |      |      |      |      |    |    |   |   |   |   |      |        |
 0 datetime +         |     |      |      |      |      |    |    |   |   |   |   |      |        |
 1 mode --------------+     |      |      |      |      |    |    |   |   |   |   |      |        |
 2 stage -------------------+      |      |      |      |    |    |   |   |   |   |      |        |
 3 temp air -----------------------+      |      |      |    |    |   |   |   |   |      |        |
 4 temp beer -----------------------------+      |      |    |    |   |   |   |   |      |        |
 5 temp chiller ---------------------------------+      |    |    |   |   |   |   |      |        |
 6 temp room -------------------------------------------+    |    |   |   |   |   |      |        |
 7 setpoint low ---------------------------------------------+    |   |   |   |   |      |        |
 8 setpoint high -------------------------------------------------+   |   |   |   |      |        |
 9 heater power ------------------------------------------------------+   |   |   |      |        |
10 heater usage ----------------------------------------------------------+   |   |      |        |
11 cooler power --------------------------------------------------------------+   |      |        |
12 cooler usage ------------------------------------------------------------------+      |        |
13 event --------------------------------------------------------------------------------+        |
14 fermenter uuid --------------------------------------------------------------------------------+

De oude logs zijn geimporteerd en geconverteerd. Nieuwe worden geschreven
door bmsd welke de log gegevens ontvangt via MQTT DLOG berichten.
Vanwege de snelheid van verwerken staan de logs niet in de database.
Kunnen we de loggegevens versturen in gzip formaat om bandbreedte te sparen?

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

TODO:

Export ingredienten naar xml.

Extra:

Gisten alcohol_tolerance veld toevoegen.
Gisten diastaticus bit toevoegen.
Waarschuwing voor te zwaar voor de gist.
Waarschuwing voor overschrijden moutstort.
Gist typen: kveik en brett? Apart of niet.

mercurial