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>. |