Lukky
6. Oktober 2011 um 14:33
1
Hallo,
heute bemerkte ich einen Socket-Fehler als ich im Webfront einen Schalter schalten wollte. Beim Aufrufen des Webfronts der CCU Fehler „abnormal Funktion“. Meine Frage da ich die CCU von IPS aus anpinge, was in diesem Fall nichts gebracht hat :rolleyes: kann ich die ordnungsgemäße Funktion des Socket überwachen?
<?
print_r(IPS_GetInstance(12697)); // CCU
?>
//
Array
(
[ChildrenIDs] => Array
(
[0] => 10840
[1] => 11020
[.....
)
[InstanceID] => 12697
[InstanceStatus] => 102
[LastChange] => 0
[ModuleInfo] => Array
(
[ModuleID] => {A151ECE9-D733-4FB9-AA15-7F7DD10C58AF}
[ModuleName] => HomeMatic Socket
[ModuleType] => 1
)
[NeedParent] =>
[ParentID] => 0
)
Ist dann im Fehlerfall auch der InstanceStatus inaktiv oder fehlerhaft?
Andreas
kronos
6. Oktober 2011 um 14:38
2
Ja, das geht. Du kannst im Event-Handler hinterlegen dass bei Statusänderung einer Instanz ein Skript ausgeführt wird in dem Du dann die notwendigen Schritte wie Benachrichtigung usw. vornehmen kannst.
Lukky
7. Oktober 2011 um 10:57
3
Hallo Kronos,
danke für die Rückantwort.
Jetzt stehe ich als PHP-Dummy vor dem Problem das in eine Script zu packen:confused:
<?
$CCU_Status = IPS_GetInstance(12697 /*[HomeMatic Socket CCU1]*/)->InstanceStatus;
//print_r($CCU_Status);
SetValue(51769,$CCU_Status);
?>
Andreas
Für einfaches Copy&Paste braucht es keinen php-crack
Rechte MT, Objekt hinzu, Skript hinzufügen, ausfüllen bis Skriptmaske (<?), und den Text reinkopieren, fertig.
Ansonsten ist doch das Problem „Überwachung CCU“ schon öfters behandelt worden.
Gruß
Bruno
kronos
7. Oktober 2011 um 11:23
5
z.b.
<?
$Instance = IPS_GetInstance(12345 /*[Socket-ID]*/);
$Status = $Instance['InstanceStatus'];
$Nachricht = "Socket-Instanz inaktiv.";
if ($Status == 102) {
$Nachricht = "Socket-Instanz ist OK."."
";
}
echo $Nachricht;
?>
Lukky
7. Oktober 2011 um 14:57
6
Hallo Kronos,
danke für deine konstruktive Hilfe.
<?
$Instance = IPS_GetInstance(12697 /*[HomeMatic Socket CCU1]*/);
$Status = $Instance['InstanceStatus'];
SetValue(51769 /*[Service\Homematic\HM_CCU\CCU-Status]*/,$Status);
?>
Mir war nur nicht klar wie das Array aufgelöst wird.
Learning by Doing
@Powerfreddy
Copy&Paste - Du bist aber nicht mit einem fränkischen Freiherrn aus meiner Nachbarschaft verwandt?
Andreas
Nö, setze alles in Anführungszeichen …
Hatte Deine Frage falsch interpretiert. Freut mich, wenn es klappt.
Gruß
Bruno
Lukky
7. Oktober 2011 um 22:01
8
Hallo Powerfreddy,
bin halt leider nur ne „Hardware Nutte“ die aber lernfähig ist.
Deshalb gefallen mir immer am Besten die Beispiele die auch dokumentiert sind, dann kann man auch was nachvollziehen.:rolleyes:
Andreas