Fehlermeldung in 9.0 für ConnectParent

Hallo zusammen,

Weiß jemand wodurch das kommt?

Bild[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 :frowning:

Bin ratrlos :frowning:

Die Meldung kommt aber vom Konfigurator Element.
Also stimmt dort etwas nicht mit dem create.

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 ???

Ha, habe das gar nicht korrekt gelesen:

image

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.

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 :slight_smile:

  • aus dem Konfigurator heraus werden alle Module mit Meldung angelegt :frowning:

  • 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:

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?

Ja, und wird auch ohne Probleme erstellt!

Dank dem handzahmen Drachen @Nall-chan (vielen vielen Dank :loveips:) 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 :smiley: Trotzdem Danke!

Geile Community
Heiko

1 „Gefällt mir“