www/drop_tempsensors.php

Mon, 22 Apr 2024 20:58:55 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 22 Apr 2024 20:58:55 +0200
changeset 697
685f20ad87ed
child 708
13555c27b592
permissions
-rw-r--r--

The global settings screen added. No Save function yet.

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'],
685f20ad87ed The global settings screen added. No Save function yet.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 'name' => $item['description']." ".$item['comment']
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