www/getglobal.php

Mon, 22 Apr 2024 11:33:04 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 22 Apr 2024 11:33:04 +0200
changeset 693
3518c07737d8
parent 679
ecfcb1104b54
child 698
92a080c1a5d5
permissions
-rw-r--r--

Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.

679
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 <?php
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 function open_socket()
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 if (!($sock === false)) {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 if (socket_connect($sock, "localhost", 6554)) {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 15, 'usec' => 0));
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 } else {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 socket_close($sock);
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 }
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 }
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 return $sock;
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 }
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 /**
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 * @param string $command to send to the server.
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 * @return string with the complete reply from the
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 * server. This can be a multiline reply.
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 */
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 function send_cmd($command)
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 $sock = open_socket();
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 if ($sock == false) {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 return "";
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 }
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 socket_write($sock, $command . "\r\n", 4096);
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 $answer = "";
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 while (1) {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 $line = socket_read($sock, 4096);
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 if ($line === '')
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 break;
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 $answer .= $line;
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 }
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 socket_close($sock);
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 return $answer;
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 }
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 function startsWith($haystack, $needle)
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 return !strncmp($haystack, $needle, strlen($needle));
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 }
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 $answer = send_cmd("GLOBAL JSON");
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 header("Content-type: application/json");
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 $arr = explode("\r\n", $answer);
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 if (startsWith($arr[0], "213")) {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 echo $arr[1];
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 } else {
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 echo '{}';
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 }
ecfcb1104b54 Added getglobal.php script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60

mercurial