Hallo,
gibt es eigentlich schon eine Doku für Leute, die ihr erstes Modul entwickeln wollen und noch keinen Überblick über den Aufbau eines Moduls und die Zusammenhänge haben? (ich hab zumindest ausser den Richtlinien im Wiki und Beispielmodulen mit wenigen Kommentaren nichts gefunden)
Da ich erst vor wenigen Monaten damit angefangen habe und es mir nicht leicht gefallen ist, habe ich mal angefangen das zusammen zu schreiben was ich glaube verstanden zu haben. Ich bräuchte aber zumindest zum Korrekturlesen die Unterstützung von ein paar erfahreneren Entwicklern ...
Wenn es Euch sinnvoll erscheint würde ich mich über Verbesserungen / Erweiterungen freuen, weiterschreiben und den Text für das Wiki bereitstellen.
Stefan
Gefaellt mir gut.
Bemerkungen:
- Readings werden in der statefile zwischengespeichert, damit man sie nach einem Neustart wieder hat, Internals nicht. Attribute und Definitionen kommen ins fhem.cfg
- $readingFnAttributes beschreibt die Attribute, die beim Setzen der Readings ueber die readings*Update Funktionen verfuegbar werden, ich empfehle Readings nur darueber zu setzen. Dabei kann man jeweils angeben, ob fuer eine Aenderung ein Event generiert werden soll oder nicht. Events erzeugen merkbaren Last auf dem System (siehe NotifyFn), nur Readings aendern nicht.
- $attr{$name}->{'header'} ist zwar korrekt, ueblich ist $attr{$name}{header}. Und man sollte AttrVal verwenden.
- Log3 Parameter ist name oder hash
- updateReading kenne ich nicht
Fehlt noch:
- Am Anfang: Entscheidung ob einstufig (wie LGTV) oder zweistufig (physisch: CUL, logisch:FS20)
- ReadFn (wird vom globalen select aufgerufen, falls Daten zur Verfuegung stehen)
- ParseFn (wird vom Dispatch aufgerufen bei dem zweistufigen Modell, siehe oben)
- ReadyFn (wird unter windows als ReadFn-Erstatz benoetigt bzw. um zu pruefen, ob ein Geraet wieder eingesteckt ist)
- NotifyFn (falls man benachrichtigt werden will)
- RenameFn
- FW_summaryFn (wird von FHEMWEB aufgerufen fuer Raum-Uebersicht)
- FW_detailFn (wird von FHEMWEB aufgerufen fuer Detail-Ansicht)
- Bei der Beschreibung der von SetFn/GetFn zurueckgelieferten Fehlermeldung: Modifier fuer FHEMWEB wie :noArg, :slider, etc.
Vielen Dank für das Feedback.
Ich werde gleich mal einen Account für das Wiki beantragen und die Änderungen und Ergänzungen dann gleich dort einpflegen.
Mit den zweistufigen Modulen habe ich leider noch keine Erfahrung. Ich werde den Teil wohl vorerst auslassen bis ich da tiefer eingestiegen bin.
Gruss
Stefan
Die erste Version - noch mit einigen Lücken - liegt im Wiki zunächst unter http://www.fhemwiki.de/wiki/Benutzer:StefanStrobel/DevelopmentModuleIntro.
Wo wäre denn der richtige Platz und was wäre der richtige Name dafür?
Danke für Deine Arbeit.
[[Kategorie:Development]]
Viele Grüße
Boris
Das Dokument ist inzwischen im richtigen Bereich im Wiki drin und hat auch schon einige Ergänzungen bekommen:
http://www.fhemwiki.de/wiki/DevelopmentModuleIntro
Inzwischen bekomme ich auch vermehrt direkte Nachrichten von anderen Usern, die ebenfalls schon erste Module entwickelt haben, aber noch nicht zur Gruppe Developer gehören.
Teils mit Anregungen oder Ergänzungsvorschlägen zur Doku, teils mit Fragen. Daher stelle ich mir die Frage, wo im Forum denn der richtige Bereich ist, in dem neue Entwickler oder gelegentliche Entwickler sich austauschen können, wenn sie noch keine Schreibrechte hier haben.
Was meint Ihr?
Wo soll ich dazu einen Threat eröffnen?
Gruss / Thanx
Stefan
Idelaerweise sollte man hier ein Thread anlegen, mit Schreibrechten fuer alle.
Wenn das nicht geht: FHEM - Sonstiges