www/ispindel/index.php

Wed, 06 Dec 2023 20:26:00 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 06 Dec 2023 20:26:00 +0100
changeset 855
2d328a2a4025
parent 849
16079aef4c4c
permissions
-rw-r--r--

Fixed init scripts names in Makefile. Update crontasks to use the database to check the log entries for products.

<?php

require($_SERVER['DOCUMENT_ROOT']."/config.php");

if ($_SERVER['HTTP_USER_AGENT'] == 'ESP8266HTTPClient') {
	//            /usr/bin/mosquitto_pub -h host] [-p port] [-u username [-P password]] -t topic -m message
	$publisher = '/usr/bin/mosquitto_pub -h '.MQTT_HOST.' -t ';

	$input = file_get_contents('php://input');
	$data = json_decode($input, true );

	if ($data['temp_units'] == 'K') {
                $tempC = floatval($data['temperature']) - 273.15;
        } else if ($data['temp_units'] == 'F') {
                $tempC = floatval($data['temperature']) / 1.8 - 32;
        } else {
                $tempC = floatval($data['temperature']);
	}

	$node = 'ispindel-' . sprintf("%06x", floatval($data['ID']));

	$alarm = 0;
	$interval = $data['interval'];
        if (floatval($data['battery']) < 3.3) {
                $alarm += 4;
		if (($interval * 3) < 3600)
			$interval = 3600; // at least 3600 seconds when the battery is low.
		else
			$interval = $interval * 3;
	}

	$uuid = 'c0ffeeee-cafe-dead-beef-' . sprintf("%06x", 0xffffff - floatval($data['ID'])) . sprintf("%06x", floatval($data['ID']));
	$topic = 'mbv1.0/ispindels/NBIRTH/' . $node;
	$payload  = '{"metric":{"uuid":"' . $uuid . '","interval":' . $interval . ',';
	$payload .= '"properties":{"hardwaremake":"Wemos","hardwaremodel":"D1 mini","os":"Unknown","os_version":"Unknown","FW":"Unknown"},';
	$payload .= '"net":{"address":"' . $_SERVER['REMOTE_ADDR'] . '","ifname":"sta","rssi":' . $data['RSSI'] . '}}}';
	$pub = $publisher . $topic . ' -m \'' . $payload . '\'';
	exec($pub);

	$alarm = 0;
	if (floatval($data['battery']) < 3.3)
		$alarm += 4;

	$uuid = 'c0ffeeee-cafe-dead-bee0-' . sprintf("%06x", 0xffffff - floatval($data['ID'])) . sprintf("%06x", floatval($data['ID']));
	$topic = 'mbv1.0/ispindels/DBIRTH/' . $node;
	$payload  = '{"unit":{"uuid":"' . $uuid .'","alias":"' . $data['name'] . '","alarm":' . $alarm . ',"interval":' . $interval;
	$payload .= ',"angle":' . $data['angle'] . ',"temperature":' . $tempC . ',"battery":' . $data['battery'] . ',"gravity":' . $data['gravity'] . '}}';
	$pub = $publisher . $topic . ' -m \'' .$payload . '\'';
	exec($pub);
}

?>

mercurial