Hi,
ich überwache und zähle in meinem Script jetzt auch Alexa Kommandos, Variablen, Scripte. Anbei aktuelle Version:
<?php
declare(strict_types=1);
error_reporting(E_ERROR | E_PARSE | E_NOTICE);
$SMTP = 33517; // SMTP Instanz falls Mail erwünscht
$htmlString = 29692; // ID einer Stringvariablen mit HTML-Box Profil
$checkErrorCount = 11096; // ID einer Integervariablen für Fehleranzahl
$kernelStart = 15191; // ID einer Intergervariablen mit ~UnixTimeStamp als Profil
// Array mit IDs von Instanzen füllen die ignoriert werden sollen, z.B. weil die Batterie entfernt wurde.
//$ignore = array( 0 ) ;
$ignore = array( 48618,
16529,
57977
);
// Variable A: Typ String, Profil ~HTML-Box
// Variable B: Typ Integer
// Variable C: Typ Integer, Profil ~UnixTimestamp
$startTime = IPS_GetKernelStartTime();
$errorText = '';
$mailText = '';
$errorTotal = 0;
// Transactions
$now = time();
// Threads
$threadList = IPS_GetScriptThreadList();
$threadCount = 0;
foreach ($threadList as $t => $i) {
$thread = IPS_GetScriptThread($i);
$ScriptID = $thread['ScriptID'];
if ($ScriptID != 0) {
$threadCount++;
}
}
// Timer
$timerCount = 0;
$timer1MinCount = 0;
$timer5MinCount = 0;
$timerList = IPS_GetTimerList();
foreach ($timerList as $t) {
$timer = IPS_GetTimer($t);
$next_run = $timer['NextRun'];
if ($next_run == 0) {
continue;
}
$timerCount++;
$delay = $next_run - $now;
if ($delay < 60) {
$timer1MinCount++;
} elseif ($delay < 300) {
$timer5MinCount++;
}
}
$instanceStatusCodes = [
101 => 'Instanz wird erstellt',
102 => 'Instanz ist aktiv',
103 => 'Instanz wird gelöscht',
104 => 'Instanz ist inaktiv',
105 => 'Instanz wurde nicht erzeugt',
];
// Instanzen
$instanceList = IPS_GetInstanceList();
$instanceCount = count($instanceList);
$instanceError = 0;
foreach ($instanceList as $id) {
$key = array_search($id, $ignore);
if (is_bool($key)){
$instance = IPS_GetInstance($id);
if ($instance['InstanceStatus'] <= 104) {
continue;
}
if ($instanceError == 0) {
$errorText .= '<b>Defekte Instanzen:</b><br>' . PHP_EOL;
$mailText .= 'Defekte Instanzen:' . PHP_EOL;
}
$instanceError++;
$instanceStatus = $instance['InstanceStatus'];
if (isset($instanceStatusCodes[$instanceStatus])) {
$err = $instanceStatusCodes[$instanceStatus];
} else {
$err = 'Status ' . $instanceStatus;
}
$col = $instanceStatus >= 200 ? 'red' : 'grey';
$loc = IPS_GetLocation($id);
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $loc . ': ' . $err . '</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $loc . ': ' . $err . PHP_EOL;
}
}
if ($instanceError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $instanceError;
}
$pfad = IPS_GetKernelDir()."scripts";
$handle=opendir ($pfad);
while ($datei = readdir ($handle)) {
if(strpos($datei,".ips.php")!==false) {
$datei =explode(".",$datei);
$files[]=$datei[0];
}
}
closedir($handle);
// Scripte
$scriptList = IPS_GetScriptList();
$scriptCount = count($scriptList);
$scriptError = 0;
foreach ($scriptList as $id) {
$script = IPS_GetScript($id);
if (!$script['ScriptIsBroken']) {
continue;
}
if ($scriptError == 0) {
$errorText .= '<b>Defekte Skripte:</b><br>' . PHP_EOL;
$mailText .= 'Defekte Skripte:' . PHP_EOL;
}
$scriptError++;
$col = 'red';
$loc = IPS_GetLocation($id);
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ' : ' . $script["ScriptFile"].'</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . PHP_EOL;
}
if ($scriptError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $scriptError;
}
// überlüssige Scripte
$scriptError = 0;
foreach($files as $file){
if ( is_numeric($file) ){
$key = array_search($file, $scriptList);
if ( $key === false ){
if ($scriptError == 0) {
$errorText .= '<b>überflüssige Skripte:</b><br>' . PHP_EOL;
$mailText .= 'überflüssige Skripte:' . PHP_EOL;
}
$scriptError++;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $file.'.ips.php wird nicht gebraucht</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $file.'.ips.php wird nicht gebraucht' . PHP_EOL;
}
}
}
if ($scriptError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $scriptError;
}
// fehlende Scripte
$scriptError = 0;
foreach($scriptList as $id){
$key1 = array_search($id, $files);
$script = IPS_GetScript($id);
$datei = $script["ScriptFile"];
if(strpos($datei,".ips.php")!==false) {
$datei =explode(".",$datei);
}
$key2 = array_search($datei[0], $files);
if (( $key1 === false ) && ( $key2 === false )){
if ($scriptError == 0) {
$errorText .= '<b>fehlende Skripte:</b><br>' . PHP_EOL;
$mailText .= 'fehlende Skripte:' . PHP_EOL;
}
$scriptError++;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ' : ' . $script["ScriptFile"].' fehlt</span><br>' . PHP_EOL;
$mailText .= '#' . $id . ' : ' . $script["ScriptFile"].' fehlt' . PHP_EOL;
}
}
if ($scriptError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $scriptError;
}
// Links
$linkList = IPS_GetLinkList();
$linkCount = count($linkList);
$linkError = 0;
foreach ($linkList as $id) {
$link = IPS_GetLink($id);
if (IPS_ObjectExists($link['TargetID'])) {
continue;
}
if ($linkError == 0) {
$errorText .= '<b>Defekte Links:</b><br>' . PHP_EOL;
$mailText .= 'Defekte Links:' . PHP_EOL;
}
$linkError++;
$col = 'red';
$loc = IPS_GetLocation($id);
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $loc . '</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $loc . PHP_EOL;
}
if ($linkError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $linkError;
}
// Objekte
$objectList = IPS_GetObjectList();
$objectCount = count($objectList);
$objectError = 0;
foreach ($objectList as $id) {
$obj = IPS_GetObject($id);
$ok = true;
$pid = $obj['ParentID'];
if ($pid != 0 && !IPS_ObjectExists($pid)) {
$ok = false;
}
$cids = $obj['ChildrenIDs'];
foreach ($cids as $cid) {
if (!IPS_ObjectExists($cid)) {
$ok = false;
}
}
if ($ok) {
continue;
}
if ($objectError == 0) {
$errorText .= '<b>Defekte Objekte:</b><br>' . PHP_EOL;
$mailText .= 'Defekte Objekte:' . PHP_EOL;
}
$objectError++;
$col = 'red';
$loc = IPS_GetLocation($id);
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $loc . '</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $loc . PHP_EOL;
}
if ($objectError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $objectError;
}
// Events
$eventList = IPS_GetEventList();
$eventCount = count($eventList);
$eventActive = 0;
$eventError = 0;
foreach ($eventList as $id) {
$event = IPS_GetEvent($id);
$active = $event['EventActive'];
if ($active) {
$eventActive++;
}
$err = 0;
$varID = $event['TriggerVariableID'];
if ($varID != 0 && IPS_ObjectExists($varID) == false) {
$err++;
}
$eventConditions = $event['EventConditions'];
foreach ($eventConditions as $eventCondition) {
$variableRules = $eventCondition['VariableRules'];
foreach ($variableRules as $variableRule) {
$varID = $variableRule['VariableID'];
if ($varID != 0 && IPS_ObjectExists($varID) == false) {
$err++;
}
}
}
if ($err == 0) {
continue;
}
if ($eventError == 0) {
$errorText .= '<b>Defekte Ereignisse:</b><br>' . PHP_EOL;
$mailText .= 'Defekte Ereignisse:' . PHP_EOL;
}
$eventError++;
$col = $active ? 'red' : 'grey';
$loc = IPS_GetLocation($id);
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $loc . '</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $loc .PHP_EOL;
}
if ($eventError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $eventError;
}
// Module
$moduleList = IPS_GetModuleList();
$moduleCount = count($moduleList);
// Variablen
$varList = IPS_GetVariableList();
$varCount = count($varList);
$varError = 0;
foreach ($varList as $id) {
$err = 0;
$variable = IPS_GetVariable($id);
$Varprofile = $variable['VariableProfile'];
if ($Varprofile != ''){
$profile = IPS_GetVariableProfile($Varprofile);
if ($profile == false){
$err += 1;
}
}
$Varprofile = $variable['VariableCustomProfile'];
if ($Varprofile != ''){
$profile = IPS_GetVariableProfile($Varprofile);
if ($profile == false){
$err += 2;
}
}
if ($err == 0) {
continue;
}
if ($varError == 0) {
$errorText .= '<b>Fehlende Profile:</b><br>' . PHP_EOL;
$mailText .= 'Fehlende Profile:' . PHP_EOL;
}
$varError++;
$col = $active ? 'red' : 'grey';
$loc = IPS_GetLocation($id);
if ($err & 1){
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $loc . '"' . $variable['VariableProfile'] .'" fehlt (Standard)' . '</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $loc . '"' . $variable['VariableProfile'] . '" fehlt ' . PHP_EOL;
}
if ($err & 2){
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $loc . '"' . $variable['VariableCustomProfile'] .'" fehlt (Custom)' . '</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $loc . '"' . $variable['VariableCustomProfile'] . '" fehlt ' . PHP_EOL;
}
}
if ($varError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $varError;
}
// VariableAction
$varError = 0;
foreach ($varList as $id) {
$err = 0;
$variable = IPS_GetVariable($id);
$VarAction = $variable['VariableAction'];
if ($VarAction > 1){
$script = IPS_GetScript($VarAction);
$instanz = IPS_GetInstance($VarAction);
if (($script == false) && ($instanz == false)){
$err += 1;
}
}
$VarAction = $variable['VariableCustomAction'];
if ($VarAction > 1){
$script = IPS_GetScript($VarAction);
$instanz = IPS_GetInstance($VarAction);
if (($script == false) && ($instanz == false)){
$err += 2;
}
}
if ($err == 0) {
continue;
}
if ($varError == 0) {
$errorText .= '<b>Fehlende Aktions-Scripte:</b><br>' . PHP_EOL;
$mailText .= 'Fehlende Aktions-Scripte:' . PHP_EOL;
}
$varError++;
$col = $active ? 'red' : 'grey';
$loc = IPS_GetLocation($id);
if ($err & 1){
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $loc . '"' . $variable['VariableAction'] .'" fehlt (Standard)' . '</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $loc . '"' . $variable['VariableAction'] . '" fehlt ' . PHP_EOL;
}
if ($err & 2){
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $loc . '"' . $variable['VariableCustomAction'] .'" fehlt (Custom)' . '</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $loc . '"' . $variable['VariableCustomAction'] . '" fehlt ' . PHP_EOL;
}
}
if ($varError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $varError;
}
$id_alexa = 0;
$ids = IPS_GetInstanceListByModuleID('{CC759EB6-7821-4AA5-9267-EF08C6A6A5B3}');
if (count($ids) > 0) {
$id_alexa = $ids[0];
$alexalist = [];
$properties = json_decode(IPS_GetConfiguration($id_alexa), true);
foreach($properties as $name => $value) {
if (substr($name, 0, 6) == "Device") {
$devices = json_decode($value, true);
foreach($devices as $device) {
switch ($name){
case 'DeviceSimpleScene':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["SceneControllerSimpleID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceDeactivatableScene':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["SceneControllerDeactivatableActivateID"],
"ID2" => $device["SceneControllerDeactivatableDeactivateID"],
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceGenericSwitch':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["PowerControllerID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceLightSwitch':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["PowerControllerID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceLightDimmer':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["BrightnessControllerID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceLightExpert':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["PowerControllerID"],
"ID2" => $device["BrightnessOnlyControllerID"],
"ID3" => $device["ColorOnlyControllerID"],
"ID4" => $device["ColorTemperatureOnlyControllerID"],
"ID5" => 0
];
break;
case 'DeviceLock':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["LockControllerID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceShutter':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["RangeControllerShutterID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceSpeaker':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["SpeakerID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceTemperatureSensor':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["TemperatureSensorID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceGenericSlider':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["PercentageControllerID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceLightColor':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["ColorControllerID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceMediaPlayer':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["PowerControllerID"],
"ID2" => $device["SpeakerMuteableVolumeID"],
"ID3" => $device["SpeakerMuteableMuteID"],
"ID4" => $device["PlaybackControllerID"],
"ID5" => 0
];
break;
case 'DeviceSpeakerMuteable':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["SpeakerMuteableVolumeID"],
"ID2" => $device["SpeakerMuteableMuteID"],
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
case 'DeviceTelevision':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["PowerControllerID"],
"ID2" => $device["ChannelControllerID"],
"ID3" => $device["SpeakerMuteableVolumeID"],
"ID4" => $device["SpeakerMuteableMuteID"],
"ID5" => $device["InputControllerID"]
];
break;
case 'DeviceThermostat':
$alexalist[] = [
"Name" => $device["Name"],
"Type" => substr($name, 6),
"ID1" => $device["ThermostatControllerID"],
"ID2" => 0,
"ID3" => 0,
"ID4" => 0,
"ID5" => 0
];
break;
default:
var_dump($name);
var_dump($device);
break;
}
}
}
}
$alexaCount = count($alexalist);
$alexaError = 0;
foreach($alexalist as $item) {
$errorIDs = 0;
if (($item['ID1'] > 0) && (IPS_ObjectExists($item['ID1']) == false)){
$errorIDs |= 1;
}
if (($item['ID2'] > 0) && (IPS_ObjectExists($item['ID2']) == false)){
$errorIDs |= 2;
}
if (($item['ID3'] > 0) && (IPS_ObjectExists($item['ID3']) == false)){
$errorIDs |= 4;
}
if (($item['ID4'] > 0) && (IPS_ObjectExists($item['ID4']) == false)){
$errorIDs |= 8;
}
if (($item['ID5'] > 0) && (IPS_ObjectExists($item['ID5']) == false)){
$errorIDs |= 16;
}
if (($errorIDs > 0) && ($alexaError == 0)) {
$errorText .= '<b>Alexa IDs nicht vorhanden:</b><br>' . PHP_EOL;
$col = 'red';
$mailText .= 'Fehlende Alexa IDs:' . PHP_EOL;
}
if ($errorIDs & 1){
$alexaError++;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $item['ID1'] . ' nicht vorhanden</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $item['ID1'] . ' nicht vorhanden' . PHP_EOL;
}
if ($errorIDs & 2){
$alexaError++;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $item['ID2'] . ' nicht vorhanden</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $item['ID2'] . ' nicht vorhanden' . PHP_EOL;
}
if ($errorIDs & 4){
$alexaError++;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $item['ID3'] . ' nicht vorhanden</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $item['ID3'] . ' nicht vorhanden' . PHP_EOL;
}
if ($errorIDs & 8){
$alexaError++;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $item['ID4'] . ' nicht vorhanden</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $item['ID4'] . ' nicht vorhanden' . PHP_EOL;
}
if ($errorIDs & 16){
$alexaError++;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $item['ID5'] . ' nicht vorhanden</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $item['ID5'] . ' nicht vorhanden' . PHP_EOL;
}
}
}
// Medien
$pfad = IPS_GetKernelDir();
$mediaList = IPS_GetMediaList();
$mediaCount = count($mediaList);
$mediaError = 0;
foreach ($mediaList as $id) {
$Media = IPS_GetMedia($id);
if ($Media['MediaType'] == 3){
continue;
}
if (file_exists($pfad.$Media['MediaFile'])){
continue;
}
if ($mediaError == 0) {
$errorText .= '<b>Mediendatei:</b><br>' . PHP_EOL;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';">nicht vorhanden / </span>' . PHP_EOL;
$col = 'yellow';
$errorText .= '<span style="color: ' . $col . ';">gecached nicht gespeichert</span><br><br>' . PHP_EOL;
$mailText .= 'Defekte Mediendatei:' . PHP_EOL;
}
$mediaError++;
if (($Media['MediaIsCached']) && ($Media['MediaIsAvailable'])){
$col = 'yellow';
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $Media['MediaFile'] . ' noch nicht gespeichert</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $Media['MediaFile'] . PHP_EOL;
}
else{
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $Media['MediaFile'] . ' nicht vorhanden</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $Media['MediaFile'] . PHP_EOL;
}
}
if ($mediaError > 0) {
$errorText .= '<br>' . PHP_EOL;
$mailText .= PHP_EOL;
$errorTotal += $mediaError;
}
$mediaCount = count($mediaList);
$mediaError = 0;
foreach ($mediaList as $id) {
$Media = IPS_GetMedia($id);
if ($Media['MediaType'] == 3){
continue;
}
if (file_exists($pfad.$Media['MediaFile'])){
continue;
}
if ($mediaError == 0) {
$errorText .= '<b>Mediendatei:</b><br>' . PHP_EOL;
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';">nicht vorhanden / </span>' . PHP_EOL;
$col = 'yellow';
$errorText .= '<span style="color: ' . $col . ';">gecached nicht gespeichert</span><br><br>' . PHP_EOL;
$mailText .= 'Defekte Mediendatei:' . PHP_EOL;
}
$mediaError++;
if (($Media['MediaIsCached']) && ($Media['MediaIsAvailable'])){
$col = 'yellow';
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $Media['MediaFile'] . ' noch nicht gespeichert</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $Media['MediaFile'] . PHP_EOL;
}
else{
$col = 'red';
$errorText .= '<span style="color: ' . $col . ';"> #' . $id . ': ' . $Media['MediaFile'] . ' nicht vorhanden</span><br>' . PHP_EOL;
$mailText .= 'ID:' . $id . ': ' . $Media['MediaFile'] . PHP_EOL;
}
}
$html = '';
$html .= '<head>' . PHP_EOL;
$html .= '<style>' . PHP_EOL;
$html .= 'body { margin: 1; padding: 0; font-family: "Open Sans", sans-serif; font-size: 20px; }' . PHP_EOL;
$html .= 'table { border-collapse: collapse; border: 0px solid; margin: 0.5em;}' . PHP_EOL;
$html .= 'th, td { padding: 1; }' . PHP_EOL;
$html .= 'thead, tdata { text-align: left; }' . PHP_EOL;
$html .= '#spalte_title { width: 220px; }' . PHP_EOL;
$html .= '#spalte_value { }' . PHP_EOL;
$html .= '</style>' . PHP_EOL;
$html .= '</head>' . PHP_EOL;
$html .= '<body>' . PHP_EOL;
$html .= '<table>' . PHP_EOL;
$html .= '<colgroup><col id="spalte_title"></colgroup>' . PHP_EOL;
$html .= '<colgroup><col id="spalte_value"></colgroup>' . PHP_EOL;
$html .= '<tr><td>Instanzen</td><td>' . $instanceCount . '</td></tr>' . PHP_EOL;
$html .= '<tr><td>Scripte</td><td>' . $scriptCount . '</td></tr>' . PHP_EOL;
$html .= '<tr><td>Links</td><td>' . $linkCount . '</td></tr>' . PHP_EOL;
$html .= '<tr><td>Objekte</td><td>' . $objectCount . '</td></tr>' . PHP_EOL;
$html .= '<tr><td>Ereignisse</td><td>' . $eventCount . ' (aktiv=' . $eventActive . ')</td></tr>' . PHP_EOL;
$html .= '<tr><td>Module</td><td>' . $moduleCount . '</td></tr>' . PHP_EOL;
$html .= '<tr><td>Variablen</td><td>' . $varCount . '</td></tr>' . PHP_EOL;
$html .= '<tr><td>Medien</td><td>' . $mediaCount . '</td></tr>' . PHP_EOL;
if ($id_alexa > 0){
$html .= '<tr><td>Alexa Kommandos</td><td>' . $alexaCount . '</td></tr>' . PHP_EOL;
}
$html .= '<tr><td>Threads</td><td>' . $threadCount . '</td></tr>' . PHP_EOL;
$html .= '<tr><td>Timer</td><td>' . $timerCount . ' (1m=' . $timer1MinCount . ', 5m=' . $timer5MinCount . ')</td></tr>' . PHP_EOL;
$html .= '</table>' . PHP_EOL;
if ($errorTotal > 0) {
$html .= $errorText. '</body>' . PHP_EOL;
// vereinfachten Fehlertext als Mail verschiecken
$mailBetreff = "IPS Check"; //Betreff der E-Mail
SMTP_SendMail($SMTP, $mailBetreff, $mailText);
} else {
$html .= '<br>keine Fehler<br>' . PHP_EOL . '</body>' . PHP_EOL;
}
$htmlString = 29692; // ID einer Stringvariablen mit HTML-Box Profil
$checkErrorCount = 11096; // ID einer Integervariablen für Fehleranzahl
$kernelStart = 15191; // ID einer Intergervariablen mit ~UnixTimeStamp als Profil
SetValueString($htmlString, $html);
SetValueInteger($checkErrorCount, $errorTotal);
SetValueInteger($kernelStart, $startTime);
?>
Ralf