Fri, 03 May 2024 14:14:01 +0200
Add new fermenter adds dummy yeast temperatures. Periodic thermferm unit logging adds the unit alias name. Added Green LED hide color. Moved getglobal.php to dbglobal.php. Adjusted several record types in global and fermenter javascript records so there is less guesswork. Only display control leds and switches for defined equipment.
679 | 1 | <?php |
2 | ||
3 | ||
4 | function open_socket() | |
5 | { | |
6 | $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); | |
7 | ||
8 | if (!($sock === false)) { | |
9 | if (socket_connect($sock, "localhost", 6554)) { | |
10 | socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 15, 'usec' => 0)); | |
11 | } else { | |
12 | socket_close($sock); | |
13 | } | |
14 | } | |
15 | return $sock; | |
16 | } | |
17 | ||
18 | ||
19 | /** | |
20 | * @param string $command to send to the server. | |
21 | * @return string with the complete reply from the | |
22 | * server. This can be a multiline reply. | |
23 | */ | |
24 | function send_cmd($command) | |
25 | { | |
26 | $sock = open_socket(); | |
27 | if ($sock == false) { | |
28 | return ""; | |
29 | } | |
30 | socket_write($sock, $command . "\r\n", 4096); | |
31 | ||
32 | $answer = ""; | |
33 | while (1) { | |
34 | $line = socket_read($sock, 4096); | |
35 | if ($line === '') | |
36 | break; | |
37 | $answer .= $line; | |
38 | } | |
39 | socket_close($sock); | |
40 | ||
41 | return $answer; | |
42 | } | |
43 | ||
44 | ||
45 | function startsWith($haystack, $needle) | |
46 | { | |
47 | return !strncmp($haystack, $needle, strlen($needle)); | |
48 | } | |
49 | ||
698
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
50 | $response = array( |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
51 | 'error' => false, |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
52 | 'msg' => 'Ok', |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
53 | ); |
679 | 54 | |
698
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
55 | |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
56 | if (isset($_POST['update'])) { |
679 | 57 | |
698
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
58 | /* Changing ports does not yet work in the web scripts, disabled. */ |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
59 | $cmd = "GLOBAL PUT\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
60 | $cmd .= "NAME," . $_POST['name'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
61 | // $cmd .= "PORT," . $_POST['port'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
62 | $cmd .= "TEMP_UUID," . $_POST['temp_uuid'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
63 | $cmd .= "HUM_UUID," . $_POST['hum_uuid'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
64 | $cmd .= "TEMP_HUM_IDX," . $_POST['temp_hum_idx'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
65 | $cmd .= "LCD_ADDRESS," . $_POST['lcd_address'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
66 | $cmd .= "LCD_COLS," . $_POST['lcd_cols'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
67 | $cmd .= "LCD_ROWS," . $_POST['lcd_rows'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
68 | $cmd .= "MQTT_HOST," . $_POST['mqtt_host'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
69 | $cmd .= "MQTT_PORT," . $_POST['mqtt_port'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
70 | $cmd .= "MQTT_USER," . $_POST['mqtt_user'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
71 | $cmd .= "MQTT_PASS," . $_POST['mqtt_pass'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
72 | // $cmd .= "WEBSOCKET_PORT," . $_POST['websocket_port'] . "\r\n"; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
73 | $cmd .= "."; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
74 | $answer = send_cmd($cmd); |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
75 | $arr = explode("\r\n", $answer); |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
76 | if (! startsWith($arr[0], "219")) { |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
77 | $response['error'] = true; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
78 | } |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
79 | exit(json_encode($response)); |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
80 | |
679 | 81 | } else { |
698
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
82 | |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
83 | $answer = send_cmd("GLOBAL JSON"); |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
84 | header("Content-type: application/json"); |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
85 | |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
86 | $arr = explode("\r\n", $answer); |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
87 | if (startsWith($arr[0], "213")) { |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
88 | echo $arr[1]; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
89 | } else { |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
90 | echo '{}'; |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
91 | } |
679 | 92 | } |
93 | ||
698
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
94 | |
92a080c1a5d5
Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents:
679
diff
changeset
|
95 | ?> |