|
1 <?php |
|
2 |
|
3 require($_SERVER['DOCUMENT_ROOT']."/config.php"); |
|
4 |
|
5 if ($_SERVER['HTTP_USER_AGENT'] == 'ESP8266HTTPClient') { |
|
6 // /usr/bin/mosquitto_pub -h host] [-p port] [-u username [-P password]] -t topic -m message |
|
7 $publisher = '/usr/bin/mosquitto_pub -h '.MQTT_HOST.' -t '; |
|
8 |
|
9 $input = file_get_contents('php://input'); |
|
10 //syslog(LOG_NOTICE, "ispindel " . $input); |
|
11 $data = json_decode($input, true ); |
|
12 $node = 'ispindel-' . sprintf("%06x", floatval($data['ID'])); |
|
13 |
|
14 $uuid = 'c0ffeeee-cafe-dead-beef-' . sprintf("%06x", 0xffffff - floatval($data['ID'])) . sprintf("%06x", floatval($data['ID'])); |
|
15 $topic = 'mbv1.0/ispindels/NBIRTH/' . $node; |
|
16 $payload = '{"metric":{"uuid":"' . $uuid . '","interval":' . $data['interval'] . ','; |
|
17 $payload .= '"properties":{"hardwaremake":"Wemos","hardwaremodel":"D1 mini","os":"Unknown","os_version":"Unknown","FW":"Unknown"},'; |
|
18 $payload .= '"net":{"address":"' . $_SERVER['REMOTE_ADDR'] . '","ifname":"sta","rssi":' . $data['RSSI'] . '}}}'; |
|
19 $pub = $publisher . $topic . ' -m \'' . $payload . '\''; |
|
20 exec($pub); |
|
21 |
|
22 $alarm = 0; |
|
23 if (floatval($data['battery']) < 3.3) |
|
24 $alarm += 4; |
|
25 |
|
26 if ($data['temp_units'] == 'K') { |
|
27 $tempC = floatval($data['temperature']) - 273.15; |
|
28 } else if ($data['temp_units'] == 'F') { |
|
29 $tempC = floatval($data['temperature']) / 1.8 - 32; |
|
30 } else { |
|
31 $tempC = floatval($data['temperature']); |
|
32 } |
|
33 |
|
34 $uuid = 'c0ffeeee-cafe-dead-bee0-' . sprintf("%06x", 0xffffff - floatval($data['ID'])) . sprintf("%06x", floatval($data['ID'])); |
|
35 $topic = 'mbv1.0/ispindels/DBIRTH/' . $node; |
|
36 $payload = '{"unit":{"uuid":"' . $uuid .'","alias":"' . $data['name'] . '","alarm":' . $alarm . ',"interval":' . $data['interval']; |
|
37 $payload .= ',"angle":' . $data['angle'] . ',"temperature":' . $tempC . ',"battery":' . $data['battery'] . ',"gravity":' . $data['gravity'] . '}}'; |
|
38 $pub = $publisher . $topic . ' -m \'' .$payload . '\''; |
|
39 exec($pub); |
|
40 } |
|
41 |
|
42 ?> |