Dynamische Form (GetConfigurationForm) mit unbekannten Properties

Hi!

Ich stehe mal wieder auf dem Schlauch…

Das „$this->RegisterPropertyBoolean“ für eine CheckBox kann man ja nur im „Create“ eines Modul machen.
Wie kann ich aber bei einer dynamischen Form (function GetConfigurationForm) dann folgendes Szenario umsetzen?
>> Modul-Instanz wird erstellt, User gibt Benutzername und Passwort in der Modul-Instanz ein und klickt auf „Übernehmen“, Geräte werden aus einer Cloud ausgelesen und für jedes Gerät wird eine CheckBox in der Form erzeugt. Soweit klappt es noch.
ABER ich muss für die ganzen Checkboxen ja auch noch ein „$this->RegisterPropertyBoolean“ machen - aber das geht nur im „Create“ und da hat der User noch keine Account-Daten eingegeben und die Geräte sind noch nicht bekannt usw. :confused:

Ich hoffe ihr könnt mir folgen und habt eine Lösung :slight_smile:

Besten Dank im Voraus und Grüße,
Chris

Falscher Ansatz da machst Du nix mit RegisterPropertyBoolean und einzelnen Geräten im Konfigurationsformular.
Du nimmst einen IO, da steht das User und Passwort drinnen. Die Geräte liest dann ein Configurator ein und über die Liste kannst Du die Geräte dann aus dem Konfigurator anlegen.

Der „Configurator“ wird aber nur in der Web-Console unterstützt - verwende ich also nicht :slight_smile:
Denn ich baue Module nur so, dass sie in der Legacy-Console (und dann natürlich auch in der Web-Console) vollständig funktioneren.

Viele Grüße,
Chris

Auch dort geht das.
Nur halt mit Listen.
Michael

Genau. Das ist der perfekte Anwendunngsfall für einen Konfigurator. Der muss sich nix merken, sondern weiß hinterher welche „Geräte“ Instanzen in IPS drin sind.

Ansonsten Listen mit einer String Property.

paresy

@Nall chan >> Stimmt :cool: Bei einer Liste brauch ich ja nur ein RegisterPropertyString für die Liste und kann dann später beliebige Einträge der Liste hinzufügen und später auch wieder auslesen :loveips:

DANKE!

-Chris-

Halt. Das hast du falsch verstanden!
Die Liste sollst du im Configurator nutzen.
Die Liste mit den Geräten als Property in deinen ‚IO‘ zu packen ist ‚Müll‘.
Michael

Wie gesagt, Konfigurator fällt für mich aus, weil nur in der Web-Console benutzbar :wink:
Auch wenn er dafür wirklich genau richtig wäre :slight_smile: Aber dann muss paresy den Konfigurator wohl doch noch in die Legacy-Console einbauen :smiley:

-Chris-

Alter Schwede…
Listen funktionieren auch in der Legacy-Console und auch im Actions-Bereich.
Also kannst du damit eine Konfigurator-Instanz bauen.
Habe ich auch schon fünf mal umgesetzt :banghead: :banghead:

Siehe hier:

und hier (noch ohne Bilder):

und noch zwei nicht öffentliche.
Wobei ich aber gerade alles auf die WebConsole umbaue. Ist cooler :cool:
Michael

Ach das meinst du :smiley: Sag das doch gleich :wink: :stuck_out_tongue: Sagte doch - ich steh auf dem Schlauch :smiley:

Aber ja…wäre wirklich die schönste Lösung. Allerdings brauch ich dann vmtl. noch eine Splitter-Instanz, damit die einzelnen Device-Instanzen sich dann den Token der Cloud-Anmeldung teilen können, oder geht das auch direkt über die Konfigurator-Instanz?! Oder wie kann ich einen String im Buffer zwischen den Device-Instanzen „sharen“?

-Chris-

Du solltest dort mehr andere Module studieren :smiley:

Brauchst du einen IPS-IO (z.B. um eine stehende Verbindung zu nutzen)?
Wenn ja -> Dann bau einen Splitter
Wenn nein -> Dann bau selber einen IO (siehe z.B. bei mir PRTG)

Dessen Aufgabe ist immer gleich; das abholen der Daten, da er ja die Zugangsdaten hat. Bzw auch das Versenden von Daten, wenn man auch steuern kann.
Die empfangenen Daten zerkleinern pro ‚Gerät‘ und versenden dieser einzelnen Pakete mir SendDataToChildren an alle Device-Instanzen.

Device-Instanzen nutzen RecieveFilter um nur ihre eigenen Pakete zu erhalten. Nie selber filtern; das kostet PHP-Slots, da ohne RecieveFilter alle Childs immer alle Daten bekommen.

Der Konfigurator hängt auch an deinem IO oder Splitter. Und kann mit SendDataToParent Daten versenden, ebenso wie die Devices.
Der Parent (Splitter / IO) bau dann in diese Anfrage wieder User / Pass mit ein und liefert das Ergebnis zurück.

Michael

Ich bastel mir immer gern selbst was zusammen - „abschauen“ finde ich „doof“, weil ich meine Module ja auch nicht „normal“ hier im Forum zur Verfügung stelle. Mal davon abgesehen macht mein wirres Hirn eh was es will und kommt mit fremden Code nicht so gut klar :smiley:

Hab auch ewig nichts mit Datenaustausch zwischen Instanzen (außer die einfache Variante mit Device-Instanz und IO-Instanz) gemacht…muss ich mich erst wieder einlesen und dazu fehlt mir eigentlich aktuell auch die Zeit :frowning: Naja, mal sehen.
Danke auf jeden Fall für deinen Schubs vom Schlauch runter! :smiley:

-Chris-