Script im Objektbaum ist grau

Was bedeutet das, wenn ein Script und das Ereignis grau sind?
Das Ereignis löst aus und das Script tut fast was es soll.

Es handelt sich um eine Anzeige der Homematic -Servicemeldungen. Das Script ist schon sehr alt - entweder hier aus dem Forum oder es war bei dem Homematicmodul dabei - ich weiss es nicht mehr.

Nach meinem Wechsel auf Raspberrymatic tut es im Prinzip immer noch was es vorher getan hat. Unterschied ist, dass erledigte Servicemeldungen als „war gestört“ angezeigt werden. Bis auf die letzte Meldung verschwinden die irgendwann - die letzte „war gestört“-Meldung bleibt bis ich mal die Raspberrymatic aufrufe und die 0-Servicemeldungen ansehe. 5min später meldet das Auslesescript dann auch tatsächlich, dass 0 Servicemeldungen da sind.

Meine Fragen:
a.) warum ist das Script und Ereignis grau und arbeitet?
b.) hat jemand einen Tipp bzgl. Servicemeldungen und Raspberrymatic?

hier das Script, es wurde um die Anzahl der Servicemeldungen erweitert:

<?php
//Erstellt eine Variable die in der Visualisierung alle ServiceMeldungen anzeigt. Einfach in ein Skript kopieren und ausführen.
// 24.02.18: erweitert um Anzahl Meldungen
$Anzahl = 0;



//Ab hier nichts mehr ändern
$object = IPS_GetObject($_IPS['SELF']);
$parentID = $object['ParentID'];

//Installer
if ($_IPS['SENDER'] == "Execute")
{
    IPS_SetHidden($_IPS['SELF'], true);
    IPS_SetName($_IPS['SELF'], "Auslese-Skript");
    $parentObject = IPS_GetObject($parentID);
    if ($parentObject['ObjectType'] !== 1)
    {
        $instanceID = IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
        IPS_SetParent($instanceID, $parentID);
        $parentID = $instanceID;
        IPS_SetParent($_IPS['SELF'], $parentID);
        IPS_SetName($instanceID, "Servicemeldungen");
    }
    IPS_SetScriptTimer($_IPS['SELF'], 300);
}

$texte = Array(
    "CONFIG_PENDING" => "Konfigurationsdaten stehen zur Übertragung an",
    "LOWBAT" => "Batterieladezustand gering",
    "STICKY_UNREACH" => "Gerätekommunikation war gestört",
    "UNREACH" => "Gerätekommunikation aktuell gestört"
);

$str = "<table width='90%' align='center'>"; // Farbe anpassen oder style entfernen
$str .= "<tr><td><b>Gerätname</b></td><td><b>GeräteID</b></td><td><b>Meldung</b></td></tr>";

$ids = IPS_GetInstanceListByModuleID("{A151ECE9-D733-4FB9-AA15-7F7DD10C58AF}");
if(sizeof($ids) == 0)
    die("Keine HomeMatic Socket Instanz gefunden!");

$msgs = HM_ReadServiceMessages($ids[0]);
if($msgs === false)
    die("Verbindung zur CCU fehlgeschlagen");

if(sizeof($msgs) == 0)
    $str .= "<tr><td colspan=3><br/>Keine Servicemeldungen!</td></tr>";

foreach($msgs as $msg)
{
    $Anzahl = $Anzahl + 1 ;
    if(array_key_exists($msg['Message'], $texte)) {
        $text = $texte[$msg['Message']];
    } else {
        $text = $msg['Message'];
    }
    
    $id = GetInstanceIDFromHMID($msg['Address']);
    if(IPS_InstanceExists($id)) {
        $name = IPS_GetLocation($id);
    } else {
        $name = "Gerät nicht in IP-Symcon eingerichtet";
    }
    
    $str .= "<tr><td>".$name."</td><td>".$msg['Address']."</td><td>".$text."</td></tr>";
}
$str .= "</table>";

$vid = CreateVariableByName($parentID, "Content", 3);
IPS_SetIcon($vid, "Information");
IPS_SetVariableCustomProfile($vid, "~HTMLBox");
SetValue($vid, $str);
// echo "CCU2 - Meldungen: ". $Anzahl;
setvalueinteger(30009,$Anzahl) ;

function GetInstanceIDFromHMID($sid)
{
    $ids = IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}");
    foreach($ids as $id)
    {
        $a = explode(":", IPS_GetProperty($id, 'Address'));
        $b = explode(":", $sid);
        if($a[0] == $b[0])
        {
            return $id;
        }
    }
    return 0;
}

function CreateVariableByName($id, $name, $type)
{
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid === false)
    {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
    }
    return $vid;
}

Dokumentation sagt:

Hellgraue Schrift:
Alles normal und das Objekt wird nicht im WebFront angezeigt.

Das entspricht dem Haken bei Sichtbarkeit im Objekt oder dem Befehl IPS_SetHidden (wie er im Skript ist).

Weder noch, das ist auch aus der Dokumentation :wink:
HM_ReadServiceMessages
Michael

Oh, oh … ich muss wohl etwas nachsitzen und die Doku lesen …

Und meine letzte Frage hast Du vermutlich hier beantwortet:

Das Programm habe ich nicht auf die Raspberrymatic mit umgezogen, weil ich zum einen nicht mehr wusste, warum das da ist und zum anderen habe ich auf der Raspberrymatic eine Einstellung gesetzt, dass Fehlermeldungen automatisch bestätigt werden.
Dann baue ich morgen mal das Homematic-Programm ein.
Danke für die Hinweise!