Hauptmenü

Funktion DOIF

Begonnen von StuffBit, 16 März 2016, 05:11:41

Vorheriges Thema - Nächstes Thema

StuffBit

Hallo,

ich habe mir mit dem Onkyo-AV-Reciver-Modul und einem IT CMR-500 eine Funktion gebastelt, welche bei bestimmten Inputs eine Leinwand herunterfährt, bei anderen aber hochfährt (Playstation und TV Leinwand unten, Radio und Bluetooth oben). Das ganze sieht so aus:


([AVR:input] eq "video2" or [AVR:input] eq "video3" or [AVR:input] eq "video6" or [AVR:input] eq "dvd") (set Leinwand.Wz runter) DOELSE (set Leinwand.Wz hoch)


Sicherlich nicht schön aber ein Anfang.

Wie läuft das ganze nun "intern" ab? Prüft die Funktion dauerhaft ob ein Input angewählt ist und steuert es somit immer die Leinwand an, auch wenn diese schon längst unten ist? Das würde die Funklast dann ja unnötig erhöhen. Der Motor in der Leinwand hat eine mechanische Endabschaltung.


Gruß Stuff

Prof. Dr. Peter Henning

Bitte

1. künftig den vollständigen Code posten.
2. erst selbst die Commandref zu DOIF lesen, da stehen die Antworten nämlich drin.

LG

pah

CoolTux

Hallo,

Wie pah schon sagte ist die erste Empfehlung immer die Commandref zu lesen. Gerade für DOIF ist sie super ausführlich mit sehr sehr vielen Fallbeispielen.
Viele jammern rum wieso immer gleich auf das Wiki oder die Commandref verwiesen wird, nun ganz einfach. Die Entwickler und auch Authoren stecken Stunden in die Ausarbeitung des Wikis und der Commandref. Viele Beispiele sind genannt. Gerade aber auch das Einsteiger PDF enthält unzählig viel Wissen zum Thema wie genau DOIF's oder auch Notify's nun angesprochen werden.


So und nun aber mal ganz kurz zu Deinen Fragen.
Dein DOIF wird mit Hilfe von Events getriggert. Bedeutet. Kommt ein Event welches AVR:input beinhaltet wird Dein DOIF getriggert und Deine Bedingungen werden geprüft.

Möchtest Du unnötig Funkverkehr vermeiden empfiehlt es sich innerhalb des Schaltbefehls eine Prüfung ein zu bauen. Dies kann man mit FILTER machen.

set Leinwand.Wz:FILTER=STATE!=runter runter

sofern Dein runter Status im STATE steht.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

StuffBit

Natürlich habe ich die ref gelesen.  Auch dass es Ereignissgesteuert ist habe ich gelesen. Es war mir nur nicht klar ob es dann doch nochmal zyklisch abgefragt oder irgendwie geschaltet wird :/

Das mit dem Code habe ich zu spät gesehen, da war ich schon unterwegs, als dass ich es hätte ändern können.

Oftmals muss man einfach erstmal mit der Logik im System warm werden bis man einen gewissen Durchblick hat  :(

CoolTux

Aber ist das nicht so mit jedem anderen System auch?
Viele Fragen bezüglich der Logik beantwortet das Einsteiger PDF. Und wenn es sich nicht innerhalb der letzten 6 Monate grundlegend geändert hat würde ich sogar meinen Finger dafür hergeben. Ich habe es nämlich 7 mal gelesen bevor ich auch nur mein erstes Gerät in FHEM eingebunden habe. Im übrigen genau aus dem von Dir gerade genannten Grund.

Weil ich mit dem System und der Logik dahinter mich vertraut machen wollte/musste. Ist ja nicht bös gemeint. Aber viele Einsteiger fragen immer ein und das selbe obwohl es halt nach zu lesen ist.


Ich wünsche Dir jetzt aber erstmal viel Spaß mit FHEM




Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

StuffBit

Wie gesagt ich verstehe es ja und würde sicherlich kein Stück anders reagieren  ;D. Auch den Seitenhieb im anderen Threat habe ich durchaus gelesen  ;)

Aber es ist ja auch nicht so,dass ich mich hier hinsetzen und sage ich habe dieses und jenes wie kann ich denn damit was machen. Nur wie soll ich denn dann besser vorgehen,wenn ich eine Verständnisfrage habe?

CoolTux

Genau so wie ich es geschrieben habe. Die meisten Helfenden merken schnell ob sich jemand mit dem Thema schon auseinander gesetzt hat oder eben nicht. Ob er die vorhandenen Dokumentationen gelesen hat und es nur nicht verstanden hat. Vieles erschließt sich dem Geiste erst durch mehrmaliges lesen. Gerade wenn man an fängt und keine Erfahrung in dem entsprechenden Bereich hat. Aber Du kannst auch sehr viel lernen durch mitlesen im Forum. Wenn Zeit da ist dann lese einfach mal was so gefragt wird und wie die Antworten lauten. Lese einfach quer/mit in einem Forumsbereich der Dich interessiert, wo Du Hardware von hast zum Beispiel.
FHEM ist keine Eintagsfliege, Du solltest es als Hobby an sehen und auch genau so da ran gehen. Anders geht es nicht. Ansonsten wird es Dir keinen Spaß machen.

Ich empfehle Anfänger, Automatisierung und ein Hardwarebereich.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

StuffBit

Hm. Ok hast recht. Nächstes mal mache ich es besser! :)

Schließe das dann hier :)