Da sich bei mir hin und wieder die IP-Adressen ändern und dann der Socketprozess steht, habe ich am Wochenende mal ein Skript zur automatischen Heilung auf Basis der MAC-Adresse gebastelt.
$id =12345 /*[HomeMatic Socket]*/;
//----------------------------------------------------------------
// HomeMatic-Socket i.O.?
//----------------------------------------------------------------
if (IPS_GetInstance ($id)['InstanceStatus']<>102){
//----------------------------------------------------------------
// CCU-IP laut Socket-Eintrag
//----------------------------------------------------------------
$SollIP = HM_GetHost($id);
//----------------------------------------------------------------
// CCU-IP auf Basis der Mac-Adresse suchen
//----------------------------------------------------------------
$arp = `arp -a`;
$mac = "00-11-22-33-44-55"; //Mac-Adresse der HomeMatic CCU
$pos = strpos($arp, $mac);
if($pos){
$ip = substr($arp, $pos-22, 15);
//----------------------------------------------------------------
// Fehlerhafte CCU-IP korrigieren
//----------------------------------------------------------------
if ($ip <> $SollIP) {IPS_SetProperty ( $id , "Host" , $ip );}
}
//----------------------------------------------------------------
// Fehlerhafte Ereignisserver-IP korrigieren
//----------------------------------------------------------------
$ip = gethostbyname('');//IP-Adresse des IPS-Servers
echo $ip;
IPS_SetProperty ( $id , "IPAddress" , $ip );
if(IPS_HasChanges($id))
{
IPS_ApplyChanges($id);
}
}
Das Skript wird bei mir alle 10 Minuten aufgerufen.
Wer auch das Problem hat, einfach mal ausprobieren.
Grüße
Silberstreifen