- setMode kam aus POST oder GET, addiert wurden beide - der fehlende gab "Undefined array key", und die Warnung stand als Meldung im Browser. Jetzt wird der vorhandene genommen. - Der Regler reicht bis 60 (6,0 kW), die Pruefung liess nur < 60 zu; ganz rechts geschah still nichts. - Ist der Heizstab nicht erreichbar, kommt "Der Heizstab ist nicht erreichbar." statt weiterer PHP-Fehler aus fwrite auf eine gescheiterte Verbindung. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
67 lines
2.1 KiB
PHP
67 lines
2.1 KiB
PHP
<?php
|
|
|
|
require_once("../helper.php");
|
|
|
|
|
|
if (checkLogin()) {
|
|
$close = 0;
|
|
$hostname = "192.168.179.169";
|
|
|
|
|
|
if (isset($_POST["setMode"]) || isset($_GET["setMode"])) {
|
|
/*
|
|
* Der Wert kommt aus dem Formular (POST) oder von Hand aus der
|
|
* Adresse (GET) - immer nur einer von beiden. Frueher wurden beide
|
|
* addiert; der fehlende erzeugte eine PHP-Warnung, und die stand dann
|
|
* als Meldung im Browser.
|
|
*
|
|
* 0 = Automatik (Ueberschuss), 1..60 = feste Leistung in 100 W. Der
|
|
* Regler reicht bis 60; die alte Pruefung "< 60" liess genau 6,0 kW
|
|
* still nicht durch.
|
|
*/
|
|
$stufe = intval($_POST["setMode"] ?? $_GET["setMode"] ?? 0);
|
|
if ($stufe >= 1 && $stufe <= 60) {
|
|
$pfad = "/set?mode=man&pwr=" . ($stufe * 100);
|
|
} elseif ($stufe === 0) {
|
|
$pfad = "/set?mode=eco&pwr=0";
|
|
} else {
|
|
$pfad = null;
|
|
}
|
|
if ($pfad !== null) {
|
|
$remote = @fsockopen("tcp://" . $hostname, 80, $errno, $errstr, 5);
|
|
if ($remote) {
|
|
fwrite($remote, "GET " . $pfad . " HTTP/1.1\r\nHost: " . $hostname . "\r\nConnection: close\r\n\r\n");
|
|
stream_set_timeout($remote, 5);
|
|
fread($remote, 1024);
|
|
fclose($remote);
|
|
} else {
|
|
// Ohne Verbindung eine verstaendliche Meldung statt eines PHP-Fehlers.
|
|
// Bewusst Status 200: submitFormAjax() in common.js zeigt die
|
|
// Antwort nur dann als Meldung an.
|
|
echo "Der Heizstab ist nicht erreichbar.";
|
|
}
|
|
}
|
|
$close = 1;
|
|
}
|
|
} else {
|
|
$close = 1;
|
|
}
|
|
if (!$close) {
|
|
echo <<<ENDE
|
|
<!--begin::Form-->
|
|
<form id="heater_form">
|
|
<div class="col-sm-11">
|
|
<div class="form-check">
|
|
<label class="form-label" for="addedCharge">Leistung: </label>
|
|
<div style="font-size: 15px;color: #297195;display: inline-block;" id="modal-slider-label">0</div>
|
|
<input type="range" id="modal-slider" name="setMode" class="form-range range-color-track" min="0" max="60" />
|
|
<div class="d-flex justify-content-between">
|
|
<span class="max-amount f-16 font-weight-normal darkGray-color text-right mt-1">Auto</span>
|
|
<span class="max-amount f-16 font-weight-normal darkGray-color text-right mt-1">6.0 kW</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
ENDE;
|
|
}
|