Bestätigung der Servicemeldungen

Hallo,

ich habe das IPS Library Modul homematic installiert. Wie funktioniert die Bestätigung der Servicemeldungen? Ich kann die Meldungen zwar bestätigen in der Library, aber sie wird dennoch weiter angezeigt. Hat es einen Einfluss ob die CCU2 die Meldungen von sich aus bestätigen soll?

Gruß oekomat

Kann Dir da leider auch nur bedingt weiterhelfen, da ich einerseits noch die alte CCU besitze und andererseits das Skript zum Reset nicht selbst geschrieben habe (hab nur diverse Skripts aus dem Forum in ein Library Modul verpackt).

Aktuell wird folgendes Skript zum Rücksetzen der Meldungen verwendet:


<?

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

$CCUIPAddress = HM_GetHost($homematicIntanceIdList[0]);

$HM_Script = "
				string itemID;
				string address;
				object aldp_obj;

				foreach(itemID, dom.GetObject(ID_DEVICES).EnumUsedIDs())
				{
					address = dom.GetObject(itemID).Address();
					aldp_obj = dom.GetObject('AL-' # address # ':0.STICKY_UNREACH');
					if (aldp_obj)
					{
					   if (aldp_obj.Value())
						{
						  aldp_obj.AlReceipt();
							! dom.GetObject('Kommunikationsstörung').State(dom.GetObject(itemID).Name());
						}
					  }
				}";

// Initialisieren der Socket-Verbindung
$fp = fsockopen($CCUIPAddress, 8181, $errno, $errstr, 2);
$res = "";

if(! $fp)
{
    $res = "$errstr ($errno)<br />
";
}
else
{
    // Zusammenstellen des Header für HTTP-Post
    fputs($fp, "POST /Test.exe HTTP/1.1
");
    fputs($fp, "Content-type: application/x-www-form-urlencoded
");
    fputs($fp, "Content-length: ".strlen($HM_Script)."
");
    fputs($fp, "Connection: close

");
    fputs($fp, $HM_Script);
    while(! feof($fp))
    {
        $res .= fgets($fp, 500);
    }
    fclose($fp);
}
echo $res;
?>

Wenn jemand eine Lösung findet, dann pflege ich das gerne ein …

Hallo,
habe das gleiche Problem, das ich die Meldungen (CCU2) nicht bestätigen kann.

Hallo Andreas,

bei mir geht das bestätigen der CCU2 Meldungen auch nicht mehr.

Die Bestätigung der CCU1 Meldungen geht nach wie vor.

Ich hatte dein Skript ja angepasst, dass es einfach in einer Schleife über alle CCU’s läuft und das ging auch soweit.

Ich habe jetzt auf der CCU2 die aktuellste Firmware (2.35.16) drauf und auch die Logikschicht der CCU2 sowohl auf Standard als auch auf Legacy getestet.

Die Bestätigung funktioniert in keiner Variante.
Das Auslesen und die Kommunikation mit den Geräten funktioniert einwandfrei.

Leider habe ich auch keine Ahnung mehr, woran ich noch schrauben kann :slight_smile:
Derzeit muss ich dann halt über die CCU GUI die Fehler bestätigen.

Gruß
Maze

Ich lasse direkt auf der CCU ein Skript laufen zum Bestätigen der Meldungen.

Getriggert wird es durch auftauchende Servicemeldungen:

Der Inhalt des Skripts:

! STICKY_UNREACH 1.4
! das Script bestätigt alle auftretenden "Gerätekommunikation war gestört"-Meldungen
string itemID;
string address;
object aldp_obj;
string sDeviceName;
string sStdOut;
string sStdErr;
boolean bUnreachFound = false;

foreach(itemID, dom.GetObject(ID_DEVICES).EnumUsedIDs()) {
  address = dom.GetObject(itemID).Address();

  aldp_obj = dom.GetObject("AL-" # address # ":0.STICKY_UNREACH");
  if (aldp_obj) {
    sDeviceName = dom.GetObject(itemID).Name();
    if (aldp_obj.Value()) {
      aldp_obj.AlReceipt();
      dom.GetObject("Kommunikationsstoerung").State("");
    }
  }

  aldp_obj = dom.GetObject("AL-" # address # ":0.UNREACH");
  if (aldp_obj) {
    sDeviceName = dom.GetObject(itemID).Name();
    if (aldp_obj.Value()) {
      dom.GetObject("Kommunikationsstoerung").State(sDeviceName);
      bUnreachFound = true;
    }
  } 
}

if (bUnreachFound == false) {
  dom.GetObject("Kommunikationsstoerung").State("");
}

Habe ich mal irgendwo aufgeschnappt.

Gruß

Burkhard