Erstellung eines eigenen Moduls (das erste)

Hallo zusammen,

ich habe aktuell ein hartnäckiges Problem mit einem eigenen Modul, das ich lokal per file:/// auf meiner SymBox (aktuelle Version) registrieren möchte. Trotz korrekter Struktur, eindeutiger UUID, neutralem Klassennamen und richtiger Dateirechte wird das Modul in der Modulverwaltung mit folgendem Fehler abgelehnt:

Error: remote authentication required but no callback set (Code: -32603)
bzw. je nach Variante auch: Modul bereits vorhanden (Code: -32603)

Was bisher geprüft bzw. ausgeschlossen wurde:

  • Verzeichnis liegt unter /var/lib/symcon/modules/ und ist für Symcon sichtbar (mit Script getestet)
  • Dateirechte und Besitzverhältnisse sind korrekt (644 / 755)
  • module.json und module.php mehrfach validiert (kein Syntaxfehler, kein BOM, UTF-8 ohne BOM)
  • Klassennamen und UUID mehrfach getauscht → bringt keine Änderung
  • Store-Module lassen sich problemlos installieren und verwenden
  • Ein GitHub-Repo wurde ebenfalls versucht (öffentlich) → dort erscheint jedoch der Fehler „remote authentication required…“, obwohl keine Authentifizierung nötig sein sollte
  • SymBox wurde mehrfach neu gestartet

Ich habe bereits ein Debug-Script laufen lassen, das zeigt, dass Symcon das Modulverzeichnis vollständig erkennt und alle Dateien korrekt sieht – dennoch verweigert die Modulverwaltung die Einbindung.

Kennt jemand dieses Verhalten oder hat eine Idee, woran es noch liegen könnte?
Gibt es vielleicht systemseitige Einschränkungen für file://-Module in der aktuellen Firmware?

Danke vorab für jeden Hinweis – ich beiße mich seit Tagen daran fest :sweat_smile:

Viele Grüße

Was meinst du damit?
Wenn alle Dateien vorhanden sind, dann Symcon neu starten.
Mehr musst du nicht machen.
Michael

Oder MC_ModuleReload auf mit Befehl testen in Kern-Instanz Modules.

Ralf

Danke für die schnelle Antwort.
Ich hänge momentan an dieser Fehlermeldung:
—Kann kein neues Modul erstellen:
Modul [Name] ist bereits vorhanden (Code: -32603)–
Kommt beim Versuch das Modul hinzuzufügen in der Modulverwaltung. Kam bereits beim ersten Versuch als das Modul definitiv noch nicht vorhanden sein konnte, Ich kann machen was ich will Alles lösche, neu erstellen mit neuen Namen…hilft nichts Immer wieder diese Meldung. Das Modul erscheint in der Verwaltung aber egal welches Menue hierzu ich aufrufe. Es kommen Fehlermeldungen. Beim Zahnrad:
Kann Zweigliste nicht laden—Error: could not find repository at ‚/var/lib/symcon/modules/windMonitorDirect‘ (Code: -32603)
Bei der Info (Ausrufezeichen): Das Modul ist beschädigt oder kein valides IP-Symcon Modul
Beim Papierkorb: Kann Modul nicht entfernen: Modul hat fehlerhafte library.json (Code: -32603)

Alles Hinweise dass ich da etwas prinzipiell falsch angelegt/gemacht habe. Vielleicht hast Du aufgrund Deiner Erfahrung und der Fehlermeldung eine Idee wo es am ehesten hacken könnte…

Direkt im modules Verzeichnis löschen. Wenn das noch nicht reicht dürfte nur ein IPS Neustart helfen.

Ralf

Danke für den Tip, hab ich schon mehrfach probiert und hilft leider auch nicht…immer der gleiche Effekt

Sogar ein Neustart der Symbox zeigt keine Auswirkung

Hi,
der Fehler mit ‚Kann Zweigliste nicht laden‘ kommt wenn das Modul kein Git-Projekt oder die Git-Url nicht erreichbar ist.
Hast du das Modul mit dem Modul-Generator erstellt? Vielleicht wird die Modul-Guid schon irgendwo genutzt?

Meine Frage übersehen?

Kann es sein (Glaskugel an) das du die Daten manuell in den Modul Ordner kopiert hast und dann zusätzlich noch versuchst eine URL für das gleiche Modul im Modul Control einzutragen?
Das kann nicht funktionieren, weil das Modul (die Dateien) ja schon vorhanden sind.
Das Modul Control macht würde ja Dateien per GIT pullen und auch im modules Ordner ablegen.
Somit geht nur entweder oder.
Und das Modul Control kann nur http/s/ URLs.
Michael

Ich glaube so ist es. :wink:
Deine Glaskugel funktioniert.
So hatte ich das auch versucht :slight_smile:

@hw20
Da ich auch gerade durch dieses Tal gegangen bin, hier meine Learnings.

  1. Auf jeden Fall ein git Repository machen.
    Kann ja privat sein.
    In dem Fall einen Classic Token generieren der dann in die URL kommt:
    https://username:token@github

  2. Die library.json hat Pflichtwerte, die ich so nicht erkannt hatte. Also erstmal das Beispiel nehmen.

  3. VSCode installieren und mit github verbinden.
    3a. Das symcon addon installieren.

  4. Wenn die git Struktur korrekt ist, kann man das Modul ganz einfach installieren und nach jedem commit aktualisieren.

1 „Gefällt mir“

Ok super danke euch schon mal für die Hinweise die mich sensibler auf das eigentliche Problem schauen lassen. Ja ich habe alles manuell dort eingestellt. Das wird die Ursache des Problems sein. Probier das gleich heute Abend

Läuft jetzt wie geschmiert, die Library.json aus dem Modulcreator übernommen und geändert und schon hat das gepasst. Ach so und arbeite jetzt über eine Repo in Github, bequemer und passt einfach. Nochmal Dank an alle…

1 „Gefällt mir“

Zum live entwickeln und gleich testen würde ich empfehlen einfach Symcon auf dem Rechner zu installieren, auf welchen ihr auch das Modul erstellt.

Dann braucht man nicht für jeden Tippfehler oder Test einen commit erstellen.
Oder manuell die Dateien zu kopieren.

Auf dem Live System sind bei mir nur fertige Module installiert.

Und ja, die Nutzungsbedingungen lassen das auch zu.
Michael

1 „Gefällt mir“

es gibt doch ein Problem Das Modul, soweit ich es erstellt habe, kann ich fehlerfrei installieren. Der link zum Github funktioniert ebenfalls. Ich kann aber keine Instanz einbinden. Das Modul wird bei der Instanzauswahl erst gar nicht angezeigt…

Kontrolliere das Meldungsfenster bzw Logfile beim laden vom Modul.
Dort sollte es zumindest auftauchen.
Der Modulgenerator erstellt ja auch die restlichen Dateien, eventuell mal mit deinen vergleichen.
Michael
Edit: Ich habe das Thema in die richtige Kategorie verschoben, war mir gestern gar nicht aufgefallen das es falsch war.

So, läuft inzwischen, vielen Dank. Bin der Fertigstellung meines ersten Moduls sehr nahe gekommen. Feine Sache das mit den Modulen. Irgendwie alles sehr übersichtlich, einfach super

1 „Gefällt mir“