IPSHomematic 2 CCU´s

Hallo zusammen,

ich wurde gebetten meine Frage in diesem Forum zustellen.
Ich hoffe jemand kann mir helfen. Ich habe 2 CCU´s eingebunden. Eine Lokal und eine weitere über eine VPN Verbindung.

Dank CCU Meldungen in IPS bei 2 CCUs empfange ich nun auch von beiden ihre Servicemeldungen. Hab aber das Problem das nur Meldungen der zweiten CCU (VPN) quittiert werden können über das Homematic Modul. Meldungen der ersten werden nicht quittiert. Kann mir jemand nen Tipp geben was ich anpassen muss?

Vielen Dank

Moin,
Funktioniert es denn mit beiden wenn Du sie jeweils einzeln abfragst?
http://www.ip-symcon.de/forum/threads/14741-CCU-Meldungen-in-IPS-bei-2-CCUs?p=126142#post126142

//Sven

Hallo,

leider nicht mehr seitdem die zweite CCU im System vorhanden ist.

Hallo,

das Thema ist zwar schon älter, da ich aber auch seit kurzem eine 2te CCU in Betrieb genommen habe, bin ich eben über die gleiche Problematik gestolpert.

Da bisher keine Lösung geposted wurde, schreibe ich Euch meine kurz rein:

Ich verwende das IPSHomematic-Modul. Dort muss man in der IPSHomematic_Manager.class.php die Funktion ResetServiceMessages um eine Schleife erweitern:

		/** 
		 * @public
		 *
		 * Reset der Homematic Service Messages
		 */
		public function ResetServiceMessages() {
			$homematicIntanceIdList = IPS_GetInstanceListByModuleID("{A151ECE9-D733-4FB9-AA15-7F7DD10C58AF}");
			if(sizeof($homematicIntanceIdList) == 0) die("Keine HomeMatic Socket Instanz gefunden!");
			//BOMMH
			$res = "";
			foreach($homematicIntanceIdList as $myhomematicIntanceId)
				{
			
				$CCUIPAddress = HM_GetHost($myhomematicIntanceId);
            	
				$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);
				}
			} //EOMMH
				return $res;

Damit klappt dann auch der Reset.

Zur Anzeige aller, einfach dem Link weitervorne zu Paresy’s Anleitung folgen.

Gruß
Maze