Sun, 05 Jan 2020 20:17:48 +0100
Added ispindel script
www/Makefile | file | annotate | diff | comparison | revisions | |
www/ispindel/index.php | file | annotate | diff | comparison | revisions |
--- a/www/Makefile Sun Jan 05 20:00:39 2020 +0100 +++ b/www/Makefile Sun Jan 05 20:17:48 2020 +0100 @@ -56,7 +56,7 @@ install: ${INSTALL} -d -g 314 -o 314 ${PREFIX} ${WWWDIR} ${WWWDIR}/css ${WWWDIR}/fpdf \ - ${WWWDIR}/fpdf/font \ + ${WWWDIR}/fpdf/font ${WWWDIR}/ispindel \ ${WWWDIR}/jqwidgets ${WWWDIR}/js ${WWWDIR}/images/ ${WWWDIR}/includes/ ${INSTALL} -d -g 314 -o 314 -m 0777 ${WWWDIR}/run ${INSTALL} -d -g 314 -o 314 ${WWWDIR}/log @@ -69,6 +69,7 @@ ${INSTALL} -g 314 -o 314 -m 0644 css/* ${WWWDIR}/css/ ${INSTALL} -g 314 -o 314 -m 0644 images/* ${WWWDIR}/images/ ${INSTALL} -g 314 -o 314 -m 0644 includes/* ${WWWDIR}/includes/ + ${INSTALL} -g 314 -o 314 -m 0644 ispindel/* ${WWWDIR}/ispindel/ cp -r jqwidgets/* ${WWWDIR}/jqwidgets/ chown -R 314:314 ${WWWDIR}/jqwidgets cp -r -p fpdf/* ${WWWDIR}/fpdf/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/ispindel/index.php Sun Jan 05 20:17:48 2020 +0100 @@ -0,0 +1,42 @@ +<?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'); + //syslog(LOG_NOTICE, "ispindel " . $input); + $data = json_decode($input, true ); + $node = 'ispindel-' . sprintf("%06x", floatval($data['ID'])); + + $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":' . $data['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; + + 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']); + } + + $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":' . $data['interval']; + $payload .= ',"angle":' . $data['angle'] . ',"temperature":' . $tempC . ',"battery":' . $data['battery'] . ',"gravity":' . $data['gravity'] . '}}'; + $pub = $publisher . $topic . ' -m \'' .$payload . '\''; + exec($pub); +} + +?>