HM-Socket: Skript zur automatischen Korrektur der IP-Konfiguration

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

Hm, warum nicht einfach eine feste IP vergeben oder im DHCP Server eine Reservierung für die CCU(s) eintragen!?

Ja, das mit der Reservierung habe ich gemacht und geht im Prinzip auch gut. Hatte aber kurz hintereinander 2 Fälle mit Problemen. 1.) Verlust der Reservierungen am Router und 2.) IPS-Server temporär von LAN auf WLAN umgestellt. In beiden Fällen war der Socket-Prozess tot und ich habe es erst gemerkt, als kein warmes Wasser mehr aus dem Wasserhahn kam…:frowning:
Das Skript trägt zur weiteren Stabilisierung des Systems bei. Kann ja nicht schaden.

Also bei mir läuft alles was stationär ist (Server, Netzwerkdrucker, CCU, Fritzboxen, usw.) mit einer festen IP Adresse. Das ist auch in größeren Netzen so üblich und hat sich schon seit langem bewährt. Damit braucht man genau solche Sonderlösungen nicht. Die führen nur dazu, dass die Installation unübersichtlicher wird.

kenne ich anders, hat aber sicher auch seine Daseinsberechtigung.

Bei uns werden über die Lease-zeiten Aktive und damit kostenplichtige Server überwacht. Zudem finde ich es übersichtlicher, wenn man die IP Zuordnung in der FW-Appliance einsehen und konfigurieren kann.

Mit gepflegten DNS-Services interessieren dann auch keine IPs mehr.

Wenn die einzelnen Programme denn keine IP Adresse haben wollen :wink: