pitti
26. Mai 2026 um 09:21
1
Hallo zusammen,
Weiß jemand wodurch das kommt?
[image]
War vor 9.0 nie ein Problem.
In der Create vom Modul habe ich für die 9 das eingebaut (vorschlag von @paresy )
// Connect to client
if ((float) IPS_GetKernelVersion() < 8.2) {
$this->ConnectParent(self::BLINK_CLIENT_GUID);
}
Ist das noch so?
Ich habe jetzt mal …
public function GetCompatibleParents(): string
{
return '{"type": "connect", "moduleIDs": ["' . self::BLINK_CLIENT_GUID . '"]}';
}
… eingebaut(im zu erzeugendem Modul), wird auch aufgerufen, aber hilft auch nicht
Bin ratrlos
Die Meldung kommt aber vom Konfigurator Element.
Also stimmt dort etwas nicht mit dem create.
pitti
26. Mai 2026 um 11:06
3
Ja, er erstellt auch das Modul bzw. Device, nur wird es dann ohne Verknüpfung zum Parent (Client) angelegt. Was kann ich ändern um es entsprechend zu steuern - habe nichts gefunden.
Wie geschrieben GetCompatibleParents wird dann auch noch aufgerufen, aber das funktioniert irgendwie auch nicht ???
pitti
26. Mai 2026 um 11:21
4
Ha, habe das gar nicht korrekt gelesen:
Inkompatible Instanz???
Guids passen nicht.
Und nochmal, wenn der Konfigurator meckert, dann ist dein create unvollständig/falsch.
Weil die Konsole steuert das verbinden, und nicht der Server.
Das ConnectParent gibt es bei IPSModuleStrict eh nicht.
Und das GetCompatibleParents sagt der Console nur zu was es verbinden soll.
Auf Basis des Konfigurator Elemente in der Form erstellt die Konsole zuerst die Instanz. Dann wird diese Konfiguriert und erst zum Schluss an den Parent gehängt welcher entweder in einer Kette angegeben ist, oder, wenn es keine Kette ist, an den Parent der Instanz welche dieses Konfigurator-Element enthält.
Ist beides nicht gegeben, kommt diese Meldung.
pitti
26. Mai 2026 um 13:45
6
Danke Dir für die ausführliche Erklärung!
Ich habe jetzt auch paar Tests gemacht und folgendes festgestellt:
Es geht um die Blink Library, welche
den Client (I/O)
das Sync Modul (braucht Client als Parent)
das Device Modul (braucht Client als Parent)
das Zubehöt Modul (braucht Client als Parent)
Test :
nur das Device Modul hatte GetCompatibleParents implementiert
führte dazu das es angelegt wurde aber ein inkompatible Gateway zugeordnet ist
alle anderen Modul lassen sich problemlos aus Konsole heraus anlegen
aus dem Konfigurator heraus werden alle Module mit Meldung angelegt
GetCompatibleParents wieder gelöscht
führt zum ordnungsgerechten Anlegen direkt aus der Console heraus
Anlegen aus Konfigurator weiterhin mit Fehlermeldung
Es liegt nicht nur am Konfigurator, aber wie das Zusammenspiel greift ist daraus leider auch nicht ableitbar!
Gruß Heiko
Doch, hier:
Nall-chan:
Auf Basis des Konfigurator Elemente in der Form erstellt die Konsole zuerst die Instanz. Dann wird diese Konfiguriert und erst zum Schluss an den Parent gehängt welcher entweder in einer Kette angegeben ist , oder, wenn es keine Kette ist, an den Parent der Instanz welche dieses Konfigurator-Element enthält.
Aber.. ohne einen Link zum Code, kann man nicht helfen wo es klemmt.
Bei deiner Aufzählung fehlt das Konfigurator Modul. Hängt das auch an dem IO?
pitti
26. Mai 2026 um 14:09
8
Ja, und wird auch ohne Probleme erstellt!
pitti
26. Mai 2026 um 14:54
9
Dank dem handzahmen Drachen @Nall-chan (vielen vielen Dank ) ist jetzt das Problem gelöst!!!
Mein unbewußter Fehler einer leeren Kette:
'create' => [
[
'moduleID' => $device['guid'],
'configuration' => [
'DeviceID' => strval($device['id']),
'NetworkID' => strval($device['network']),
'DeviceType' => $device['type'],
'DeviceModel' => $device['model']
'location' => ($version < 7) ? $location : [],
],
]
RICHTIG:
'create' => [
'moduleID' => $device['guid'],
'configuration' => [
'DeviceID' => strval($device['id']),
'NetworkID' => strval($device['network']),
'DeviceType' => $device['type'],
'DeviceModel' => $device['model']
'location' => ($version < 7) ? $location : [],
]
@Dr.Niels musst also meine Nachricht nicht bearbeiten Trotzdem Danke!
Geile Community
Heiko
1 „Gefällt mir“