Neues Modul erstellen

Hallo zusammen
IP Symcon setze ich seit fast einem Jahr in Verbindung mit Homatic, Logitech Harmonie und Fritzbox ein.
Auf der Suche nach einem Multiroom System bin ich hier im Forum auf den Verstärker von Arylic gestoßen. Das bedienen funktioniert recht gut über einzelne Skripte ( 1 Zeiler).
Jetzt wollte ich mich auch mal an ein Modul trauen. Dazu habe ich mir das Grundlagen Webinar angesehen. Auf dessen Grundlage habe ich einen Ordner Arylic angelegt. Visuell Studio Code habe ich dann eine library.json mit den Vorlagen aus der Hilfe und ein frisch erzeugten ID befüllt. Das gleich habe ich mit der MODULE.JSON und der MODULE.PHP gemacht . Die erzeugte ID natürlich nur in der MODULE.JSON. Damit ich eine Varieble sehen kann habe ich eine Boolean Variable registiert für Mute Funktion. Anschließend führe ich ein MC_ReloadModule aus. Das funktioniert alles fehlerfrei.

Das Module taucht nicht in der Modulliste auf, wenn ich eine Instanz einfügen möchte.
In der Kernel Liste unter unter Module wird es angezeigt.
Hier meine Dateien:

****library.json
{
„id“: „{DF9D5B83-B582-BDD3-11BA-2E09EB04C0ED}“,
„author“: „Horst Thierhoff“,
„name“: „Arylic“,
„url“: „https://www.symcon.de“,
„compatibility“: {
„version“: „4.2“,
„date“: 1491343200
},
„version“: „1.0“,
„build“: 0,
„date“: 0
}

****MODULE.JSON
{
„id“: „{1B01DCCB-0EDF-00E9-D4D7-04D297A1D9F8}“,
„name“: „Arylic“,
„type“: 4,
„vendor“: „Arylic“,
„aliases“:
[
„Arylic A50“
],
„url“: „https://www.symcon.de“,
„parentRequirements“: ,
„childRequirements“: ,
„implemented“: ,
„prefix“: „AV“
}

**** MODULE.PHP

<?php // Klassendefinition class Arylic extends IPSModule { // Überschreibt die interne IPS_Create($id) Funktion public function Create() { // Diese Zeile nicht löschen. parent::Create(); $this-RegisterVariableBoolean("MuteStatus","MuteStatus") } // Überschreibt die intere IPS_ApplyChanges($id) Funktion public function ApplyChanges() { // Diese Zeile nicht löschen parent::ApplyChanges(); } /** * Die folgenden Funktionen stehen automatisch zur Verfügung, wenn das Modul über die "Module Control" eingefügt wurden. * Die Funktionen werden, mit dem selbst eingerichteten Prefix, in PHP und JSON-RPC wiefolgt zur Verfügung gestellt: * * ABC_MeineErsteEigeneFunktion($id); * */ public function MeineErsteEigeneFunktion() { // Selbsterstellter Code } } *****wenn ich auf die Eigenschaften des Modules im Objektbaum gehe, bekomme ich folgende Meldung: Kann Zweigliste nicht laden Error: could not find repository from 'C:\ProgramData\Symcon\modules\Arylic' (Code: -32603) wo ist der Fehler???

Dazu habe ich keine Idee. Stelle aber anders die Frage, könnte dir mein Heos Modul helfen, ‚nur noch‘ die Paramter anzupassen? Die eigentliche Programmlogik, Variablen, etc. wird ja sehr ähnlich sein.

Du hast einen Konfigurator erstellt:

Type des Moduls (0: Kern, 1: I/O, 2: Splitter, 3: Gerät, 4: Konfigurator, 5: Discovery)

Entweder Gerät oder Splitter/Gerät.

Uli

Hab ich geändert, war es leider nicht.

Lass mal das date weg!

Uli

Einfach ignorieren.
Du bist bestimmt im Modul Control und nicht im Objektbaum,wenn diese Meldung kommt.
Die Ursache ist, dass du lokal ein Modul erstellt hast, zu dem es kein git Repository gibt.
Außerdem empfehle ich für den Einstieg immer den Modul Generator auf der Symcon Website zu benutzen.
Michael

Den Modulgenerator habe ich inzwischen auch schon benutzt. Dabei steht das Datum dann auf 0.
Wenn ich das Modul beim Einfügen einer Instanz wenigsten sehen könnte, hätte ich gar nicht in Eigenschaften geschaut.

Date ist ein Pflichtfeld, aber der Inhalt ist egal, solange es eine Zahl ist.
Leider kann man den Code aus dem ersten Post nicht benutzen, da du es als normalen Text und nicht mit dem Code Block eingefügt hast. Somit werden z.b. die „doppelten Hochkomma“ falsch dargestellt.

"Hier sind die dann korrekt "

Das Modul welches der Generator rauswirft wird auf jeden Fall funktionieren. Wichtig ist entweder Symcon neu starten nach dem kopieren in den Moduls Ordner, oder ein MC_ReloadModule(ID Modul-Control,Name vom Modul-Verzeichnis);
Michael

Bin halt ganz neu. Habe jetzt noch mal alles neu gemacht. Ordner erstellt, Module Generator benutzt, wie im Webinar Module.json und Module.php mit Visual Studio Code erstellt. In der Module PHP führe ich noch keinerlei Codes aus. IP-Symcon Dienst neu gestartet. Wenn ich das richtig verstanden habe, müsste ich jetzt das Modul sehen, wenn ich eine Instanz einfügen möchte.

**Libranry.json**
{
    "id": "{1600052B-778F-5ACB-2CF4-0FEF78F3A0EF}",
    "name": "Arylic",
    "author": "Horst Thierhoff",
    "url": "",
    "compatibility": {
        "version": "5.5"
    },
    "version": "1.0",
    "build": 0,
    "date": 0
}

**Module.json**
{
    "id": "{F6B9A7C3-CA7F-A8BA-0E97-7E045FB05396}",
    "name": "Arylic",
    "type": 3,
    "vendor": "Arylic",
    "aliases":
    [
       
        "Arylic A50"
    ],
    "url": "https://www.symcon.de",
    "parentRequirements": [],
    "childRequirements": [],
    "implemented": [],
    "prefix": "AV"
}Module
**Module.php**
<?php
    // Klassendefinition
    class Arylic extends IPSModule {
 
        // Überschreibt die interne IPS_Create($id) Funktion
        public function Create() {
            // Diese Zeile nicht löschen.
            parent::Create();
 
        }
 
        // Überschreibt die intere IPS_ApplyChanges($id) Funktion
        public function ApplyChanges() {
            // Diese Zeile nicht löschen
            parent::ApplyChanges();
        }
 
        /**
        * Die folgenden Funktionen stehen automatisch zur Verfügung, wenn das Modul über die "Module Control" eingefügt wurden.
        * Die Funktionen werden, mit dem selbst eingerichteten Prefix, in PHP und JSON-RPC wiefolgt zur Verfügung gestellt:
        *
        * ABC_MeineErsteEigeneFunktion($id);
        *
        */
        public function MeineErsteEigeneFunktion() {
            // Selbsterstellter Code
        }
    }

Hoffe diesmal alles richtig gemacht zu haben. Im Grunde sind nur die Dateien aus dem Modulgenerator und die Module Dateien mit den Inhalten der Vorlagen aus der Hilfe drin.
Anschließend habeich neu ID’s generiert und Namen geändert. Spielt vielleicht eine Rolle das IP-Symcon auf einem Windows 2012 Server läuft?

:+1:

Wie? Warum? Der Generator erstellt diese Dateien doch für dich.

Auch das macht der Modul Generator für dich. Sofern du die GUIDs meinst.

Wenn Symcon darauf läuft. Nein.
Schau doch einmal in das Logfile von Symcon. Wenn das Modul gar nicht geladen wird, sollten dort Hinweise darauf zu finden sein. Und auch wenn es geladen wird.
Ich schätze Mal die Verzeichnisstruktur passt nicht.
Aber auch die baut der Modul Generator korrekt auf.

Michael

Wollte nur mitteilen das ich den Fehler selbst gefunden habe. Beim ansehen von weiteren Webinaren ist mir alles klar geworden. Habe gesehen das ich die Datei des Module Generator falsch benutzt habe.
Vielen Dank nochmal für Eure Hilfe, ich muss halt noch viel lernen.