HM und "Gerätekommunikation gestört"

Hi,

bei mir ist immer mal wieder die Kommunikation zu einzelnen HM-Komponenten gestört.
Daher würde ich gerne einen Watch-Dog, ähnlich dem Lan-WatchDog, laufen lassen, der mich über den Ausfall der Komponenten informiert.
Hat jemand so etwas schon gemacht bzw. wie löst ihr das Problem?

Viele Grüsse
Johannes

Finde leider das Originalskript nicht mehr.

Dieses Skript zeigt Dir in einer STRING-Variable (~HTML-Box) sämtliche Fehler die Dir HM meldet an.

Skript einfach an einem beliebigen Ort starten. Es wird Dir eine Dummy-Instanz angelegt nebst Variablen und Timern.

<?
//Erstellt eine Variable die im WebFront alle ServiceMeldungen anzeigt. Einfach in ein Skript kopieren und ausführen.
//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, 60);
}
$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");
//$anzahl = count($msgs);
//SetValue(18866 /*[Widgets\Errorhandling\Servicemeldungen HM\Fehlereinträge HM]*/, $anzahl);
if(sizeof($msgs) == 0)
 $str .= "<tr><td colspan=3><br/>Keine Servicemeldungen!</td></tr>";
foreach($msgs as $msg)
{
 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);
function GetInstanceIDFromHMID($sid)
{
 $ids = IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}");
 foreach($ids as $id)
 {
 $a = explode(":", HM_GetAddress($id));
 $b = explode(":", $sid);
 if($a[0] == $b[0])
 {
 return $id;
 }
 }
 return 0;
}
function CreateVariableByName($id, $name, $type)
{
 global $IPS_SELF;
 $vid = @IPS_GetVariableIDByName($name, $id);
 if($vid === false)
 {
 $vid = IPS_CreateVariable($type);
 IPS_SetParent($vid, $id);
 IPS_SetName($vid, $name);
 IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
 }
 return $vid;
}
?>

Irgendwann fing Homematic an, Devices als UNREACH zu melden, obwohl keine Störungen auftreten. Leider kann ich mich daher nicht mehr darauf verlassen. Vormals lief das.

Ist bei mir auch so. Hat jemand darüber weitere Infos?!?

gros_ibou

Seit dem ich mein HM-Netzwerk um einen LAN-Adapter erweitert habe sind die Kommunikationsprobleme nur noch ganz selten auf dem Bildschirm. Ab und an meldet ein Fenstergriff bzw. die CCU das sich ein Fenstergriff nicht zyklisch gemeldet hat.

Bei mir ist es anders. Ich habe nur selten Störmeldungen (und dann ist es immer der selbe Aktor) und trotzdem fing es irgendwann an. Auch als ich von LAN auf CCU gewechselt hatte, blieb das Phänomen. Das Unreach bleibt auch stur dauerhaft stehen

Vielen Dank euch für die Infos.

Jetzt muss ich nur noch rausbekommen, warum die Kommunikation immer wieder gestört ist. Die Dimmer sind keine 5 Meter vom HM Lan-Interface entfernt.
Ein anderer HM Schalter, der weit entfernter plaziert ist, machte bisher gar keine Probleme.
Auch dauert es oft über 12 Stunden, bis die Kommunikationsstörung wieder weg ist.
Habt ihr Tips, an was es liegen könnte?

BG Johannes

Das ist nicht zwingend ein Reichweitenproblem. Ich kann über die CCU eine RSSI-Liste aufrufen und sehe direkt die Empfangswerte.

Trotz grün habe ich UNREACH.

Das hat in der Tat scheinbar nichts mit Reichweite zu tun.
Die meist-gestörten Komponenten sind bei mir ein Keymatic, ca 2m. entfernt, ein Antrieb, ca 1m entfernt und der Rekordhalter ein Dimmer, auch 1m entfernt. Bei der Keymatic zB muss jedes mal die Fernbediehnung mindestend 2-3 mal gedrückt werden. Der Dimmer ist für eine Halogen Lampe und ich habe gehört, dass Halogenlampen Funk-signal stören können. Könnte ein Grund sein…

Ich prüfe zur Zeit die Kommunikation meiner HM Komponenten mit diesem Skript.

Mal sehen.

Gruß,

Zapp