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.

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 $data = json_decode($input, true );
847
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
11
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
12 if ($data['temp_units'] == 'K') {
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
13 $tempC = floatval($data['temperature']) - 273.15;
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
14 } else if ($data['temp_units'] == 'F') {
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
15 $tempC = floatval($data['temperature']) / 1.8 - 32;
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
16 } else {
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
17 $tempC = floatval($data['temperature']);
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
18 }
dc9281501ca6 De iSpindel plato berekening is in het webscript gezet omdat er dan met meer cijfers achter de komman gerekend wordt. De uitkomst verschilt 0.25 plato! De calibratie is nu dus extern.
Michiel Broek <mbroek@mbse.eu>
parents: 585
diff changeset
19
581
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 $node = 'ispindel-' . sprintf("%06x", floatval($data['ID']));
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21
584
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
22 $alarm = 0;
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
23 $interval = $data['interval'];
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
24 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
25 $alarm += 4;
585
fa6e702d0d24 Use the same emergency logic as the iSpindel.
Michiel Broek <mbroek@mbse.eu>
parents: 584
diff changeset
26 if (($interval * 3) < 3600)
fa6e702d0d24 Use the same emergency logic as the iSpindel.
Michiel Broek <mbroek@mbse.eu>
parents: 584
diff changeset
27 $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
28 else
fa6e702d0d24 Use the same emergency logic as the iSpindel.
Michiel Broek <mbroek@mbse.eu>
parents: 584
diff changeset
29 $interval = $interval * 3;
584
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
30 }
c9101b2eeb6a Interval is 3600 seconds when running on low battery.
Michiel Broek <mbroek@mbse.eu>
parents: 581
diff changeset
31
581
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 $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
33 $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
34 $payload = '{"metric":{"uuid":"' . $uuid . '","interval":' . $interval . ',';
581
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 $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
36 $payload .= '"net":{"address":"' . $_SERVER['REMOTE_ADDR'] . '","ifname":"sta","rssi":' . $data['RSSI'] . '}}}';
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 $pub = $publisher . $topic . ' -m \'' . $payload . '\'';
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 exec($pub);
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 $alarm = 0;
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 if (floatval($data['battery']) < 3.3)
fc276025d047 Added ispindel script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 $alarm += 4;
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;
849
16079aef4c4c Version 0.3.44. Moved iSpindel Plato calculation from the php script to bmsd. This uses calibration data in the mon_ispindels table. Setup of this data will be done by the bmsapp applications. Default settings are stored in MySQL. From now on you don't need to store calibration data in the iSpindel.
Michiel Broek <mbroek@mbse.eu>
parents: 847
diff changeset
47 $payload .= ',"angle":' . $data['angle'] . ',"temperature":' . $tempC . ',"battery":' . $data['battery'] . ',"gravity":' . $data['gravity'] . '}}';
581
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