79 De payload zoals die door een node verstuurd wordt. Het wordt in json formaat |
81 De payload zoals die door een node verstuurd wordt. Het wordt in json formaat |
80 verzonden zonder extra spaties en opmaak zoals hieronder is te zien. Het timestamp |
82 verzonden zonder extra spaties en opmaak zoals hieronder is te zien. Het timestamp |
81 is de unix tijd sinds 1 januari 1970. Niet alle controllers sturen een timestamp, |
83 is de unix tijd sinds 1 januari 1970. Niet alle controllers sturen een timestamp, |
82 controllers zonder klok laten dit weg. De tijd wordt dan door <code>bmsd</code> |
84 controllers zonder klok laten dit weg. De tijd wordt dan door <code>bmsd</code> |
83 ingevuld en is de tijd dat het bericht ontvangen wordt. |
85 ingevuld en is de tijd dat het bericht ontvangen wordt. |
84 Het `seq' nummer wordt met ieder bericht met 1 verhoogd.</para> |
86 Het `seq' nummer wordt met ieder bericht met 1 verhoogd. |
|
87 Ook dit nummer is niet altijd aanwezig.</para> |
|
88 <para>In de `metric' groep is de `interval' optioneel. Dit wordt bijvoorbeeld |
|
89 verstuurd door iSpindels en is de ingestelde update interval tijd in seconden. |
|
90 Indien dit niet aanwezig is dan wordt 300 seconden als standaard waarde gebruikt. |
|
91 Deze waarde wordt gebruikt om een apparaat als offline te markeren indien het langer |
|
92 als twee maal deze tijd niet wordt gezien.</para> |
85 <programlisting> |
93 <programlisting> |
86 { |
94 { |
87 "timestamp": 1532201089, |
95 "timestamp": 1532201089, |
88 "seq": 0, |
|
89 "metric": { |
96 "metric": { |
90 "uuid": "b508f01c-1f82-4e8b-b0d2-d88ecfb53031", |
97 "uuid": "b508f01c-1f82-4e8b-b0d2-d88ecfb53031", |
|
98 "interval":300, |
91 "properties": { |
99 "properties": { |
92 "hardwaremake": "Raspberry", |
100 "hardwaremake": "Raspberry", |
93 "hardwaremodel": "Unknown", |
101 "hardwaremodel": "Unknown", |
94 "os": "Linux", |
102 "os": "Linux", |
95 "os_version": "4.1.19+", |
103 "os_version": "4.1.19+", |
316 Ieder brouw product heeft zijn eigen bestand. |
319 Ieder brouw product heeft zijn eigen bestand. |
317 De bestanden staan in <code>www/logs/fermentation/</code>. |
320 De bestanden staan in <code>www/logs/fermentation/</code>. |
318 De bestandsnamen zijn <code>product_code\ product_name.log</code>. |
321 De bestandsnamen zijn <code>product_code\ product_name.log</code>. |
319 Het interne formaat is:</para> |
322 Het interne formaat is:</para> |
320 <programlisting> |
323 <programlisting> |
321 2014-11-15 18:39:12,BEER,PRIMARY,20.312,19.750,-1.500,20.5,18.6,18.8,35,12345,0,67890,Whatsup,Fermenter |
324 2014-11-15 18:39:12,BEER,PRIMARY,20.312,19.750,-1.500,20.5,18.6,18.8,35,12345,0,67890,Whatsup,Fermenter |
322 | | | | | | | | | | | | | | | |
325 | | | | | | | | | | | | | | | |
323 0 datetime + | | | | | | | | | | | | | | |
326 0 datetime + | | | | | | | | | | | | | | |
324 1 werkwijze ------------+ | | | | | | | | | | | | | |
327 1 werkwijze ---------+ | | | | | | | | | | | | | |
325 2 vergisting fase ------------+ | | | | | | | | | | | | |
328 2 vergisting fase ---------+ | | | | | | | | | | | | |
326 3 temperatuur lucht -----------------+ | | | | | | | | | | | |
329 3 temperatuur lucht --------------+ | | | | | | | | | | | |
327 4 temperatuur bier -------------------------+ | | | | | | | | | | |
330 4 temperatuur bier ----------------------+ | | | | | | | | | | |
328 5 temperatuur koeler ------------------------------+ | | | | | | | | | |
331 5 temperatuur koeler ---------------------------+ | | | | | | | | | |
329 6 temperatuur ruimte -------------------------------------+ | | | | | | | | |
332 6 temperatuur ruimte ----------------------------------+ | | | | | | | | |
330 7 instelwaarde laag -------------------------------------------+ | | | | | | | |
333 7 instelwaarde laag ----------------------------------------+ | | | | | | | |
331 8 instelwaarde hoog ------------------------------------------------+ | | | | | | |
334 8 instelwaarde hoog ---------------------------------------------+ | | | | | | |
332 9 verwarming vermogen --------------------------------------------------+ | | | | | |
335 9 verwarming vermogen -----------------------------------------------+ | | | | | |
333 10 verwarming verbruik ------------------------------------------------------+ | | | | |
336 10 verwarming verbruik ---------------------------------------------------+ | | | | |
334 11 koeler vermogen --------------------------------------------------------------+ | | | |
337 11 koeler vermogen -----------------------------------------------------------+ | | | |
335 12 koeler verbruik ------------------------------------------------------------------+ | | |
338 12 koeler verbruik ---------------------------------------------------------------+ | | |
336 13 gebeurtenis -----------------------------------------------------------------------------+ | |
339 13 gebeurtenis --------------------------------------------------------------------------+ | |
337 14 vergister uuid -----------------------------------------------------------------------------------+ |
340 14 vergister uuid --------------------------------------------------------------------------------+ |
|
341 </programlisting> |
|
342 </sect1> |
|
343 |
|
344 <sect1 id="payloadco2data"> |
|
345 <title>Netwerk payload data formaat voor CO2 meters.</title> |
|
346 <para> |
|
347 Nog schrijven |
|
348 </para> |
|
349 <programlisting> |
|
350 { |
|
351 "seq":228196, |
|
352 "metric":{ |
|
353 "units":[ |
|
354 { |
|
355 "uuid":"c0ffeeee-dead-beef-caf0-3c71bffe4054", |
|
356 "alias":"unit1", |
|
357 "mode":"ON", |
|
358 "alarm":0, |
|
359 "temperature":{ |
|
360 "state":"OK", |
|
361 "address":"e001191420732a28", |
|
362 "temperature":20.250 |
|
363 }, |
|
364 "pressure":{ |
|
365 "state":"OK", |
|
366 "channel":7, |
|
367 "voltage":0.322, |
|
368 "zero":0.110, |
|
369 "bar":0.00 |
|
370 } |
|
371 }, |
|
372 { |
|
373 "uuid":"c0ffeeee-dead-beef-caf1-3c71bffe4054", |
|
374 "alias":"unit2", |
|
375 "mode":"OFF", |
|
376 "alarm":1, |
|
377 "temperature":{ |
|
378 "state":"OK", |
|
379 "address":"e001191420732a28", |
|
380 "temperature":20.250 |
|
381 }, |
|
382 "pressure":{ |
|
383 "state":"OK", |
|
384 "channel":6, |
|
385 "voltage":0.075, |
|
386 "zero":0.109, |
|
387 "bar":0.00 |
|
388 } |
|
389 } |
|
390 ] |
|
391 } |
|
392 } |
338 </programlisting> |
393 </programlisting> |
339 </sect1> |
394 </sect1> |
340 |
395 |
341 <sect1 id="payloadco2log"> |
396 <sect1 id="payloadco2log"> |
342 <title>Netwerk payload log formaat voor CO2 meters.</title> |
397 <title>Netwerk payload log formaat voor CO2 meters.</title> |
343 <para> |
398 <para> |
344 Voor iedere actieve CO2 meter wordt bij iedere systeemstart een logbericht |
399 Voor iedere actieve CO2 meter wordt bij iedere systeemstart en iedere vijf |
345 gestuurd. Dit is ongeveer iedere 5 minuten. Omdat de CO2 meters eenvoudige |
400 minuten een logbericht gestuurd. Omdat de CO2 meters eenvoudige |
346 controllers zijn is er geen tijd en product informatie beschikbaar. Deze |
401 controllers zijn is er geen tijd en product informatie beschikbaar. Deze |
347 ontbrekende gegevens worden aangevuld door <command>bmsd</command> |
402 ontbrekende gegevens worden aangevuld door <command>bmsd</command> |
348 </para> |
403 </para> |
349 <programlisting> |
404 <programlisting> |
350 |
405 { |
|
406 "seq":228229, |
|
407 "metric":{ |
|
408 "uuid":"c0ffeeee-dead-beef-caf0-3c71bffe4054", |
|
409 "temperature":21.125, |
|
410 "pressure":0.000 |
|
411 } |
|
412 } |
351 </programlisting> |
413 </programlisting> |
352 <para> |
414 <para> |
353 De ontvangen CO2 log gegevens worden niet opgeslagen in de SQL database |
415 De ontvangen CO2 log gegevens worden niet opgeslagen in de SQL database |
354 maar in platte tekst bestanden. Hierdoor is de gelogde informatie sneller toegankelijk. |
416 maar in platte tekst bestanden. Hierdoor is de gelogde informatie sneller toegankelijk. |
355 Ieder brouw product heeft zijn eigen bestand. |
417 Ieder brouw product heeft zijn eigen bestand. |
364 2 CO2 flesdruk in bar ---------+ | |
426 2 CO2 flesdruk in bar ---------+ | |
365 3 meter uuid -------------------------------------+ |
427 3 meter uuid -------------------------------------+ |
366 </programlisting> |
428 </programlisting> |
367 </sect1> |
429 </sect1> |
368 |
430 |
|
431 |
|
432 <sect1 id="payloadispindeldata"> |
|
433 <title>Netwerk payload data formaat voor iSpindels.</title> |
|
434 <para> |
|
435 Iedere actieve iSpindel stuurt bij iedere systeemstart een bericht. |
|
436 Daarna na iedere <code>interval</code> tijd in seconden een volgend bericht. |
|
437 Omdat de iSpindel eenvoudige controllers zijn is er geen tijd en product |
|
438 informatie beschikbaar. De instellingen voor <code>bmsd</code> in de iSpindel zijn: |
|
439 </para> |
|
440 |
|
441 <orderedlist> |
|
442 <listitem><para>Unit of temperature: Celsius</para></listitem> |
|
443 <listitem><para>Service Type: HTTP</para></listitem> |
|
444 <listitem><para>Token: leeg laten</para></listitem> |
|
445 <listitem><para>Server Address: het server IP adres</para></listitem> |
|
446 <listitem><para>Server Port: 80</para></listitem> |
|
447 <listitem><para>Path / URI: /ispindel/index.php</para></listitem> |
|
448 </orderedlist> |
|
449 |
|
450 <para> |
|
451 De densiteit wordt standaard door de iSpindel in graden Plato gegeven en zo worden |
|
452 de gegevens ook verwerkt. Het SG wordt door de <code>/ispindel/index.php</code> |
|
453 berekend. Dit script verzorgd de omzetting van de iSpindel POST data naar MQTT |
|
454 data. |
|
455 </para> |
|
456 |
|
457 <informaltable frame="none" rowsep="0" colsep="0"> |
|
458 <tgroup cols="2"> |
|
459 <tbody> |
|
460 <row> |
|
461 <entry> |
|
462 <para> |
|
463 <figure><title>iSpindel menu.</title> |
|
464 <mediaobject> |
|
465 <imageobject> |
|
466 <imagedata valign="top" fileref="bms-ispindel-1.png" scale="15" format="png"> |
|
467 </imageobject> |
|
468 </mediaobject> |
|
469 </figure> |
|
470 </para> |
|
471 </entry> |
|
472 <entry> |
|
473 <para> |
|
474 <figure><title>iSpindel configuratie.</title> |
|
475 <mediaobject> |
|
476 <imageobject> |
|
477 <imagedata valign="top" fileref="bms-ispindel-2.png" scale="15" format="png"> |
|
478 </imageobject> |
|
479 </mediaobject> |
|
480 </figure> |
|
481 </para> |
|
482 </entry> |
|
483 </row> |
|
484 </tbody> |
|
485 </tgroup> |
|
486 </informaltable> |
|
487 |
|
488 <para> |
|
489 De ontbrekende gegevens worden aangevuld door <command>bmsd</command> |
|
490 De volgende gegevens worden via het MQTT protocol ontvangen: |
|
491 </para> |
|
492 <programlisting> |
|
493 { |
|
494 "unit":{ |
|
495 "uuid":"c0ffeeee-cafe-dead-bee0-2af236d50dc9", |
|
496 "alias":"iSpindel000", |
|
497 "alarm":0, |
|
498 "interval":900, |
|
499 "angle":42.96722, |
|
500 "temperature":25.5625, |
|
501 "battery":4.254432, |
|
502 "gravity":9.306425 |
|
503 } |
|
504 } |
|
505 </programlisting> |
|
506 <para> |
|
507 De iSpindel stuurt geen aparte log informatie, alle informatie voor de logfile |
|
508 wordt uit het standaard bericht gehaald. |
|
509 De log gegevens worden niet opgeslagen in de SQL database |
|
510 maar weggeschreven in platte tekst bestanden. Hierdoor is de gelogde informatie sneller toegankelijk. |
|
511 Ieder brouw product heeft zijn eigen bestand. |
|
512 De bestanden staan in <code>www/logs/ispindel/</code>. |
|
513 De bestandsnamen zijn <code>product_code\ product_name.log</code>. |
|
514 Het interne formaat is:</para> |
|
515 <programlisting> |
|
516 2020-01-05 14:01:53,19.3750,7.08093,1.02806,3.34724,38.78126,900,c0ffeeee-cafe-dead-bee0-2af236d50dc9 |
|
517 | | | | | | | | |
|
518 0 datetime + | | | | | | | |
|
519 1 temperatuur -----------+ | | | | | | |
|
520 2 densiteit plato ---------------+ | | | | | |
|
521 3 densiteit SG --------------------------+ | | | | |
|
522 4 batterij voltage ------------------------------+ | | | |
|
523 5 tilt hoek ---------------------------------------------+ | | |
|
524 6 update interval ----------------------------------------------+ | |
|
525 7 ispindel uuid ------------------------------------------------------------------+ |
|
526 </programlisting> |
|
527 </sect1> |
|
528 |
|
529 |
369 </chapter> |
530 </chapter> |