Moin,
ich möchte mit einem Script die Soll-Temperatur aller Homematic Thermostate einer Kategorie setzen. Eigentlich recht einfach, dachte ich. Aber wie erkenne ich, ob es sich bei der Instanz um ein Homematic-Device handelt.
Habe dazu ein Script geschrieben, welches alle Child’s einer Kategorie durchgeht und auf Objekt-Type „Homematic Device“ prüft.
Aber dann kann ich nur prüfen, ob eine best. Variable (hier SET_TEMPERATURE) vorhanden ist. Die ist aber nicht eindeutig, habe CC-RT-DN (SET_TEMPERATURE) und eVTR2 (SET_POINT_TEMPERATURE) im Einsatz.
foreach (IPS_GetChildrenIDs(IPS_GetParent($_IPS['SELF'])) as $child_id) {
if (IPS_GetObject ($child_id)['ObjectType'] == 1){
if (IPS_GetInstance($child_id)['ModuleInfo']['ModuleName']=='HomeMatic Device') {
foreach (IPS_GetChildrenIDs($child_id) as $child_value) {
if (IPS_GetObject ($child_value)['ObjectIdent']=='SET_TEMPERATURE'){
echo "gefunden: $child_value
";
}
}
}
}
}
Geht das nicht etwas eleganter?
Grüße Detlev.