"Maschinelles" erstellen von Geräten für den Assistent?

Hi,

könntet Ihr Methoden anbieten um per Script Geräte zum Assistent hinzuzufügen? Das würde mir meine Arbeit ENORM erleichtern. Die sind ja Intern bestimmt vorhanden müssen nur freigegeben werden.

IPS Standardfunktionen zum Konfigurieren von Instanzen sind IPS_SetProperty und IPS_ApplyChanges.
Mit IPS_GetProperty oder IPS_GetConfiguration kannst du die Konfig und die Namen der Konfig-Felder auslesen.
Michael

ja, aber schön ist anders… man muss schon so einiges „erraten“ und hoffen das man die unbekannten Regeln einhält

Aktuell ist der vorgeschlagene Weg über SetProperty meiner Meinung nach die beste Option. Wenn du etwas in die Listen einträgst und dann per IPS_GetProperty oder IPS_GetConfiguration reinschaust, dann verstehst du sicherlich die Angaben auch schnell. Die „unbekannten“ Regeln sind soweit in der Dokumentation (Amazon Alexa — IP-Symcon :: Automatisierungssoftware) definiert, also welche Bedingungen beispielsweise eine Variable mitbringen muss um valide zu sein. Falls dir noch etwas fehlt, dann gebe ich die entsprechenden Infos gerne raus.

hast du ein einfaches Beispiel zum kopieren, sonst muss ich die Struktur ganz nachvollziehen… hab es eben kurz Remote angeschaut, selbsterklärend ist es nicht unbedingt.

Klar, beispielsweise gibt echo IPS_GetProperty(28294 /* Alexa */, „DeviceThermostat“); folgendes aus:


[{
	"ID": "7",
	"Name": "Thermo",
	"ThermostatControllerID": 34128
}]

Hier siehst du die ID, den Namen und die ID der dazugehörigen Variablen. Bei anderen Eigenschaften sehen die Listen dann ein bisschen anders aus. Falls du schauen möchtest, wie die Eigenschaften jeweils heißen, mach am besten IPS_GetConfiguration auf die Instanz. Die ID lässt du am besten leer (""), dann füllt das Modul diese nämlich automatisch bei ApplyChanges. Wenn du etwas hinzufügst, dann holst du dir die aktuelle Liste, machst ein json_decode darauf, modifizierst sie entsprechend und schreibst sie dann mit json_encode wieder zurück.

Das ganze ist nicht ganz einfach und erfordert schon ein gewisses Verständnis von PHP und JSON, ist an dieser Stelle ja aber auch der Expertenweg.