if($status != 17){
wird nicht funktionieren.
Diese Variable kann nur true oder false sein.
Diese Variable bezieht sich auf den WLAN-Verbindungsstatus.
Du brauchst:
if($api_status['status']['status'] != 17){
z.B:
if($api_status['status']['status'] != 17){
robo_SetVariable("roboArcBattStat", "roboArchivID", $api_status['status']['battery'], true);
}
das else{} danach kannste weglassen
<?
/*******************************************************************************
MSC - Version 2.2 vom 17.04.2017
********************************************************************************
SKRIPT ZUM AUSLESEN VON MÄHROBOTER
AUSGESTATTET MIT DEM
ROBONECT-MODUL H30x Ver. 0.9c
--------------------------------------------------------------------------------
Abfrage der Daten vom Modul
********************************************************************************
*******************************************************************************/
$start = microtime(true);
/*******************************************************************************
*******************************************************************************/
// benötigte Skripte
include_once( "Robo_Alfred_Konfiguration.ips.php" );
include_once( "Robo_Alfred_Funktionen.ips.php" );
// -----------------------------------------------------------------------------
// Variablen initalisieren
$forced_update = false;
$stopped = false;
/*******************************************************************************
*******************************************************************************/
// Auslösendes Ereignis bestimmen
// *****************************************************************************
switch($_IPS['SENDER']){
// *****************************************************************************
// Auslöser WebFront
// -----------------------------------------------------------------------------
case "WebFront":
$forced_update = true;
IPS_SetScriptTimer($_IPS['SELF'], 0);
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
break;
// *****************************************************************************
// Auslöser Variable
// -----------------------------------------------------------------------------
case "Variable":
$object = IPS_GetObject($_IPS['VARIABLE']);
switch($object['ObjectIdent']){
// aktiviert / deaktiviert den Timer im Wintermodus
case "roboSWMTrigger":
switch($_IPS['VALUE']){
case false;
$time = 0;
break;
case true;
$time = $getDataTime['time_station'];
break;
default:
return;
break;
}
IPS_SetScriptTimer($_IPS['SELF'], $time);
break;
default:
return;
break;
}
break;
// *****************************************************************************
// Auslöser TimerEvent
// -----------------------------------------------------------------------------
case "TimerEvent":
IPS_SetScriptTimer($_IPS['SELF'], 0);
break;
// *****************************************************************************
// Auslöser Skript ausführen
// -----------------------------------------------------------------------------
case "Execute";
echo "Skript manuell gestartet!";
return;
break;
// *****************************************************************************
// Auslöser RunScript
// -----------------------------------------------------------------------------
case "RunScript":
// Code
break;
}
/*******************************************************************************
*******************************************************************************/
IPS_SemaphoreEnter("ScriptStart", 8000);
//******************************************************************************
// Abfragen und Variablen schreiben
// ---------------------------------
// API - Status
$content = url_get_contents($getDataUrl['apistatus'], $debug);
$api_status = robo_get_xmltojson($content, $debug);
if($api_status['successful'] == true){
robo_SetVariable("roboVarConnState", "roboVarID", true);
robo_SetVariable("roboVarName", "roboVarID", $api_status['name'], true);
robo_SetVariable("roboVarStatus", "roboVarID", $api_status['status']['status'], true);
robo_SetVariable("roboVarStatMode", "roboVarID", $api_status['status']['mode'], true);
robo_SetVariable("roboVarStatTime", "roboVarID", $api_status['status']['duration'], true);
if($api_status['status']['status'] != 17) robo_SetVariable("roboArcBattStat", "roboArchivID", $api_status['status']['battery'], true);
robo_SetVariable("roboArcTimeBST", "roboArchivID", $api_status['status']['hours'], false, true);
robo_SetVariable("roboVarConnSignal", "roboVarID", $api_status['wlan']['signal'], true);
robo_SetVariable("roboVarStatHoldOn", "roboVarID", $api_status['status']['stopped']);
//robo_SetVariable("roboVarStatLong", "roboVarID", robo_GetStatusLong($api_status['status']['status'], $api_status['status']['duration']), true);
if(array_key_exists("error", $api_status)) robo_SetVariable("roboVarStatError", "roboVarID", $api_status['error']['error_message'], true);
elseif($api_status['status']['stopped'] == 1){
robo_SetVariable("roboVarStatError", "roboVarID", '"Stop" - Modus, bitte "Starten"', true);
robo_SetVariable("roboConSwControlMode", "roboControlID", true, true);
$stopped = true;
}
else{
robo_SetVariable("roboVarStatError", "roboVarID", "kein Fehler", true);
}
}
else robo_SetVariable("roboVarConnState", "roboVarID", false);
// *****************************************************************************
$status = robo_GetVariable("roboVarConnState", "roboVarID");
switch($api_status['status']['status']){case 0: case 4: case 16: case 17: $stat = "station"; break; default: $stat = "work";}
if($status == true){
// *****************************************************************************
if($api_status['status']['status'] != 17){
// API - Fehlerspeicher
if(robo_TimeCheck("roboBoxErrorList", "roboBoxID", $getDataTime['apierror']) or $stopped or $forced_update == true){
$api_content = url_get_contents($getDataUrl['apierror'], $debug);
$api_error = robo_get_xmltojson($api_content, $debug);
if($api_error['successful'] == true) robo_SetVariable("roboBoxErrorList", "roboBoxID", robo_GetErrorList($api_error));
}
}
// *****************************************************************************
// API und Web - Version
if(robo_TimeCheck("roboBoxRobonect", "roboBoxID", $getDataTime['apiversion']) or $forced_update == true){
$api_content = url_get_contents($getDataUrl['apiversion'], $debug);
$api_version = robo_get_xmltojson($api_content, $debug);
$web_content = url_get_contents($getDataUrl['webversion'], $debug);
if($api_version['successful'] or $web_content == true) robo_SetVariable("roboBoxRobonect", "roboBoxID", robo_GetVersion($api_version, $web_content, $debug));
}
// *****************************************************************************
// Web - Status
$content = url_get_contents($getDataUrl['webstatus'], $debug);
$web_status = robo_json_decode($content, "", true, $debug);
if($web_status == true){
//robo_SetVariable("roboVarConnState", "roboVarID", true);
if($web_status['tmnustatus'] == "Suche") robo_SetVariable("roboVarStatLong", "roboVarID", $web_status['tmnustatus'], true);
else robo_SetVariable("roboVarStatLong", "roboVarID", $web_status['Tsdura'], true);
robo_SetVariable("roboVarStatTimer", "roboVarID", $web_status['ttimer']." ".$web_status['tmnumode'], true);
robo_SetVariable("roboVarStatDate", "roboVarID", $web_status['tsdate'].date("Y")." ".$web_status['tstime'], true);
robo_SetVariable("roboVarStatMessage", "roboVarID", substr(strstr($web_status['Tsstop'], " "), 1, -4), true);
}
// Web - Wlan
if(robo_TimeCheck("roboVarConnTime", "roboVarID", $getDataTime['webwlan']) or $forced_update == true){
$content = url_get_contents($getDataUrl['webwlan'], $debug);
$web_wlan = robo_json_decode($content, "tattempts", true, $debug);
if($web_wlan == true){
robo_SetVariable("roboVarConnAdress", "roboVarID", $web_wlan['taddress'], true);
robo_SetVariable("roboVarConnTime", "roboVarID", $web_wlan['tsince'], true);
robo_SetVariable("roboVarConnSignal", "roboVarID", $web_wlan['tsignal'], true);
}
}
if($api_status['status']['status'] != 17){
// Web - Batteriestatus
if(robo_TimeCheck("roboBoxBattery", "roboBoxID", $getDataTime["webbatt_".$stat]) or $forced_update == true){
$content = url_get_contents($getDataUrl['webbatt'], $debug);
$web_batt = robo_json_decode($content, "csbatt", false, $debug);
$data_batt = robo_GetBattery($web_batt);
if($data_batt == true){
robo_SetVariable("roboBoxBattery", "roboBoxID", $data_batt);
robo_SetVariable("roboArcBattVolt", "roboArchivID", $web_batt['pvoltage'], true);
robo_SetVariable("roboArcBattCapacity", "roboArchivID", $web_batt['pcapacity'], true);
robo_SetVariable("roboArcBattCurrent", "roboArchivID", $web_batt['pcurrent'], true);
robo_SetVariable("roboArcBattTemp", "roboArchivID", $web_batt['ptemp'], true);
}
}
// Web - Motoren
if(robo_TimeCheck("roboBoxDrives", "roboBoxID", $getDataTime["webdrive_".$stat]) or $forced_update == true){
$content = url_get_contents($getDataUrl['webdrive'], $debug);
$web_drive = robo_json_decode($content, "csbatt", false, $debug);
$data_drive = robo_GetDrives($web_drive);
if($data_drive == true) robo_SetVariable("roboBoxDrives", "roboBoxID", $data_drive);
}
}
// Web - Betriebsstunden
if(robo_TimeCheck("roboBoxTimeStat", "roboBoxID", $getDataTime['webhours']) or $forced_update == true){
$content = url_get_contents($getDataUrl['webhours'], $debug);
$web_bst = robo_GetTimeStat($content, $debug);
if($web_bst['status'] == true){
robo_SetVariable("roboBoxTimeStat", "roboBoxID", $web_bst['htmlbox']);
robo_SetVariable("roboArcTimeSearchSum", "roboArchivID", $web_bst['data']['h_search'], false, true);
robo_SetVariable("roboArcTimeMowSum", "roboArchivID", $web_bst['data']['h_mow'], false, true);
robo_SetVariable("roboArcTimeCharge", "roboArchivID", $web_bst['data']['h_charge'], false, true);
robo_SetVariable("roboArcTimeChargeCount", "roboArchivID", $web_bst['data']['count_c'], false, true);
robo_SetVariable("roboArcErrorCount", "roboArchivID", $web_bst['data']['error'], false, true);
if($web_bst['search'] !== false) robo_CompareACValue("roboArcTimeSearch", $web_bst['search']);
if($web_bst['mow'] !== false) robo_CompareACValue("roboArcTimeMow", $web_bst['mow']);
}
}
}
// *****************************************************************************
if(($_IPS['SENDER'] == "WebFront") and ($forced_update == true)) SetValue($_IPS['VARIABLE'], -1);
IPS_SetScriptTimer($_IPS['SELF'], $getDataTime["time_".$stat]);
// *****************************************************************************
IPS_SemaphoreLeave("ScriptStart");
//******************************************************************************
$end = microtime(true);
robo_SetVariable("roboArcScriptRuntime", "roboArchivID", ceil(($end - $start) * 1000));
/*******************************************************************************
*******************************************************************************/
?>
PS.: bei mir haben diese Änderungen leider keine Auswirkung auf das Gepiepse.