Austausch von Variablenprofilen per Skript

Hallo,

ich habe mal eine Frage

Kleinere PHP Skripte bekomme ich ja hin, allerdings habe ich bisher nie Befehle der Variablenverwaltung verwendet.
Hintergrund meiner Frage ist, dass ich in einigen (vielen) Variablen beim Erstellen (damals gabs den jetzigen Konfigurator noch nicht) ein Profil „~AlarmControl.KNX“ eingetragen habe, was wohl nun nicht mehr existiert.
Also würde ich gerne per Skript ein neues Benutzter Profil „~Alarm.KNX“ in die Profileinstellungen eintragen (lassen). Oder zumindestens das alte Profil dort löschen damit das default Profil verwendet wird.

Wenn ich es richtig verstanden habe müsste ich eine Liste der Variabeln erstellen die das Profil ~AlarmControl.KNX haben und in ein Array schreiben. Dieses Array wiederum dann zum Schreiben des neuen Profils verwenden. Soweit die Theorie.
Befehle habe ich zwar IPS_GetVariableList gefunden, aber da kann ich keine Bedingung (also alle Variabeln mit dem Profil xyz) setzen.
Schreiben müsste dann mit IPS_SetVariableCustomProfile gehen, allerdings muss ich mir auch noch anschauen wie das mit einem Array funktioniert.

Kann mir jemand weiterhelfen ?
Gruss

Pentti

Liefert dir eine Liste ALLER Variablen. Jetzt schaust du dir JEDE Variable an und deren Profil an (siehe Doku IPS_GetVariable — IP-Symcon :: Automatisierungssoftware )

$ALLE = IPS_GetVariableList();
foreach($ALLE as $eine){
  $variableInfo= IPS_GetVariable($eine);
  if($variableInfo['VariableProfile'] == "~knx...." || 
     $variableInfo['VariableCustomProfile'] == "~knx...."){
    IPS_SetVariableCustomProfile($eine, "~knxNEU");
  }
}
2 „Gefällt mir“

@Penttis hat es geklappt?

Habs eben probiert und es hat geklappt. Vielen Dank :+1: