Tutorial oder Howto "Erstellen von eigenen Modulen für FHEM"

3,365 views
Skip to first unread message

thoweiss

unread,
Nov 22, 2012, 3:40:59 AM11/22/12
to fhem-...@googlegroups.com
Hallo zusammen, 
vorab - dies ist kein Tutorial oder Howto :-)

Ich habe da nur einen Wunsch...

Ich würde gerne eigene Module für FHEM schreiben, leider bin ich nicht so fit was die Programmierung der FHEM internas angeht.

Ich habe mal in der Maillist gesucht und einen älteren Beitrag von Rudolf gefunden wo die Grundlagen beschrieben wurden.
Ich habe den Text mal in ein PDF umgesetzt und angehangen.

Leider bleiben bei mir noch einige Fragen bezüglich der Zusammenarbeit von den physikalischen und Logischen Modulen bei mir offen.

Wäre es unter Umständen möglich ggf. im Wiki so eine Art Leitfaden zur Programmierung zu erstellen? 
Also wie werden die Daten zwischen den Modulen und FHEM ausgetauscht.

Ich habe mir die vorhandenen Module zwar angeschaut, aber die meisten sind so komplex, dass ich irgendwann den Faden verloren habe..

Ich hoffe mein ansinnen ist nicht zu "extravagant" ich würde nur gerne etwas zu fhem beitragen - ohne immer nur Beiträge ala:
"Ich habe Hardware XY geht das mit FHEM, und wenn nein - schreibt mir jemand ein Modul" einzustellen.

Oder gibt es so etwas schon?

Gruß,
Thorsten





Eigenes FHEM Modul Schreiben.pdf

UliM

unread,
Nov 22, 2012, 3:55:28 AM11/22/12
to fhem-...@googlegroups.com
Hi Thorsten,
- auf http://www.fhemwiki.de/wiki/FHEM findest Du unten rechts den Bereich "Developers corner", da findest Du ein paar Grundlagen
- es gibt ein separates Forum https://groups.google.com/forum/#!forum/fhem-developers , da findest Du sicher auch ne Menge
- den Inhalt des pdf sollte Rudi verifizieren, evtl. können wir's dann mit ins wiki stellen
Willkommen :)
Uli
Message has been deleted

Alexander Petrovic

unread,
Nov 22, 2012, 6:35:48 AM11/22/12
to fhem-...@googlegroups.com
Lehrreich ist es auch bestehende Module anzusehen.


2012/11/22 Prof. Dr. Peter A. Henning <prof.dr.pet...@gmail.com>
Nicht in der Form. Das Problem ist aber ganz klar, dass diejenigen, die dies genau wissen, auch wenig Zeit haben, dieses methodische Vorgehen aufzuschreiben.

LG

pah


--
To unsubscribe from this group, send email to
fhem-users+...@googlegroups.com

Tom

unread,
Nov 22, 2012, 6:40:17 AM11/22/12
to fhem-...@googlegroups.com
vielleicht könnte man den Ansatz trotzdem mal ins WIKI stellen (anstatt PDF), ggf mit der fetten Überschrift "UNVOLLSTÄNDIG ODER GAR GANZ FALSCH" ;-)  ?
Dann könnte zumindest der eine oder andere, der sich an sowas bereits versucht hat, Teile korrigieren/ergänzen...

thoweiss

unread,
Nov 22, 2012, 6:54:07 AM11/22/12
to fhem-...@googlegroups.com
Da gebe ich dir recht, aber ohne die generellen Zusammenhänge tue ich mich damit etwas schwer...

Ich habe mir ja auch bereits diverse Module angesehen und habe auch die meisten Funktionen verstanden. Aber wenn es um die Modulübergreifenden zusammenhänge geht hakt es bei mir aus... Bin halt kein Perl-Profi...

Rudolf Koenig

unread,
Nov 22, 2012, 8:57:05 AM11/22/12
to fhem-...@googlegroups.com
> den Inhalt des pdf sollte Rudi verifizieren, evtl. k�nnen wir's dann mit ins
> wiki stellen

Ergaenzungen:
- Laden (neu in 5.3+SVN):
Wenn ein fhem-Befehl nicht gefunden wird, dann wird nach einem Datei mit dem
gleichen Namen gesucht, und falls gefunden, geladen. Z.Zt. sind die Befehle
JsonList, XmlList, backup und update so implementiert.

- Physische/Logische Geraete
Falls man das Problem so aufteilen kann, dann gibt es damit die Moeglichkeit
Code zu sparen: Das FS20 Modul kann so vom CUL und vom FHZ1x00 verwendet
werden. Analog: CUL_HM mit CUL und HMLAN. Weiteres Pluspunkt: Nur in disem
Fall kann man eine FHEM2FHEM Raw Verbindung verwenden, um entfernte
fhem-Gerate steuern zu koennen.

- Falls man es nicht so aufteilen kann/will: contrib/00_TAHR.pm ist ein
Beispielmodul fuer den "kombinierten" Fall.

- FD:
Man sollte die DevIo Funktionen verwenden, diese erledigen das und viel mehr.

- Falls man in einem Funktion (StateFn/AttrFn/etc) nichts machen will, dann
sollte man es einfach nicht definieren.

Achtung in fhemwiki/DeveloperGuidelines: das meiste hier ist immer noch als
Wunsch bzw. Ziel zu interpretieren, und ist noch nicht konkret umgesetzt.
D.h. es kann sich noch aendern, und man kann sich auf eine fhem-Unterstuetzung
noch nicht verlassen. Aber wir arbeiten dran.

Btw. so eine Diskussion gehoert ins fhem-devel

Joachim

unread,
Nov 22, 2012, 10:55:37 AM11/22/12
to fhem-...@googlegroups.com
Kann jmd gute Module empfehlen? gut=gut programmiert und dokumentiert?
hatte bis jetzt nur Pech und recht minimalistische Module, teilweise sogar ohne KOmmentare gesehen.


Am Donnerstag, 22. November 2012 12:36:10 UTC+1 schrieb drdownload:
Lehrreich ist es auch bestehende Module anzusehen.

Lg
Joachim
 
Message has been deleted

thoweiss

unread,
Nov 22, 2012, 2:36:47 PM11/22/12
to fhem-...@googlegroups.com
Mmmhh dann muss ich mich wohl mal eingehender damit befassen...

Danke für die Ergänzungen, ich kann das ja mal ins Wiki tippern - 


Gruß,
Thorsten

On Thursday, November 22, 2012 2:57:08 PM UTC+1, Rudolf Koenig wrote:
> den Inhalt des pdf sollte Rudi verifizieren, evtl. k�nnen wir's dann mit ins

Joachim

unread,
Nov 23, 2012, 8:34:17 AM11/23/12
to fhem-...@googlegroups.com

Es geht um kein spezielles Gerät.
Welche Module sind von Dir?
Es geht generell darum einen einfacheren Zugang zu FHEM Modulen zu bekommen.
Deswegen wäre ein vollständig kommentiertes Modul incl. der perl statements sehr hilfreich.
Spezielle perl Konstrukte, wie my (lokale Variable), $ (=skalar), @ (=array), % (=hash), @_ (=Subroutine Parameter) sollten auch erklärt sein.
wo ist zB $defs beschrieben?
Und die Verwendung von FHEM Datenstrukturen.

Gruss
Joachim

Am Donnerstag, 22. November 2012 17:59:26 UTC+1 schrieb Prof. Dr. Peter A. Henning:
Na, meine ;-).

Zumindest Kommentare enthalten sie. Um welches Gerät soll es denn gehen ?

LG

pah
Message has been deleted

Joachim

unread,
Nov 23, 2012, 3:30:51 PM11/23/12
to fhem-...@googlegroups.com
Ich dachte Du hast schon Module in diesem Leben geschrieben. Welches vermittelt die beste Lernerfahrung? Kann auch von jmd anderem sein.
Ich könnte ja Erklärungen dazufügen und ins Wiki stellen.
falls ich den Code überhaupt verstehe
LG
Joachim


Am Freitag, 23. November 2012 17:05:48 UTC+1 schrieb Prof. Dr. Peter A. Henning:
Frühestens im nächsten Leben ...

Anbieten kann ich nur ein Lehrbuchkapitel zu perl aus meinm  "Handbuch Programmiersprachen" .

LG

pah
Reply all
Reply to author
Forward
0 new messages