Hauptmenü

Frage zu StateFn

Begonnen von ext23, 20 Februar 2016, 18:45:33

Vorheriges Thema - Nächstes Thema

ext23

Nabend,

ich habe mal eine Frage zu StateFn finde aber keine richtigen Antworten. Ich kommt mit einem selbstgebautem Modul nicht weiter. Ich habe ein Stück Hardware in dem nach einem FHEM Neustart Befehle erneut gesendet werden müssen da im Zuge des Neustartes das Stück Hardware einen Reset mitbekommt und daher seine Daten verliert.

Wie ich verstanden habe benutzt man dafür die StateFn Funktion. Diese wird bei mir beim FHEM Start jedoch 6 mal aufgerufen. Ich möchte eigentlich nur Werte von Readings erneut über die set Funktion an die Hardware schicken. Wenn ich das jetzt in der StateFn mache, verstehe ich immer noch nicht warum die Funktion 6  mal aufgerufen wird.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

marvin78

Meiner Ansicht nach, ist das hier im Anfängerforum nicht richtig aufgehoben. Anfänger bauen keine eigenen Module.

Ich würde für sowas X_Notify verwenden und dann auf global:INITIALIZED prüfen um die Funktionen auszuführen.

ext23

Zitat von: marvin78 am 20 Februar 2016, 19:05:02
Anfänger bauen keine eigenen Module.
Watt?!? Aha, ok. Da scheinen die Meister noch im Himmel zu fallen, was? ;-)

Aber über ein Notify zu gehen wäre auch eine Idee, stimmt. Aber gut ich will das sauber im Modul haben.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

marvin78

Ich habe nicht über ein Notify gesprochen, sondern über die die X_Notify Funktion in deinem Modul (siehe Wikiartikel zur Modulentwicklung). Schaue dir einfach den erwähnten Artikel und andere Module an. Es gibt auch ein Beispielmodul.

Die Wahrscheinlichkeit für qualifizierte Antworten zur Modulentwicklung ist im Anfängerforum gering. Das kannst du glauben, oder es lassen. Ich bin zufällig über den Thread gestolpert. In meiner Aussage fehlt natürlich das "in der Regel". Aber du wusstest ja, was ich meine.

ext23

Mhh dann schau ich mal. Schade, dass die Doku da so dürftig ist und Sachen fehlen, macht alles natürlich nicht einfacher.

Sprich ich schaue bei meinem Device-Modul ob dieses den state Initialized hat und reagiere darauf, wenn ich es irgendwie hin bekomme oO Aber das klingt nach einer sauberen Lösung.

Auf global:Initialized zu matchen wäre dann vermutlich keine gute Idee in meinem Fall.

Btw. wo soll ich sowas hier am besten posten? In den Entwicklerthreads habe ich glaube keine Beitrags Erstellungsrechte. Wobei ich das frickeln eines eigenen Modules jetzt auch nicht unbedingt als developement bezeichnen würde, maximal als Training on the job ;-)

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

marvin78

Zitat von: ext23 am 20 Februar 2016, 20:51:21
Mhh dann schau ich mal. Schade, dass die Doku da so dürftig ist und Sachen fehlen, macht alles natürlich nicht einfacher.


Da es sehr viele (teilweise sogar kommentierte) Module im FHEM Ordner gibt, die man als Beispiel heran ziehen kann, reicht die allgemeine Doku wohl. So habe ich auch sehr viel gelernt. So wie ich das jetzt verstehe, baust du ein 2 stufiges Modul mit IODev? Auch dazu gibt es eine Doku im Wiki.

ext23

Ja genau, zweistufig und IODev. Naja ich hab auch nur Module als Vorlage genommen, aber ist eben blöd ich mach ungern Sachen die ich nicht richtig verstehe. Copy und paste und hoffen das alles geht ist ja eine Sache aber verstehen die andere. Muss ich noch mal schauen was in den letzten 2 Jahren so dazugekommen ist an Modulen. Damals wo ich angefangen hatte mit meinem Modul waren die Kommentare eher dürftig. Und Kommentare zu einer if Anweisung etc. waren nicht das was ich brauchte ;-) Aber ich bin selber auch zu Faul zum Kommentieren, von daher alles Gut.

Ich hab es nur etwas einfacher mit meinen Modulen da mein Gerät von sich aus nicht spricht. Im Prinzip geht alles, sind eben nur die Feinheiten die ich nach und nach wenn Zeit ist noch versuche zu korrigieren.
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)