JSON Api SysVar Methoden fehlerhaft?

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Antworten
Terry35
Beiträge: 1
Registriert: 08.07.2022, 10:38
System: CCU

JSON Api SysVar Methoden fehlerhaft?

Beitrag von Terry35 » 08.07.2022, 11:03

Hallo Zusammen,

kurz die Infos zu meinem Setup: originale CCU3 (Version 3.65.6), lokaler Server, eigene PHP Software, Zugriff per JSON API (api/homematic.cgi)

Ziel ist es, dass meine Software entscheidet, wie die Belüftungsanlage meines Haus läuft.

Dazu hab ich mir folgende Strategie überlegt:

- Die Software entscheidet zwischen den Modi "on", "off" und "auto"
- Per JSON API (SysVar.createEnum) erstelle ich eine Systemvariable des Typs "LIST" mit den 3 Werten
- Per JSON API (SysVar.setEnum) schreibe ich den passenden Wert in die Variable
- Mein HmIPW-DRS8 schaltet basierend auf dieser Systemvariable 2 Aktoren

Ich erstelle also die Systemvariable, per SysVar.getAll erhalte ich sie auch, aber hier beginnen die Probleme.

Egal wie ich "internal" übergebe, als false, "false", 0, sie wird mir immer als "isInternal:true" zurückgegeben. Folglich sehe ich sie nicht in der Liste und kann mit den aktuellen Status im Webfrontend nicht anschauen.

Bei den Tests hab ich natürlich jede Menge Müll produziert, die Api ist so nett und akzeptiert jedes mal den gleichen Namen, hängt dann einfach eine aufsteigende Nummer an, fantastisch.... Also SysVar.deleteSysVarByName, die Variable wird bei getAll nicht mehr aufgelistet, mach ich jedoch SysVar.getValueByName erhalte ich den alten Value und keinen leeren String wie es zu erwarten wäre. Lege ich die Variable neu an, wird der Name weiter hochgezählt, obwohl sie eigentlich nicht mehr existieren dürfte und auch nicht mehr gelistet wird.

Lege ich eine Variable im WebUI an kann ich sie übrigens vollständig darüber löschen, dort scheint es kein Softdelete zu sein.

tl;dr: Wie bekomm ich Systemvariablen per API als Nicht-Internal und wie kann ich sie per API vollständig löschen? Oder ist die grundsätzliche Idee mit der Systemvariable eventuell schon daneben?

Besten dank vorab für jede Hilfe!

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“