Objekt-ID aus Homematic-Seriennummer ermitteln?

Hallo,

ich versuche mich gerade an einem Installationskript für mein IPS.
In diesem möchte ich meine Homematic-Instanzen in eine Kategorie verschieben.
In einem bestehenden IPS habe ich als Instanzidentifizierung doch nur die HM-Seriennummer.(glaube ich zumindest)
Ich wollte mit dem Befehl „IPS_SetParent(ObjektID,ParentID)“ die Instanz verschieben. Nur wie ermittle ich aus der HM-Seriennummer die zugehörige Objekt-ID? Ich habe in den Standard-Befehlen nichts gefunden. Hoffe ich habe nicht übersehen

Hat jemand einen Tip für mich?

Gruß Jogel

Die Seriennummern kannst Du mit der InstanzID ermitteln. Diese wiederum bekommst Du z.B. hiermit.

Schnipp

foreach(IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}") as $ids)
{
   $id = IPS_GetInstance($ids);

Schnapp

Hi Rainer,

ich wollte es eigentlich genau umgekehrt.
Ich habe ja die HM-Seriennummer und möchte daraus die ObjektID ermitteln.

Gruß Jogel

Wie kommst Du an die Seriennummer?

Ich hoffe wir reden nicht aneinander vorbei :slight_smile:

stelle gerade fest, das ich wohl die Kanaladresse meinte und nicht die Seriennummer :o
ich meine sowas „IEQ0023824:0“ zB

Gruß Jogel

Das meinte ich. Das bekommst du über die Instanz und dann mit

HM_GetAddress($id);

Danke Rainer,

werde mir das mal in Ruhe anschauen und probieren.

Gruß Jogel

Hallo!

Ich denke dir würde diese Funktion helfen:

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 false;
}

Gruß,
Christian.

Danke Christian,

wollte gerade meine Function posten, da sehe ich das du auch eine geschrieben hast.

hier meine Version:

<?php
function GetObjektIDbyHM_ID ($HM_id) {
 foreach(IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}") as $ids) {
	if (HM_GetAddress($ids) == $HM_id) {
		return $ids ;
  		}
   }
}
?>

sieht so ähnlich aus, bei dir nur irgendwie aufgeräumter und übersichtlicher.
meine erste Function, nun hab ich das auch endlich verstanden, hoffe ich :slight_smile:
und kann endlich bei mir mal bischen aufräumen.

Gruß Jogel