Hallo,
es ist bestimmt eine dumme Frage, aber ich hab’s nicht herausgefunden.
Ich habe Geräte im IPS, die z.B. über HomematicEasyInstall erzeugt wurden. Nun habe ich denen natürlich passende Namen gegeben (zB. „Schaltsteckdose“ oder „Thermostat“).
Ich wüsste aber gerne in einem Script, welches Stück „Hardware“ („HMiP-PS“, „HM-CC-RT-DN“ etc) oder zumindest welcher Typ von Gerät sich dahinter verbirgt.
Das sind aber eventuell auch nicht HM-Geräte, also entfallen eventuelle Abfragen der CCU (über die die HM-Komponenten angeschlossen sind).
Damit wüsste ich in diesem Script, wie ich ein bestimmtes Gerät ansteuern kann, bei einer Schaltsteckdose gibt’s halt nur ein und aus und bei einem Thermostat kann ich die Temperatur setzen …
Gibt es diese Information irgendwo oder muss ich eine andere Weg wählen?
Mit IPS_GetConfiguration oder IPS_GetObject habe ich keine verwertbare Information gefunden.
Wenn es keine mir unbekannte Möglichkeit gibt, habe ich eine Idee, wie ich das lösen könnte.
ich würde eine Kategorie „Geräte-Typen“ machen mit einer Unter-Kategorie für jeden Typ - so differenziert wie nötig, also z.B. „HM-Schaltsteckdose“, „HM-Thermostat“, „HM-Dimmer“, „HM-Rolladen“.
Und die passenden Geräte-Typen verlinke ich die „echten“ Geräte passen.
Mit der Funktion finde ich den Eintrag dann
function Gerae2Typ($deviceID) {
$typeName = "";
$typV = IPS_GetChildrenIDs(15614 /*[Geräte-Typen]*/);
foreach ($typV as $i => $typ) {
$devV = IPS_GetChildrenIDs($typ);
foreach ($devV as $j => $dev) {
$lnk = IPS_GetLink($dev);
if ($lnk["TargetID"] == $deviceID) {
$typeName = IPS_GetName($typ);
break;
}
if ($typeName != "")
break;
}
}
return($typeName);
}
Wenn mein Baum so aussieht:
Geräte-Typen
- Rolladen
- Thermostat
Link zu Räume\Wohnzimmer\Thermostat
- Schaltsteckdose
Räume
- Wohnzimmer
- Thermostat
liefert ein Aufruf von Geraet2Typ(<ObjectID> /* Räume\Wohnzimmer\Thermostat */) das Ergebnis „Thermostat“.
Aber vielleicht gibt es eine vorhandenen Standard-Funktion, die ich nicht kenne?
Danke