www/ispindel/index.php

Mon, 06 Jan 2020 15:07:40 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 06 Jan 2020 15:07:40 +0100
changeset 585
fa6e702d0d24
parent 584
c9101b2eeb6a
child 847
dc9281501ca6
permissions
-rw-r--r--

Use the same emergency logic as the iSpindel.

581
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 <?php
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 require($_SERVER['DOCUMENT_ROOT']."/config.php");
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 if ($_SERVER['HTTP_USER_AGENT'] == 'ESP8266HTTPClient') {
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 // /usr/bin/mosquitto_pub -h host] [-p port] [-u username [-P password]] -t topic -m message
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 $publisher = '/usr/bin/mosquitto_pub -h '.MQTT_HOST.' -t ';
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 $input = file_get_contents('php://input');
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 //syslog(LOG_NOTICE, "ispindel " . $input);
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 $data = json_decode($input, true );
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 $node = 'ispindel-' . sprintf("%06x", floatval($data['ID']));
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13
584
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
14 $alarm = 0;
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
15 $interval = $data['interval'];
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
16 if (floatval($data['battery']) < 3.3) {
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
17 $alarm += 4;
585
fa6e702d0d24 Use the same emergency logic as the iSpindel.
Michiel Broek <mbroek@mbse.eu>
parents: 584
diff changeset
18 if (($interval * 3) < 3600)
fa6e702d0d24 Use the same emergency logic as the iSpindel.
Michiel Broek <mbroek@mbse.eu>
parents: 584
diff changeset
19 $interval = 3600; // at least 3600 seconds when the battery is low.
fa6e702d0d24 Use the same emergency logic as the iSpindel.
Michiel Broek <mbroek@mbse.eu>
parents: 584
diff changeset
20 else
fa6e702d0d24 Use the same emergency logic as the iSpindel.
Michiel Broek <mbroek@mbse.eu>
parents: 584
diff changeset
21 $interval = $interval * 3;
584
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
22 }
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
23
581
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 $uuid = 'c0ffeeee-cafe-dead-beef-' . sprintf("%06x", 0xffffff - floatval($data['ID'])) . sprintf("%06x", floatval($data['ID']));
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 $topic = 'mbv1.0/ispindels/NBIRTH/' . $node;
584
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
26 $payload = '{"metric":{"uuid":"' . $uuid . '","interval":' . $interval . ',';
581
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 $payload .= '"properties":{"hardwaremake":"Wemos","hardwaremodel":"D1 mini","os":"Unknown","os_version":"Unknown","FW":"Unknown"},';
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 $payload .= '"net":{"address":"' . $_SERVER['REMOTE_ADDR'] . '","ifname":"sta","rssi":' . $data['RSSI'] . '}}}';
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 $pub = $publisher . $topic . ' -m \'' . $payload . '\'';
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 exec($pub);
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 $alarm = 0;
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 if (floatval($data['battery']) < 3.3)
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 $alarm += 4;
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 if ($data['temp_units'] == 'K') {
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 $tempC = floatval($data['temperature']) - 273.15;
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 } else if ($data['temp_units'] == 'F') {
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 $tempC = floatval($data['temperature']) / 1.8 - 32;
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 } else {
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 $tempC = floatval($data['temperature']);
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 }
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 $uuid = 'c0ffeeee-cafe-dead-bee0-' . sprintf("%06x", 0xffffff - floatval($data['ID'])) . sprintf("%06x", floatval($data['ID']));
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 $topic = 'mbv1.0/ispindels/DBIRTH/' . $node;
584
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
46 $payload = '{"unit":{"uuid":"' . $uuid .'","alias":"' . $data['name'] . '","alarm":' . $alarm . ',"interval":' . $interval;
581
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 $payload .= ',"angle":' . $data['angle'] . ',"temperature":' . $tempC . ',"battery":' . $data['battery'] . ',"gravity":' . $data['gravity'] . '}}';
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 $pub = $publisher . $topic . ' -m \'' .$payload . '\'';
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 exec($pub);
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 }
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 ?>

mercurial