Modul wird nicht in den Objektbaum eingebunden

Servus,

ich bin gerade dabei mein erstes eigenes Modul zu schreiben
GitHub - Nisbo/ReadFhemDB: Dont install, its only for testing

Ich habe das Modul hinzugefügt, dann wollte ich eine Instanz mit dem Modul erstellen aber
das Modul wird nicht in den Objektbaum eingebunden, bzw es wird erstellt und sofort wieder gelöscht.

Kann jemand mal bitte über den Code gucken ?

Die GUID hast Du generiert oder ist die von einem anderen Modul was Du als Vorlage genommen hast? Kannst ja mal die versuchen erst mal die Funktion mit SQL noch rauszunehmen und erst mal schauen ob die Instanz angelegt wird und das Form angezeigt. Und Dir mit der Funktion einfach ein Echo fürs erste ausgeben lassen.

Bei dem SQL meckert er zumindest bei mir

Da scheint wohl noch mehr notwendig zu sein ohne das ich jetzt aber auf Anhieb wüste was da alles zu ändern ist.

Normalerweise gibt es noch eine Fehlermeldung was schief gelaufen ist. Ggf. kannst du mal ins Meldungsfenster schauen.

Auf den ersten Blick sieht es aber voll ok aus (außer der Formatierung :rolleyes:)

paresy

EDIT: Du hast in der ersten Zeile eine Leerzeile. Dadurch hast du eine leere Ausgabe, die als Fehler gewertet wird.

Nimm mal überall (form.json, module.json, module.php) jeweils die erste Leerzeile raus dann funktioniert es auch, gerade ausprobiert.


2.png

Garstiges git, jetzt funktioniert es, vielen Dank :slight_smile:

GUID hatte ich mit dem Generator erstellt, auch extra ein library.json erstellt obwohl die laut Manual nicht vorgeschrieben war.

Wegen der Formatierung, ich hoffe Du meinst damit nicht die öffnende { :smiley: :smiley: :smiley:

MeineErsteEigeneFunktion wird natürlich noch umbenannt und warum fangen die Demo Funktionen hier bei IPS mit großen Buchstaben an ?

Wie die Anfangen ist ja erstmal grundsätzlich egal, Hauptsache Du hast ein Vorgehen so das Du Dir merken kannst wie die Funktion heißt und geschrieben wird.

Das ist das erste mal das nicht auf die „Standardisierung“ gepocht wird und dabei habe ich mir das endlich angewöhnt ^^
Wollte halt nur wissen ob das systembedingt so vorgeschrieben ist.

Ist ja vorbildlich wenn Du Dir das angewöhnt hast, dann macht man selber weniger Fehler. Drauf pochen wird wohl niemand, schließlich machst Du das in deiner Freizeit und bist so nett, das dann auch noch anderen zur Verfügung zu stellen. Damit das aber nicht völlig im Wildwuchs endet, gibt es zumindest ein Best Practice zur PHP-Modul Erstellung, das sollte man schon versuchen zu berücksichtigen bzw. hier etwas dazu kommentieren oder zur Diskussion stellen.

Das möchte ich ungerne so stehen lassen. Diese ist sehr wichtig!

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

Die „library.json“ ist das Kernstück einer jeden Modulentwicklung.

Grüße
Pio

Danke, so macht es mehr Sinn :slight_smile:

Ich hatte meine Infos von hier bezogen
Module — IP-Symcon :: Automatisierungssoftware

Hi,

ich bin gerade dabei meinen Spaghetti-Code, welcher in FHEM eingebundene Devices in Symcon einbindet,
umzustellen auf Module. Der alter Code ist nicht mehr handhabbar.

Bei meinem ersten Modul bin ich auf den gleichen Fehler gestoßen. In der module.php hat eine schliessende Klammer
gefehlt. Ergebnis:

Device hinzufügen. Im Meldungsfenster erscheint eine Meldung, dass hinzugefügt wird. Danach kommt eine leere Messagebox hoch. Im Meldungsfenster ist ein Eintrag vorhanden… aber leer. Danach kommt die Meldung, dass das Device gelöscht wurde.

Sorry, aber eine Fehlermeldung ala „Syntaxfehler in modules.php“ sollte doch bitte auftauchen. Bitte per Update fixen, so dass man wenigstens eine Fehlermeldung bekommt.

Viele Grüße
Predi

P.S. Bei meiner Umstellung ist mir wieder mal aufgefallen, dass die Doku des PHP SDKs unterirdisch ist. Wiki gibt es ja auch nicht mehr. Wenn man etwas sucht… Forum und da sucht man sich nen Wolf, wenn es drauf ankommt. Bei einem kostenpflichtigen Produkt erwarte ich mir mehr vom Hersteller.

Ich glaube oft das manchmal der Bezug fehlt sich in einer Einsteiger rein zu versetzten was verständlich ist. Hier ist es aber aus meiner persönlichen Sicht um so wichtiger das man dann in der Dokumentation oben rechts auf Feedback senden! klickt und dort dann genau reinschreibt was fehlt bzw. was komplett unverständlich ist. Ich glaube nur mit Rückmeldung kann der Hersteller dann auch eine gut verständliche brauchbare Dokumentation schreiben, die dann auch auf die Bedürfnisse des Kunden eingeht.

Das hatte ich auch schon angeregt das unabhängig vom Forum zumindest eine Blog Kategorie in der Dokumentation geschaffen wird, in dem der Hersteller jeweils einfache Praxis Beispiele mit Bildern darstellt. Das Forum finde ich extrem wertvoll und ist voll mit nützlichen Informationen, was aber Neueinsteiger anbelangt eine Odyssee, bis man alle praktischen Informationen zusammen hat um an Alltagsbeispielen zu starten.

Ich liebe Kontaktformulare! Von einem Hersteller eines kostenpflichtigen Produkt erwarte ich, dass es eine Support Mail Adresse gibt wohin ich mich bei Problemen wenden kann. Alles, was man bei Symcon findet, sind Kontaktformulare. Da kann man keinen Anhang ranhängen, usw.

Oder gibt es eine offizielle Support Mail Adresse?

Ja, das Forum ist super. Aber das Forum lebt von den Usern. Support ist eigentlich Sache des Herstellers und dazu gehört eine vernünftige Doku.

Im Endeffekt kann man sagen:

  • Doku zum Programmieren… rudimentär
  • Wiki nix
  • Blog nix
  • Only Forum

… das ist weniger als bei FHEM, Openhub, IOBroker… alle kostenlos.

Hier mal ein Beispiel zur Doku.

Lt. Doku kann Symcon ModusTCP. Das, was in der Doku steht, ist falsch. Symcon kann ModbusTCP Master. Symcon kann kein ModbusTCP Slave. Andere Hersteller schreiben klar und deutlich, was unterstützt wird. Symcon nicht. Das kein Slave unterstützt wird, merkt man erst, wenn man Slave implementieren will.

In der Regel denke ich reichen ja Kontaktformulare auch aus, gelesen wird es so oder so. Die Email ist kein Geheimnis die steht auf der Impressums Seite wenn Du etwas per Attachement verschicken willst.

Da bin ich ja völlig bei Dir eine ordentliche und verständliche Dokumentation ist extrem wichtig und das ist die Aufgabe des Herstellers. Aber das die Dokumentation Murks ist kann ich jetzt auch nicht sehen. Es fehlen aus meiner Sicht mehr praktische Beispiele für den Einstieg. Wie gesagt wenn dann muss man denke einfach sagen das etwas komplett unklar ist, dann denke ich wird das auch in der Dokumentation ergänzt werden, aber dazu muss man dann ja auch wissen an welchen Stellen etwas ergänzt werden soll bzw. das konkret äußern.

Was würdest Du Dir da konkret wünschen, Anhand eines simplen Beispiels Stück für Stück durchgeleitet zu werden? Das man deswegen sich auch erst mal mit einer Programmiersprache auseinander setzt wenn man denn ein Modul zusammenstellen will ist ja auch klar, das ist denke nicht Aufgabe eines Softwareherstellers.

Gab ja mal eins, wird nur nicht mehr gepflegt weil das Forum wohl aktueller ist. Keine Ahnung ob das Sinn macht das wieder zu beleben.

Das wäre denke ich mein persönlich größter Wusch, da kann man dann auch mit Bildern konkrete Beispiele erläutern ohne sich durch die Dokumentation von A bis Z durchzulesen, so zu sagen Learning by Doing.

Welchen Vorteil soll ein Blog bringen ?
Ein Blog ist ja auch nur ein „kastriertes“ Forum, da würde es auch reichen man das vB zu aktualisieren oder auf das aktuelle wBB zu wechseln. Oder ist das hier die neuste Version vom vB ? Dann haben sie aber ganz schön nachgelassen.

Die PHP Doku finde ich eigentlich ganz gut, sie ist anders aufgebaut aber wenn man zumindest die richtige Seite gefunden hat passt es schon. Das Finden ist da eher das Problem.

Anfänger geeignete Anleitungen findet man leider nicht wirklich, das Tut zum WebEditor ist vermutlich auch nur für Bestandskunden gedacht um zu zeigen was es gibt. Ich habe bisher mit dem WebEditor noch nichts gebaut und spielerisch über die Konsole raus bekommen wie es geht. (bzw bin ja noch dabei)

Wenn man allerdings den Anfang gefunden hat und weiß wo bzw wo man suchen muss dann geht es schon.
Ich bin von IPS von Tag zu Tag mehr begeistert. Es ist aber trotzdem kein Wundermittel wo man mit einem Klick alles sofort da hat, man muss weiterhin viel selbst machen.

Ein Wiki würde mir aber auch gefallen.

Muss ja nicht ein Blog sein kann ja auch ein Teil der Dokumentation sein. Ich denke da halt an banale Einsteiger Situationen, wenn das Fenster noch auf ist wenn ich das Haus verlasse will ich eine Mitteilung bekommen. Oder wenn ich früh ins Bad gehe möchte ich das automatisch mein Liebingssender auf Sonos abgespielt wird usw. Es geht hier ja nicht gleich um wie Vernetze ich mein Haus komplett, das ist ja auch vollkommen individuell. Aber Anhand von solchen Beispielen mit Bildern, sozusagen ein Tutorial durch das Programm zu führen fände ich als Teil der Dokumention, vor allem für Beginner, schon hilfreich. Abgesehen davon das alles mit Skripten möglich ist, gibt es ja auch zunehmend mehr Module was es vor allem Beginnern erleichtert einen Einstig zu finden. Allein in SymconMisc sind eine Vielzahl von Instanzen vertreten. Hier könnte man doch ohne Probleme mal die Dokumentation so mit Alltagsbeispielen ergänzen die Stück für Stück für einen Beginner nachzuvollziehen sind. Wie richtige ich eine Anwesenheitssimulation ein, wie lasse ich mich benachrichtigten wenn die Waschmaschine fertig ist, solche Dinge die eben einer Beginner beschäftigen gut erläutern und mit Bildern hinterlegt. Das erleichtert dem ein oder anderen den Einstieg und er muss nicht erst im Forum schauen ob es sich da zurechtfindet.

Ja das fehlt mir auch

Im SymconMisc fehlt ganz viel. Mit Symcon 4 wurde ein PHP SDK eingeführt. In dem SymconMisc ist nicht ein SIMPLES Beispiel, aus dem man entnehmen kann, wie man Device, Splitter und I/O im Modul umsetzt. Ich kämpfe mich da durch den IPSymconAIOGateway und IPSymconDenon. Ja, das geht… aber bei großen Modulen ist das zeitaufwändig.

Wo ist ein ganz simples Einsteiger-Tutorial wie man Module entwickelt? Mit Device, Splitter und I/O. Das wäre toll. So etwas kann man eigentlich von einem kommerziellen Anbieter erwarten.

Ich will eine Funktion in einem Modul testen. Wie mache ich das? In der Doku steht nix. Im Best Practices steht auch nichts.
Habs mittlerweile rausgefunden. Hat aber Zeit und Nerven gekostet.

Ich füge eine neue Funktion zu einem Modul hinzu? Wie kann ich die Funktion ohne Restart des Symcon aus dem PHP Editor testen? Keine Ahnung.

Sicherlich ist ein Blog ein kastriertes Forum. Aber warum gibt es kein Wiki mehr gibt, erschließt sich mir nicht! Wenn ich bei FHEM irgendwas neues machen will, schaue ich ins Wiki. In 99% der Fälle finde ich da was und habe zumindest einen Einstieg. Bei Symcon muss immer ins Forum und mich dann durch 1000 Posts kämpfen… in der Hoffnung etwas zu finden.

Wir sind sehr aktiv am Arbeiten an der Doku und verbessern hier stetig Dinge. Grundlegende Beispiele zum Einstieg sind hier sicher eine gute Idee.

Wenn euch Fehler oder unglückliche Formulierungen in der Doku auffallen, dann freuen wir uns sehr über Rückmeldung. Am besten klappt das über den „Feedback senden!“-Button, der in der Doku auf jeder Seite oben rechts zu finden ist.