Wed, 23 Oct 2019 14:20:50 +0200
Added the product divide scripts. All parts have all the volumes and weights divided, including the master record. Splitted batches have their own records with the product code formatted as code-n. From this design, we can rebuild the print and checklist.
<?php require_once('config.php'); /* * Sequence number file. Must be mode 666 in directory mode 777 */ $sfile = "run/sequence"; if (fopen($sfile, "r")) { $data = file_get_contents($sfile); $nr = intval($data); } else { $nr = 1; } $nr++; if ($fp = fopen($sfile, "w")) { file_put_contents($sfile, $nr); fclose($fp); } if (isset($_POST['node'])) { $node = $_POST['node']; } else { return 1; } if (isset($_POST['alias'])) { $alias = $_POST['alias']; } else { return 1; } if (isset($_POST['payload'])) { $payload = $_POST['payload']; } else { return 1; } /* * topic: mbv1.0/fermenters/DCMD/$node/$alias * payload: {"timestamp":1546956819,"seq":688,"metric":$payload} * $payload: {"product":{"code":"HUP001","name":"Hop Hup"}} * {"stage":"PRIMARY","mode":"FRIDGE","setpoint":{"low":17.8,"high":18.2}} * {"heater":{"state":0},"cooler":{"state":0},"fan":{"state":0},"light":{"state":0}} * {"profile":{"uuid":"...","name":"profielnaam","inittemp":{"low":18.2,"high":20.5},"fridgemode":0, * "steps":[{"resttime":12,"steptime":36,"target":{"low":20.8,"high":23.1},"fridgemode":0}, * {"resttime":48,"steptime":48,"target":{"low":27.5,"high":28.0},"fridgemode":0}]}} * {"profile":{"command":"start/stop/pause/abort"} */ $topic = "mbv1.0/fermenters/DCMD/" . $node . "/" . $alias; $payload = '\'{"timestamp":' . time() . ',"seq":' . $nr . ',"metric":' . $payload . '}\''; syslog(LOG_NOTICE, $topic . ' ' . $payload); shell_exec('mosquitto_pub -h '.MQTT_HOST.' -q 0 -t '.$topic.' -m '.$payload); ?>