Finished the network protocol documentation for the co2meters and ispindels.

Fri, 18 Sep 2020 21:28:45 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 18 Sep 2020 21:28:45 +0200
changeset 720
b6a616372a26
parent 719
70f382a2b842
child 721
4d7394ced1c3

Finished the network protocol documentation for the co2meters and ispindels.

doc/bms-ch8.sgml file | annotate | diff | comparison | revisions
--- a/doc/bms-ch8.sgml	Fri Sep 18 14:56:08 2020 +0200
+++ b/doc/bms-ch8.sgml	Fri Sep 18 21:28:45 2020 +0200
@@ -344,9 +344,14 @@
 
 <sect1 id="payloadco2data">
 <title>Netwerk payload data formaat voor CO2 meters.</title>
-<para>
-Nog schrijven
-</para>
+<para>De co2meters zijn simpele units gebouwd rond een ESP32 computer. Deze units
+hebben een klein scherm en een rotary knop voor de bediening. Dit is voldoende
+om alle instellingen te doen. Deze computer is ook voorzien van WiFi. Via
+WiFi worden de meetgegevens verstuurd als MQTT berichten. Op iedere co2meter
+kunnen drie drukmeters worden aangesloten.</para>
+<para>De uuid codes worden niet eenmalig gegenereerd, maar deze worden samengesteld
+uit een vast patroon en het mac adres. In deze uuid code is ook een volgnummer
+voor het unit nummer verwerkt.</para>
 <programlisting>
 {
   "metric":{
@@ -446,13 +451,6 @@
 <listitem><para>Path / URI: /ispindel/index.php</para></listitem>
 </orderedlist>
 
-<para>
-De densiteit wordt standaard door de iSpindel in graden Plato gegeven en zo worden
-de gegevens ook verwerkt. Het SG wordt door de <code>/ispindel/index.php</code>
-berekend. Dit script verzorgd de omzetting van de iSpindel POST data naar MQTT
-data.
-</para>
-
 <informaltable frame="none" rowsep="0" colsep="0">
 <tgroup cols="2">
 <tbody>
@@ -485,11 +483,56 @@
 </informaltable>
 
 <para>
-De ontbrekende gegevens worden aangevuld door <command>bmsd</command>
-De volgende gegevens worden via het MQTT protocol ontvangen:
+De iSpindel stuurt de data in een http post commando naar het script <code>/ispindel/index.php</code>.
+Dit script zet de ontvangen data om in twee MQTT berichten die verwerkt zullen worden door <command>bmsd</command>.
+Eerst het bericht zoals het ontvangen wordt van de iSpindel:
 </para>
 <programlisting>
 {
+  "name":"ispindel000",
+  "ID":"13962697",
+  "angle":"42.96722",
+  "temperature":"25.5625",
+  "temp_units":"C",
+  "battery":"4.254432",
+  "gravity":"9.306425",
+  "interval":"900",
+  "RSSI":"-37"
+}
+</programlisting>
+
+<para>
+De densiteit wordt door de iSpindel in graden Plato gegeven en zo worden
+de gegevens ook verwerkt. 
+Zorg er dus voor dat de iSpindel gecalibreerd wordt in Plato.
+Het script <code>/ispindel/index.php</code> verzorgd de omzetting van de iSpindel POST data naar MQTT
+data.
+Eerst wordt het node bericht gemaakt:</para>
+<programlisting>
+mbv1.0/ispindels/NBIRTH/ispindel-d50dc9
+{
+  "metric":{
+    "uuid":"c0ffeeee-cafe-dead-beef-2af236d50dc9",
+    "interval":900,
+    "properties":{
+      "hardwaremake":"Wemos",
+      "hardwaremodel":"D1 mini",
+      "os":"Unknown",
+      "os_version":"Unknown",
+      "FW":"Unknown"
+    },
+    "net":{
+      "address":"192.168.1.65",
+      "ifname":"sta",
+      "rssi":-37
+    }
+  }
+}
+</programlisting>
+<para>En vervolgens het unit data bericht:</para>
+<programlisting>
+mbv1.0/ispindels/DBIRTH/ispindel-d50dc9
+{
   "unit":{
     "uuid":"c0ffeeee-cafe-dead-bee0-2af236d50dc9",
     "alias":"iSpindel000",
@@ -502,9 +545,11 @@
   }
 }
 </programlisting>
+
 <para>
 De iSpindel stuurt geen aparte log informatie, alle informatie voor de logfile
-wordt uit het standaard bericht gehaald.
+wordt uit het standaard unit data bericht gehaald.
+Ook wordt het SG door <code>bmsd</code> berekend uit de ontvangen Plato waarde.
 De log gegevens worden niet opgeslagen in de SQL database
 maar weggeschreven in platte tekst bestanden. Hierdoor is de gelogde informatie sneller toegankelijk.
 Ieder brouw product heeft zijn eigen bestand.

mercurial