ich baue gerade das Tibber_Realtime Modul um. Dazu möchte ich GetConfigurationForParent() nutzen, sobald ich aber die IO Instanz öffne, erscheint folgende Meldung
Die Konfiguration muss aufgrund eines untergeordneten Knotens aktualisiert werden. Dies kann durch einen Klick auf "Änderungen übernehmen" getan werden.
Die Funktion sieht so aus:
public function GetConfigurationForParent()
{
$Config = [
"Active" => $this->ReadPropertyBoolean("Active"),
"URL" => $this->ReadPropertyString("Api_RT"),
"VerifyCertificate" => true,
"Headers" => "[{\"Name\":\"Sec-WebSocket-Protocol\",\"Value\":\"graphql-transport-ws\"},{\"Name\":\"user-agent\",\"Value\":\"symcon\/6.4 com.tibber\/1.8.3\"}]"
];
$this->SendDebug(__FUNCTION__, 'Create the Configuration '.json_encode($Config), 0);
return json_encode($Config);
}
Ich hätte erwartet das nur das IO Fenster erscheint
Kann man das ändern? Wie? Ziel soll sein, das die IO Instamz vom User nicht mehr angefasst wird, das soll rein über die Instanz gehen. Es funktioniert auch soweit, aber die Meldung finde ich suboptimal
Du willst dann direkt IPS_SetProperty und IPS_ApplyChanges nutzen. Ich weiß, dies ist laut Store Richtlinie nicht erlaubt, aber in diesem Kontext vermutlich nicht vermeidbar, da du die Änderungen ja direkt übertragen willst.
Wobei ich bei Active und URL rundsätzlich Versuche in dem eigenen Modul zu vermeiden und aus dem IO nutze.
Dann kann man die restlichen ‚statischen‘ Parameter wie SSL oder Header auch per SetProperty setzen.
Michael
HI kris,
die Lösung ist spannend, es geht nicht direkt im Modul …
Bei mir reicht es innerhalb des Modul mit IPS_SetConfiguration() zu arbeiten.
Jedoch sobald ich die Funktion GetConfigurationForParent im Modul definiere geht auch das nicht.
So ganz habe ich es noch nicht verstanden, aber es funzt.
Der ganze Aufbau funktioniert so auch nicht und ist so eigentlich auch nicht gedacht.
Korrektes Vorgehen ware:
Es gibt eine Konfigurator Instanz wo der User sich an der API anmeldet.
Dieser listet dann die Geräte auf und erstellt die ganze Kette von deiner Geräte Instanz, MQTT Client und Client Socket. Hier kannst du auch auf die ganze Konfiguration der Instanzen Einfluss nehmen.
Michael
ich verstehe was du schreibst, aber wie ich sowas in diesem Fall in IP-Symcon angehe ist mir noch nicht klar.
Vorhaben: Integration EcoFlow Balkonkraftwerk.
Steps: in Symcon umzusetzen
Eintragen der Anlagen Daten in ein Formular
Auslesen von Konfigurationsdaten für eine MQTT Client über HTTP
Konfiguration des MQTT Clients.
Resultat: der Client stellt die relevanten Daten bereit
Mein Gedanke dazu (offenbar nicht ganz richtig):
Nutzung / Aufbau eines Moduls => Formular für die Anlagendaten
Dann Konfiguration des Clients etc. über das Modul.
Dazu benötige ich den MQTT Client Splitter und MQTT Client Socket
Also Konfiguration des Splitter als Parent in einem Modul.
Der Splitter sendet die Daten an mein Modul und dann werden nur die notwendigen Daten in Variablen geschrieben.