doc/bms-ch3.sgml

branch
stable
changeset 366
a14a31bfc73b
parent 334
26c6f8e5d58e
parent 363
0aa27f92a8f9
--- a/doc/bms-ch3.sgml	Sun May 12 19:24:34 2019 +0200
+++ b/doc/bms-ch3.sgml	Sun May 12 19:41:18 2019 +0200
@@ -2,315 +2,10 @@
   vim:syntax=docbksgml
 -->
 
-<chapter id="protocols">
-<title>Protocollen.</title>
+<chapter id="instellingen">
+<title>Instellingen.</title>
 <para>
-De netwerk protocollen.
+Instellingen tekst.
 </para>
 
-<sect1 id="prototopic">
-<title>MQTT topic formaat.</title>
-<para>De topics zijn als volgt gedefinieerd:</para>
-<programlisting>
-mbv1.0/<code>group_id</code>/<code>message_type</code>/<code>edge_node</code>/<code>device_id</code>
-</programlisting>
-
-<itemizedlist>
-<listitem><para><code>group_id</code> geeft het type apparaat aan zoals <code>fermenters</code>
-en <code>brewcontrol</code>.</para></listitem>
-<listitem><para><code>message_type</code> geeft het bericht type aan zoals
-<code>NBIRTH</code>, <code>DDATA</code>.</para></listitem>
-<listitem><para><code>edge_node</code> is de hostnaam van de node die het bericht stuurt. Dit is
-de naam zonder domain toevoeging.</para></listitem>
-<listitem><para><code>device_id</code> is de verkorte naam van het apparaat module waarvan dit
-bericht komt zoals de naam van een vergisting controller. Dit is niet aanwezig met NODE berichten.</para></listitem>
-</itemizedlist>
-
-<para>
-De volgende <code>group_id</code> namen zijn gedefinieerd:
-</para>
-<orderedlist>
-<listitem><para>brewery is voor de bms applicatie zelf. Nog uitwerken.</para></listitem>
-<listitem><para>fermenters is voor vergisting controllers.</para></listitem>
-<listitem><para>brewcontrol is een brouw controller. Deze controller kan een deel
-of geheel brouwproces uitvoeren.</para></listitem>
-<listitem><para>pressure is een drukmeter om bijvoorbeeld hergisting op de fles
-te monitoren.</para></listitem>
-</orderedlist>
-
-<para>De volgende <code>message_type</code> namen zijn gedefinieerd:</para>
-<orderedlist>
-<listitem><para>NBIRTH geeft aan wanneer een node opstart en met het netwerk
-verbonden is. Dit is een zogenaamd persistent bericht, het blijft voor nieuwe
-MQTT clients altijd zichtbaar. Bij het starten van een node wordt er een payload
-verzonden, zie het payload formaat voor een node. Als een node afsluit wordt juist geen
-payload verzonden zodat het bericht verdwijnt.</para></listitem>
-<listitem><para>NDATA wordt verstuurd als er veranderingen zijn voor de node,
-maar ook iedere vijf minuten om aan te geven dat de node nog "levend" en aanwezig
-is.</para></listitem>
-<listitem><para>NDEATH wordt verstuurd als een node offline gaat. Maar het kan ook
-ontvangen worden als de MQTT verbinding verbroken wordt met een node, het NDEATH
-bericht is ook het `last will' bericht van een node. Maar als het echt fout gaat
-dan zal er mogenlijk nooit een NDEATH bericht gezien worden.</para></listitem>
-<listitem><para>NCMD is een commando bestemd voor een node.
-Dit kan bijvoorbeeld een reboot commando zijn.</para></listitem>
-<listitem><para>DBIRTH is een of meer berichten van een apparaat wat online komt
-en ingeschakeld is. Een apparaat is een deel van een node.
-Bij het opstarten van de node is er geen <code>device_id</code>
-omdat alle apparaten is een keer verstuurd worden. Indien er later een enkel apparaat
-ingeschakeld wordt dan is er wel een geldige <code>device_id</code> aanwezig.
-Hier ook weer, er is een payload bij opstarten en geen payload bij afsluiten om het
-persistente bericht goed te houden.</para></listitem>
-<listitem><para>DDATA heeft altijd een payload, maar deze hoeft niet volledig te zijn,
-enkel de gewijzigde data moet in het bericht zitten.</para></listitem>
-<listitem><para>DDEATH wordt verstuurd als een node offline gaat, of als het apparaat
-uitgeschakelt wordt.</para></listitem>
-<listitem><para>DLOG is een data log. Hier bestaat de payload uit gegevens die de
-bms applicatie in de database zet.</para></listitem>
-<listitem><para>DCMD is een commando voor een apparaat wat op een node geinstalleerd is.
-Dit zullen voornamelijk instellingen voor dat enkele apparaat zijn.</para></listitem>
-</orderedlist>
-
-</sect1>
-
-
-<sect1 id="payloadnode">
-<title>Netwerk payload formaat voor een node</title>
-<para>
-De payload zoals die door een node verstuurd wordt. Het wordt in json formaat
-verzonder zonder extra spaties en opmaak zoals hieronder is te zien. Het timestamp
-is de unix tijd sinds 1 januari 1970. Het `seq' nummer wordt met ieder bericht met 1
-verhoogd.</para>
-
-<programlisting>
-{
-  "timestamp": 1532201089,
-  "seq": 0,
-  "metric": {
-    "uuid": "b508f01c-1f82-4e8b-b0d2-d88ecfb53031",
-    "properties": {
-      "hardwaremake": "Raspberry",
-      "hardwaremodel": "Unknown",
-      "os": "Linux",
-      "os_version": "4.1.19+",
-      "FW": "0.8.2"
-    },
-    "THB": {
-      "temperature": 20.0,
-      "humidity": 50.0,
-      "barometer": 1002
-    },
-    "GPS": {
-      "latitude": 1.2345,
-      "longitude": 2.3456,
-      "altitude": 20
-    },
-    "net": {
-      "address": "10.126.151.11",
-      "ifname": "eth0",
-      "rssi": 0
-    }
-  }
-}
-</programlisting>
-</sect1>
-
-<sect1 id="cmdnode">
-<title>Netwerk kommando payload formaat voor nodes.</title>
-<para>De volgende kommando's kunnen gestuurd worden naar nodes:</para>
-<programlisting>
-{
-  "timestamp":1532201089,
-  "metric": {
-    "Node Control/Reboot":true
-  }
-}
-</programlisting>
-<para>Dit commando reboot niet de computer maar de applicatie die op een
-computer zoals een Raspberry Pi geinstalleerd is. Een uitzondering zijn de
-controllers zoals Arduino's en andere eenvoudige systemen.</para>
-<programlisting>
-{
-  "timestamp":1532201089,
-  "metric": {
-    "Node Control/Rebirth":true
-  }
-}
-</programlisting>
-<para>Dit commando zorgt er voor dat alle NBIRTH en DBIRTH berichten opnieuw
-verzonden worden alsof de computer net is opgestart. Dit kan nuttig zijn na
-een herstart van de bms applicatie zelf zodat de juiste nodes informatie weer
-beschikbaar is.</para>
-</sect1>
-
-<sect1 id="payloadfermdata">
-<title>Netwerk payload data formaat voor vergisting controllers</title>
-<para>
-Dit is het meest uitgebreide formaat wat getoond is. Indien er bijvoorbeeld geen
-chiller aanwezig is, dan wordt eem `null' gestuurd in plaats van een json blok
-met gegevens. De werkelijke uitvoering van de hardware en de configuratie daarvan
-bepaald dus het uiteindelijke payload formaat.
-</para>
-<programlisting>
-{
-  "uuid": "48c9ae27-3f58-41c9-ae4b-1d57b249c45a",
-  "alias": "unit1",
-  "product": {
-    "uuid": "1eb0c7bf-bf06-491c-a086-ac5478d521b9",
-    "code": "CB0001",
-    "name": "Hoppy Housebeer"
-  },
-  "air": {
-    "address": "70d60411-3ec8-40ab-998a-81fead83025f",
-    "state": "OK",
-    "temperature": 21.562
-  },
-  "beer": {
-    "address": "8ec36f9d-f382-4e32-a47f-732642e1018d",
-    "state": "OK",
-    "temperature": 22.125
-  },
-  "chiller": {
-    "address": "e81265b8-07f7-4b22-96c1-6f55a4b66a83",
-    "state": "OK",
-    "temperature": 12.437
-  },
-  "heater": {
-    "address": "d2f2d6bc-4d12-4852-9462-95f4c2476034",
-    "state": 0,
-    "usage": 10710793
-  },
-  "cooler": {
-    "address": "a9f30140-812c-4ec1-9e98-3a9d47deff7c",
-    "state": 0,
-    "usage": 920504
-  },
-  "fan": {
-    "address": "ae9f9887-8209-4810-9f58-ddfb34ee142f",
-    "state": 100,
-    "usage": 62889739
-  },
-  "light": {
-    "address": "cc6353cf-9c97-41b9-b6cf-00cea312e478",
-    "state": 0,
-    "usage": 29647290
-  },
-  "door": {
-    "address": "ad8746d1-0549-485a-a215-41e5cdde9e75",
-    "state": 1
-  },
-  "psu": {
-    "address": "e1bb7182-883d-4977-a1c0-76e214072fc5",
-    "state": 1
-  },
-  "stage": "PRIMARY",
-  "mode": "BEER",
-  "setpoint": {
-    "low": 21.0,
-    "high": 21.0
-  },
-  "webcam": {
-    "url":"https://the.webcamserver.com:8090/?action=stream",
-    "light": 1
-  },
-  "alarm": 0,
-  "profile": {
-    "uuid": "c93ad1bb-0446-4788-9c43-83990c5f8b82",
-    "name": "Witbier methode Cellis",
-    "state": "OFF",
-    "percent": 0,
-    "inittemp": {
-      "low": 17.9,
-      "high": 18.1
-    },
-    "fridgemode": 0,
-    "steps": [
-      {
-        "resttime": 2,
-        "steptime": 0,
-        "target": {
-          "low": 18.0,
-          "high": 18.0
-        },
-        "fridgemode": 0
-      },
-      {
-        "resttime": 0,
-        "steptime": 24,
-        "target": {
-          "low": 18.0,
-          "high": 22.0
-        },
-        "fridgemode": 0
-      },
-      {
-        "resttime": 48,
-        "steptime": 96,
-        "target": {
-          "low": 26.0,
-          "high": 26.0
-        },
-        "fridgemode": 0
-      }
-    ]
-  }
-}
-</programlisting>
-<para>Temperature states can be: OK, MISSING or ERROR.<para>
-<para>The general `mode' can be: OFF, NONE, FRIDGE, BEER or PROFILE.</para>
-<para>The profile `state' can be: OFF, PAUSE, RUN, DONE or ABORT.</para>
-</sect1>
-
-
-<sect1 id="payloadfermlog">
-<title>Netwerk payload log formaat voor vergisting controllers</title>
-<para>
-Dit is het meest uitgebreide formaat wat getoond is. Indien er bijvoorbeeld geen
-chiller aanwezig is, dan wordt geen data hiervoor verstuurd.
-De werkelijke uitvoering van de hardware en de configuratie daarvan
-bepaald dus het uiteindelijke payload formaat.
-</para>
-<programlisting>
-{
-  "timestamp": 1532201089,
-  "seq": 0,
-  "metric": {
-    "product": {
-      "uuid": "1eb0c7bf-bf06-491c-a086-ac5478d521b9",
-      "code": "CB0001",
-      "name": "Hoppy Housebeer"     
-    },
-    "stage": "PRIMARY",
-    "mode": "BEER",
-    "temperature": {
-      "air": 20.125,
-      "beer": 20.062,
-      "chiller": -3.000,
-      "room": 20.1
-    },
-    "setpoint": {
-      "low": 19.8,
-      "high": 20.1
-    },
-    "heater": {
-      "power": 100,
-      "usage": 1234
-    },
-    "cooler": {
-      "power": 0,
-      "usage": 27273
-    },
-    "fan": {
-      "power": 100,
-      "usage": 8273772
-    },
-    "sg": 1.023,
-    "event": "Something to mark",
-    "fermenter_uuid": "48c9ae27-3f58-41c9-ae4b-1d57b249c45a"
-  }
-}
-</programlisting>
-</sect1>
-
-
 </chapter>

mercurial