[ 'verify_peer' => false, 'verify_peer_name' => false, ], ]); } } $response = @file_get_contents($endpointUrl, false, $context ?: null); if ($response === false && strcasecmp($scheme, 'https') === 0) { $fallbackUrl = preg_replace('#^https#i', 'http', $endpointUrl); $response = @file_get_contents($fallbackUrl); if ($response !== false) { $endpointUrl = $fallbackUrl; } } if ($response === false) { throw new RuntimeException('Unable to reach shared endpoint: ' . $endpointUrl); } try { $payload = json_decode($response, true, flags: JSON_THROW_ON_ERROR); } catch (JsonException $exception) { throw new RuntimeException('Malformed JSON from shared endpoint', 0, $exception); } if (($payload['status'] ?? null) !== 'ok') { $message = $payload['message'] ?? 'unknown error'; throw new RuntimeException('Shared endpoint returned an error: ' . $message); } if (!isset($payload['items']) || !is_array($payload['items'])) { $snippet = substr(strip_tags($response), 0, 200); throw new RuntimeException('Shared endpoint response missing items. Snippet: ' . $snippet); } foreach ($payload['items'] as $item) { $tagKey = str_pad((string) $item['tagId'], 5, '0', STR_PAD_LEFT); $value[$item['name']] = $item['value']; $rounded[$item['name']] = $item['rounded1']; $rounded1[$item['name']] = $item['rounded2']; $roundedid[$tagKey] = $item['rounded2']; $ID[$tagKey] = $item['value']; } $endpointDataLoaded = true; } catch (Throwable $exception) { $endpointErrorMessage = $exception->getMessage(); error_log('Milling shared endpoint failed: ' . $endpointErrorMessage); } $dataSourceLabel = 'Shared endpoint'; if (!$endpointDataLoaded) { require __DIR__ . '/../items.php'; require __DIR__ . '/../items2dec.php'; $dataSourceLabel = 'Legacy items.php data'; } ?>
OPEN"; } if ($value['BAGGASSE_GATESW'] == 0) { echo ""; } ?> OPEN"; } if ($value['BAGASSE_GATESW_2'] == 0) { echo ""; } ?> OPEN"; } if ($value['BAGASSE_GATESW_3'] == 0) { echo ""; } ?>
Data source:
Endpoint error:
Bagasse Gates
Gate 1 CLOSED
Gate 2 CLOSED
Gate 3 CLOSED
Overview
Exhaust Pressure PSI
Total Steam Flow kpph
Total Steam Flow 2 kpph
Live Steam Pressure PSI
Exhaust RSP PSI
Exhaust Steam Flow 1 kpph
Exhaust Steam Flow 2 kpph
Exhaust Steam Flow 3 kpph
AUTO"; } if ($value['Exhaust 1 A/M'] == 1) { echo ""; } ?> AUTO"; } if ($value['Exhaust 2 A/M'] == 1) { echo ""; } ?> AUTO"; } if ($value['Exhaust 3 A/M'] == 1) { echo ""; } ?>
Exhaust 1 A/M MANUAL
Exhaust 2 A/M MANUAL
Exhaust 3 A/M MANUAL
Feed Water
Feed Water Pressure 1-6 psi
Feed Water Pressure 7-8 psi
Feed Water 2 RPM RPM
Feed Water 3 RPM RPM
Feed Water 4 RPM RPM
Feed Water 5 RPM RPM
Feed Water 6 RPM RPM
Feed Water 8 RPM RPM
Feed Water 9 RPM RPM
Boiler 1
Steam Flow kpph
Drum Level %
Feed Water Flow kpph
Drum Pressure psi
ID Fan Speed rpm
ID Temp F
FD Temp F
Flue Gas Temp F
 
Boiler 2
Steam Flow kpph
Drum Level %
Feed Water Flow kpph
Drum Pressure psi
ID Fan Speed rpm
ID Temp F
FD Temp F
Flue Gas Temp F
Steam Temp F
Boiler 3
Steam Flow kpph
Drum Level %
Feed Water Flow kpph
Drum Pressure psi
ID Fan Speed rpm
ID Temp F
FD Temp F
Flue Gas Temp F
Draft F
Boiler 4
Steam Flow kpph
Drum Level %
Feed Water Flow kpph
Drum Pressure psi
ID Fan Speed rpm
ID Temp F
FD Temp F
Flue Gas Temp F
Draft F
Boiler 5
Steam Flow kpph
Drum Level %
Feed Water Flow kpph
Drum Pressure psi
ID Fan Speed rpm
ID Temp F
FD Temp F
Flue Gas Temp F
Draft F
Boiler 6
Steam Flow kpph
Drum Level %
Feed Water Flow kpph
Drum Pressure psi
ID Fan Speed rpm
ID Temp F
FD Temp F
Flue Gas Temp F
Steam Temp F
Boiler 7
Steam Flow kpph
Drum Level %
Feed Water Flow kpph
Drum Pressure psi
ID Fan Speed rpm
ID Temp F
FD Temp F
Flue Gas Temp F
Steam Temp F
Boiler 8
Steam Flow kpph
Drum Level %
Feed Water Flow kpph
Drum Pressure psi
ID Fan Speed rpm
ID Temp F
FD Temp F
Flue Gas Temp F
Steam Temp F