Regenbasierte automatische Gartenbewässerung + homeMesh-Anbindung für AutoAction-Regeleditor
- Neues stündliches Python-Script (restricted/gartenbewaesserung/auto_watering.py): holt Niederschlags- und Sonnenuntergangsdaten von Open-Meteo, wertet je Zone (Hochbeete/Tröge/Garten vorn) individuelle Regen-Schwellenwerte und Mindest-Bewässerungsdauern aus und startet bei Bedarf per MQTT den passenden Automatik-Modus der Ventilsteuerung im Zeitraum vor Sonnenuntergang; veröffentlicht den Regen-Status zusätzlich stündlich als retained MQTT-Nachricht je Zone. - Web-UI: neue Bewässerungs-Steuerung/-Anzeige (ajax/watering.php, js/solar/solarMQTT.js, assets/img/realtime.svg) inkl. Live-Status-Icons (aus/geplant/pausiert/aktiv per Farbe und Symbol). - AutoAction-Regeleditor (ajax/actorDetails.php, sensorDetails.php, fillActorDD.php, fillSensorDD.php, tahoma.php, AutoAction.php) liest Actor-/Sensor-Parameter jetzt live aus der homeMesh-Datenbank statt aus stark vereinfachten Altfeldern, inkl. zugehöriger Anpassungen am Device-Discovery-Tooling (restricted/deviceDiscovery/*, neues logic_module.py). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+70
-1
@@ -1,5 +1,74 @@
|
||||
<?php
|
||||
require_once("../helper.php");
|
||||
if(isset($_GET["actorID"])){
|
||||
$actorID = intval($_GET["actorID"]);
|
||||
$qry = "SELECT command_name, command_url, parameter_type, min_value, max_value, possible_values, command_parameters.url AS parameter_url, parameter_name FROM actor_commands LEFT JOIN command_parameters ON actor_commands.id = command_id LEFT JOIN state_types ON parameter_type = state_types.id WHERE actor_id=".$actorID;
|
||||
$qry = "SELECT id, command_name, command_url FROM actor_commands WHERE actor_id = ".$actorID;
|
||||
$mysql = new mysqli($mysql_server, $mysql_MeshUser, $mysql_MeshPass, $mysql_MeshDB);
|
||||
$result = mysqli_query($mysql, $qry);
|
||||
$operators = "";
|
||||
//while($row = $result->fetch_assoc()){
|
||||
// print_r($row);
|
||||
// echo "<br />";
|
||||
//}
|
||||
echo '{"commands": [';
|
||||
$iterated = 0;
|
||||
while($row = $result->fetch_assoc()){
|
||||
$items = "[]";
|
||||
$qry2 = "SELECT parameter_type, min_value, max_value, possible_values, command_parameters.url AS parameter_url, parameter_name FROM actor_commands LEFT JOIN command_parameters ON actor_commands.id = command_id LEFT JOIN state_types ON parameter_type = state_types.id WHERE command_id = ".$row["id"];
|
||||
$result2 = mysqli_query($mysql, $qry2);
|
||||
if($iterated++){
|
||||
echo ", ";
|
||||
}
|
||||
echo '{"name" : "'.$row["command_name"].'", "operators" : ["="], "parameters": [';
|
||||
$iterated2 = 0;
|
||||
$type = "hidden";
|
||||
while($row2 = $result2->fetch_assoc()){
|
||||
switch($row2["parameter_type"]){
|
||||
case "integer":
|
||||
if($row2["possible_values"]){
|
||||
$items = $row2["possible_values"];
|
||||
$type = "dropdown";
|
||||
}else{
|
||||
$type = "number";
|
||||
}
|
||||
break;
|
||||
case "float":
|
||||
$type = "number";
|
||||
break;
|
||||
case "time":
|
||||
$type = "time";
|
||||
break;
|
||||
case "bool":
|
||||
$type = "button";
|
||||
break;
|
||||
case "string":
|
||||
if($row2["possible_values"]){
|
||||
$items = $row2["possible_values"];
|
||||
$type = "dropdown";
|
||||
}else{
|
||||
$type = "text";
|
||||
}
|
||||
break;
|
||||
case "":
|
||||
$type = "hidden";
|
||||
default:
|
||||
$type = "text";
|
||||
break;
|
||||
}
|
||||
if($iterated2++){
|
||||
echo ", ";
|
||||
}
|
||||
echo '{"name" : "'.$row2["parameter_name"].'", "url" : "'.$row2["parameter_url"].'", "type" : "'.$type.'", "options" : '.$items.'}';
|
||||
}
|
||||
echo '], "type" : "'.$type.'"}';
|
||||
}
|
||||
echo "]}";
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
require_once("../helper.php");
|
||||
if(isset($_GET["actorID"])){
|
||||
$ID = intval($_GET["actorID"]);
|
||||
$qry = "SELECT parameters FROM actors WHERE id=".$ID;
|
||||
@@ -8,5 +77,5 @@ if(isset($_GET["actorID"])){
|
||||
echo $result->fetch_array()[0];
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
?>
|
||||
Reference in New Issue
Block a user