Modulentwicklung Anfängerfrust

Ich versuche mich grade an meinem ersten Modul aber ich komme schon recht schnell an die Grenzen. Ich habe mir das Webinar Modulerstellung für Einsteiger angeschaut und versuche nun das Ganze mal nach zu bauen aber ich kann keine Instanz meines Modules anlegen. Es wird schlicht und ergreifend nicht in der Liste der Geräte nicht angezeigt. Unter Modules ist es gelistet. Ich hab jetzt schon ein dutzend mal die Dateien überprüft aber ich kann keinen Fehler finden. Vielleicht hab ich ja nur was übersehen.

Hier mal meine Werte:

  • library.json
{
    "id": "{F1170FBE-BC1C-9BFA-7DDF-184789FCC437}",
    "author": "Michael W. Schneider",
    "name": "EOS ModBus Saunasteuerung",
    "url": "https://www.symcon.de",
    "compatibility": {
        "version": "5.0"
    },
    "version": "1.0",
    "build": 0,
    "date": 0    
}
  • modules.json
{
    "id": "{3620F9D8-1C5F-0B9E-E0A8-CEE9E64BBE6C}",
    "name": "EOSModBus",
    "type": 3,
    "vendor": "EOS",
    "aliases": ["EOS ModBus Steuerung"],
    "url": "https://www.symcon.de",
    "parentRequirements": [],
    "childRequirements": [],
    "implemented": [],
    "prefix": "EOS"
}
  • module.php
<?php
    class EOSModBus extends IPSModule {
        public function Create() {
            parent::Create();
            $this->RegisterVariableString('CurrentVersion', "Current Version");
        }
        public function ApplyChanges() {
            parent::ApplyChanges();
            $this->SetValue("CurrentVersion", IPS_GetKernelVersion);
        }
    }

Poste mal dein logfile.log vom IP-Symcon start. (Starte also Symcon mal neu)

Dort wird es bestimmt einen Fehler geben, was schief läuft.

Die GUIDs sind gleich! Das darf nicht sein! Und die Library JSON sieht so nicht korrekt aus :wink: Schau mal bitte noch einmal genau was da drin sein muss. Und beim $this fehlt auch ein $.

paresy

Sorry mein Fehler, hatte zwei mal die gleiche Datei kopiert, habe es korrigiert! Habe übriges was im Log gefunden, scheinbar muss eine URL angegeben werden ohne gibt es eine Fehlermeldung im Log. Das habe ich korrigiert und jetzt steht nur die Meldung „Lade EOS ModBus Saunasteuerung Bibliothek…“ Das Gerät finde ich trotzdem nicht. Das fehlende $ ist jetzt drin.

Hier das Log File: logfile.zip (17,6 KB)

Kommt auch keine Erfolgsmeldung im Log.
Liegen die Dateien alle im korrekten Ordner und Unterordner?
Ich empfehle als Basis gerne den Modul-Generator aus der Doku:
https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/tools/module-generator/
Michael

Ah cool. Schaue ich mir später gerne mal an. Muss denn pro Gerät ein Unterordner vorhanden sein? Aber das hatte ich auch schon probiert ohne Erfolg.

Ja und das hier beachten:

  • Der Modulordnername (hier: Modul1, Modul2) sollte den gleichen Namen haben, wie der Klassenname in der module.php.

Quelle:
https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/struktur/

Somit die Dateien vom Modul in den Ordner ‚EOSModBus‘.
Michael

Das war der entscheidende Hinweis, das hatte ich wohl überlesen. Jetzt klappt es und es kann weiter gehen. Vielen Dank!