www/drop_tempsensors.php

Tue, 07 May 2024 14:11:31 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 07 May 2024 14:11:31 +0200
changeset 732
b0e99e30a008
parent 708
13555c27b592
permissions
-rw-r--r--

Save one devices loop when handling a 2413 device.

697
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 <?php
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 function open_socket()
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 if (!($sock === false)) {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 if (socket_connect($sock, "localhost", 6554)) {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 15, 'usec' => 0));
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 } else {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 socket_close($sock);
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 return $sock;
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 /**
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 * @param string $command to send to the server.
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 * @return string with the complete reply from the
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 * server. This can be a multiline reply.
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 */
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 function send_cmd($command)
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 $sock = open_socket();
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 if ($sock == false) {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 return "";
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 socket_write($sock, $command . "\r\n", 4096);
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 $answer = "";
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 while (1) {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 $line = socket_read($sock, 4096);
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 if ($line === '')
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 break;
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 $answer .= $line;
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 socket_close($sock);
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 return $answer;
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 function startsWith($haystack, $needle)
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 return !strncmp($haystack, $needle, strlen($needle));
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 $answer = send_cmd("DEVICES JSON");
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 $arr = explode("\r\n", $answer);
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 if (startsWith($arr[0], "212")) {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 /*
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 * Build reply with only temperature sensors.
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 */
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 $sensors[] = array(
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 'uuid' => '',
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 'name' => 'Not Assigned'
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 );
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 $rows = json_decode($arr[1], true);
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 foreach($rows as $item) {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 if ($item['direction'] == "IN_ANALOG") {
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 $sensors[] = array(
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 'uuid' => $item['uuid'],
708
13555c27b592 Version 0.9.19a6. Fixes after a short trial on the production controller. Fixed json for alternate beer termperature sensor. Fixed division by 1000 for the room temperature and humidity values. The dropdown list for devices shows the address instead of description in the list.
Michiel Broek <mbroek@mbse.eu>
parents: 697
diff changeset
68 'name' => $item['address']." ".$item['comment']
697
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 );
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 header("Content-type: application/json");
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 exit(json_encode($sensors));
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 }
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 header("Content-type: application/json");
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 echo '{}';
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 ?>

mercurial