Wenn ich nun Client Socket und Serial Port mitgebe:
public function GetCompatibleParents(): string
{
return '{"type": "require", "moduleIDs": ["{3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}", "{6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}"]}';
}
Dann wird ersteres vorgeschlagen und nicht beide. Wenn ich nach Anlegen der Instanz umverknüpfen wollte, dann könnte ich theretisch alle I/O Instanzen auswählen, auch wenn ich diese gar nicht “freigegeben” habe für das Modul. Gibt es neben „require“ weitere Typen?
Aber genau dann wäre hier dort der Ort gewesen um darauf Bezug zu nehmen.
Du hast ja selber das TODO in der Doku gesehen und hier im Forum gibt es auch schon den einen oder anderen Fall, wo das neue Vorgehen der Konsole noch nicht fehlerfrei ist/war.
Von daher ist es ja mit der Testing der 8.2 noch immer ein ‚preview‘.
Glaube zum Release werden die Jungs und Mädels da schon mehr fertig haben.
Für Grundlagen sind die YouTube Videos sehr gut. Glaube das ist besser als es eine Dokumentation sein kann.
Die Objektnummer steht ja im Namen, dieses Objekt hat den SerialPort angelegt.
Ich weiß selber noch nicht wie da das beste Vorgehen ist. Glaube ich würde da auch auf GetCompatibleParents setzen und es nicht weglassen.
Glaube da müssen wir auf @paresy warten. Keine Ahnung was die Konsole machen sollte.
Da ich nach Möglichkeit immer Konfiguratoren zum erstellen von Instanzen anbiete, betrifft mich das aber auch weniger.
Grundsätzlich ja; ich habe mir auch einige angesehen. Da steckt auch viel Arbeit drinnen - ist sicher super gemeint, aber für mein dafürhalten sind die Videos zu lang. Kompakter oder eine ordentliche Doku ist mir lieber. Insbesondere, wenn man schnell etwas nachschauen will - man kann sich nicht immer alles merken, dann spult man sich einen “Wolf”. Nicht, dass das falsch rüber kommt: Symcon ist ein super System, da stehe ich vollkommen hinter.
kurz Frage: Hast du wirklich die neuste Version installiert? Im letzten Update hatten wir leider noch einen Fehler korrigiert der genau diese Liste falsch ausgewertet/angezeigt hat.
Denn genau das sollte passieren → Es sollten beide Modul zur Auswahl stehen.
Die Doku für das Thema kommt noch. Es war in den letzten Woche doch noch etwas mehr Bewegung drin als wir erwartet hatten
ich habe in Debian die stable installiert und das ist die 8.1 mit Revision “f05de273b4f1”. Ich kann das nochmals bei der 8.2 Test-Version probieren, wenn es Sinn macht.
Bzgl. Doku kein Stress. Manchmal ist es das Eifer des Gefechts beim Programmieren. Das Symcon-Team, insbesondere der Chef, muss auch über die Tage zur Ruhe kommen dürfen
Ergänzung: mit der testing Version werden genau die beiden UIDs angeboeten. Wie es sein soll. War davon ausgegangen, dass das schon länger gegolten hatte. Daher Entwarnung. Die anderen Mechanismen werde ich auch nochmals dahingehend testen. Wie ist die 8.2 eigentlich 8.2? Das wäre doch schon bald 9.0 Wert gewesen, oder?
Es führt in der 8.1 zumindestens nicht zu einem Fehler. Nur der Auswahldialog wird erst ab 8.2 angeboten. In der 8.1 wird die erste GUID für die Instanzverbindung genutzt, die GetCompatibleParents hinterlegt ist.
Ich bearbeite gerade das Modul „SMAHomeManager“ um es auf den aktuellen Stand zu bringen.
Die Geräteinstanz benötigt einen Multicast Socket als Parent. Sollte ich dann in der module.json die I/O Schnittstellen ID {C8792760-65CF-4C53-B5C7-A30FCC84FEFE} oder direkt die Multicast Socket ID {BAB408E0-0A0F-48C3-B14E-9FB2FA81F66A} eintragen?
Ich habe es so verstanden, dass ich als parentRequirements direkt die Multicast Socket ID eintragen können sollte und ansonsten nichts weiter vorgeben müsste. Aber das funktioniert bei mir nicht.
Genau so sollte es funktionieren mit GetCompatibleParents. Es gab aber einen Bug zum Jahresende, dass es nicht funktioniert hatte. Bist du auf der aktuellsten Version unterwegs?
In der module.json bleibt weiterhin der bekannte Datenfluss.
Und beim Konfigurator wird es ganz wild. Da habe ich GetCompatibleParents extra weg gelassen…
Da wird immer ein Splitter erzeugt und das wechseln in der Konsole auf einen vorhandenen anderen Splitter geht nicht, obwohl es zwei zur Auswahl gibt.
Die „ausführliche“ Erklärung zu require: Er bietet zum Verbinden nur den eigenen (natürlich nur bei existierenden Instanzen im Ändern Dialog) und Instanzen ohne Verbindungen an. Hängt also an einem I/O nichts, wird er bei require angeboten.
Wenn du GetCompatibleParents weg lässt, wird bei einem Konfigurator standardmäßig require angenommen, damit werden deine exstierenden Splitter nicht angeboten.
Ah, verstehe. Das Thema „ohne Verbindungen“ solltet ihr bei einem Konfigurator eventuell lassen? Sonst kann man, nach dem löschen eines Konfigurators, einen neu angelegten nie mehr an einen vorhandenen Splitter, welche schon Geräte Verbindungen hat, andocken.
inital erlaubt eine Konfiguration zu setzen, die nur initial gesetzt sein soll, aber trotzdem editierbar ist. z.B. ganz oft der „Open“/„Active“ Parameter vom I/O, soll True statt False sein.
formOverride erlaubt es die Form vom Parent zu modifizieren. z.B. im Serial Port nur bestimmte Baudraten zulassen, oder beim Client Socket SSL ausblenden, wenn dies keinen Sinn macht (statt nur per Option zu blockieren)
paresy
PS: Beides ist noch WIP und nicht in der 8.2 drin!
Eine ähnliche Situation („Konfigurator lässt sich nicht mit bestehendem Splitter verbinden“) hatte ich auch die letzten Tage.
Das liegt wohl wohl daran, dass der Splitter bereits Verbindungen hat. Mir hat geholfen, die bestehenden Verbindungen temporär zu löschen.
Dann klappte die Auswahl beim Konfigurator wieder.
Ist es bei dir auch so?