doc/bms-ch8.sgml

changeset 720
b6a616372a26
parent 719
70f382a2b842
child 847
dc9281501ca6
equal deleted inserted replaced
719:70f382a2b842 720:b6a616372a26
342 </programlisting> 342 </programlisting>
343 </sect1> 343 </sect1>
344 344
345 <sect1 id="payloadco2data"> 345 <sect1 id="payloadco2data">
346 <title>Netwerk payload data formaat voor CO2 meters.</title> 346 <title>Netwerk payload data formaat voor CO2 meters.</title>
347 <para> 347 <para>De co2meters zijn simpele units gebouwd rond een ESP32 computer. Deze units
348 Nog schrijven 348 hebben een klein scherm en een rotary knop voor de bediening. Dit is voldoende
349 </para> 349 om alle instellingen te doen. Deze computer is ook voorzien van WiFi. Via
350 WiFi worden de meetgegevens verstuurd als MQTT berichten. Op iedere co2meter
351 kunnen drie drukmeters worden aangesloten.</para>
352 <para>De uuid codes worden niet eenmalig gegenereerd, maar deze worden samengesteld
353 uit een vast patroon en het mac adres. In deze uuid code is ook een volgnummer
354 voor het unit nummer verwerkt.</para>
350 <programlisting> 355 <programlisting>
351 { 356 {
352 "metric":{ 357 "metric":{
353 "units":[ 358 "units":[
354 { 359 {
444 <listitem><para>Server Address: het server IP adres</para></listitem> 449 <listitem><para>Server Address: het server IP adres</para></listitem>
445 <listitem><para>Server Port: 80</para></listitem> 450 <listitem><para>Server Port: 80</para></listitem>
446 <listitem><para>Path / URI: /ispindel/index.php</para></listitem> 451 <listitem><para>Path / URI: /ispindel/index.php</para></listitem>
447 </orderedlist> 452 </orderedlist>
448 453
449 <para>
450 De densiteit wordt standaard door de iSpindel in graden Plato gegeven en zo worden
451 de gegevens ook verwerkt. Het SG wordt door de <code>/ispindel/index.php</code>
452 berekend. Dit script verzorgd de omzetting van de iSpindel POST data naar MQTT
453 data.
454 </para>
455
456 <informaltable frame="none" rowsep="0" colsep="0"> 454 <informaltable frame="none" rowsep="0" colsep="0">
457 <tgroup cols="2"> 455 <tgroup cols="2">
458 <tbody> 456 <tbody>
459 <row> 457 <row>
460 <entry> 458 <entry>
483 </tbody> 481 </tbody>
484 </tgroup> 482 </tgroup>
485 </informaltable> 483 </informaltable>
486 484
487 <para> 485 <para>
488 De ontbrekende gegevens worden aangevuld door <command>bmsd</command> 486 De iSpindel stuurt de data in een http post commando naar het script <code>/ispindel/index.php</code>.
489 De volgende gegevens worden via het MQTT protocol ontvangen: 487 Dit script zet de ontvangen data om in twee MQTT berichten die verwerkt zullen worden door <command>bmsd</command>.
490 </para> 488 Eerst het bericht zoals het ontvangen wordt van de iSpindel:
491 <programlisting> 489 </para>
490 <programlisting>
491 {
492 "name":"ispindel000",
493 "ID":"13962697",
494 "angle":"42.96722",
495 "temperature":"25.5625",
496 "temp_units":"C",
497 "battery":"4.254432",
498 "gravity":"9.306425",
499 "interval":"900",
500 "RSSI":"-37"
501 }
502 </programlisting>
503
504 <para>
505 De densiteit wordt door de iSpindel in graden Plato gegeven en zo worden
506 de gegevens ook verwerkt.
507 Zorg er dus voor dat de iSpindel gecalibreerd wordt in Plato.
508 Het script <code>/ispindel/index.php</code> verzorgd de omzetting van de iSpindel POST data naar MQTT
509 data.
510 Eerst wordt het node bericht gemaakt:</para>
511 <programlisting>
512 mbv1.0/ispindels/NBIRTH/ispindel-d50dc9
513 {
514 "metric":{
515 "uuid":"c0ffeeee-cafe-dead-beef-2af236d50dc9",
516 "interval":900,
517 "properties":{
518 "hardwaremake":"Wemos",
519 "hardwaremodel":"D1 mini",
520 "os":"Unknown",
521 "os_version":"Unknown",
522 "FW":"Unknown"
523 },
524 "net":{
525 "address":"192.168.1.65",
526 "ifname":"sta",
527 "rssi":-37
528 }
529 }
530 }
531 </programlisting>
532 <para>En vervolgens het unit data bericht:</para>
533 <programlisting>
534 mbv1.0/ispindels/DBIRTH/ispindel-d50dc9
492 { 535 {
493 "unit":{ 536 "unit":{
494 "uuid":"c0ffeeee-cafe-dead-bee0-2af236d50dc9", 537 "uuid":"c0ffeeee-cafe-dead-bee0-2af236d50dc9",
495 "alias":"iSpindel000", 538 "alias":"iSpindel000",
496 "alarm":0, 539 "alarm":0,
500 "battery":4.254432, 543 "battery":4.254432,
501 "gravity":9.306425 544 "gravity":9.306425
502 } 545 }
503 } 546 }
504 </programlisting> 547 </programlisting>
548
505 <para> 549 <para>
506 De iSpindel stuurt geen aparte log informatie, alle informatie voor de logfile 550 De iSpindel stuurt geen aparte log informatie, alle informatie voor de logfile
507 wordt uit het standaard bericht gehaald. 551 wordt uit het standaard unit data bericht gehaald.
552 Ook wordt het SG door <code>bmsd</code> berekend uit de ontvangen Plato waarde.
508 De log gegevens worden niet opgeslagen in de SQL database 553 De log gegevens worden niet opgeslagen in de SQL database
509 maar weggeschreven in platte tekst bestanden. Hierdoor is de gelogde informatie sneller toegankelijk. 554 maar weggeschreven in platte tekst bestanden. Hierdoor is de gelogde informatie sneller toegankelijk.
510 Ieder brouw product heeft zijn eigen bestand. 555 Ieder brouw product heeft zijn eigen bestand.
511 De bestanden staan in <code>www/logs/ispindel/</code>. 556 De bestanden staan in <code>www/logs/ispindel/</code>.
512 De bestandsnamen zijn <code>product_code\ product_name.log</code>. 557 De bestandsnamen zijn <code>product_code\ product_name.log</code>.

mercurial