Warum will jeder DOIF verwenden?

Begonnen von Thorsten Pferdekaemper, 10 Februar 2017, 14:37:15

Vorheriges Thema - Nächstes Thema

ralfix

#105
Ist ja schon ein richtiger Glaubenskrieg hier. ::)

Dann oute ich mich mal als DOIF-Skeptiker.

Auf meinem System steht es 43:1 für NOTIFY (ohne Residenten-Makros).
Die meisten sind einfache NOTIFY mit Regexp wizard schnell zusammengeklickt.

Bei komplexeren Sachen kommen auch einige Perl-Zeilen vor, damit ging bisher alles was ich wollte. 
Myutils verwende ich nicht.

Der Grund, warum ich mit mit DOIF bisher nie richtig anfreunden konnte, ist das zwanghafte DOELSE,
was die Logik m.M. nur verkompliziert. Mir sind da 2-3 einfache NOTIFY lieber, als ein komplexes DOIF,
das ich nach einer Woche nicht mehr verstehe.

Pro DOIF spricht aber m.M. die ausführliche einsteigerfreundliche Doku mit vielen Beispielen.

Gruß Ralf

Nachtrag:
Zitat
Was allerdings in der ganzen Diskussion auffällt, ist der ständige Vergleich zwischen notify, at und DOIF, dabei macht der Funktionsumfang eines notifys oder ats vielleicht ein Prozent im DOIF-Sourcecode aus. Die Philosophie der Zustandsverwaltung im DOIF haben die meisten DOIF-Nicht-Nutzer offenbar gar nicht zur Kenntnis genommen.
Das war mir auch nicht bewusst.

automatisierer

Zitat von: Damian am 13 Februar 2017, 21:28:25
Das habe ich bereits vorhin geschrieben. Daher werden hier Äpfel mit Birnen verglichen. Und diejenigen, die das Modul nicht benutzen und das Konzept des Moduls nicht verinnerlicht haben, stellen Annahmen auf, die sie nicht aufstellen würden, wenn sie das Modul benutzen würden.
Ich wollte es in meinem letzten Post nicht schreiben, aber genau den Eindruck habe ich auch. Es wird von Einigen gegen DOIF gewettert, obwohl sie offensichtlich keine Ahnung haben, wie man es einsetzt und welche Möglichkeiten man mit DOIF hat - wenn man es bedienen kann!

Alle in diesem Thread angeführten Gründe, warum DOIF für diese oder jene Anwendung nicht geeignet ist, konnte ich nicht nachvollziehen und führe das darauf zurück, dass diese User sich einfach nicht mit DOIF beschäftigt haben. !ABER! Es verlangt ja keiner das sie sich damit beschäftigen - die Benutzung des Moduls ist freiwillig - allerdings sollte man sich dann mMn auch mit "Vorurteilen" zurück halten.

Benni

Zitat von: automatisierer am 13 Februar 2017, 22:07:47
Es wird von Einigen gegen DOIF gewettert, obwohl sie offensichtlich keine Ahnung haben, wie man es einsetzt und welche Möglichkeiten man mit DOIF hat

Das umgekehrte scheint aber doch genau so der Fall zu sein ;)

Es ging doch hier ursprünglich gar nicht darum, ob eines von beiden besser ist, als das andere und ich weiß auch nicht, warum hier manche unbedingt meinen, ihren Weg als den einzig wahren zu verteidigen. Das erinnert mich an die uralte "Diskussion" Mein Win-Dings ist Besser als Lin-Dingx.

Ich kenne DOIF nicht wirklich und verwende es (bisher) nirgends aber nicht aus persönlicher Abneigung, sondern einfach, weil ich bisher keinen Grund hatte etwas anderes als at, notify, watchdog, ... zu verwenden. Ich konnte mit diesen "simplen" Bausteinen bisher jede Problemstellung lösen. Ok, als ich bei FHEM angefangen habe, gab es noch kein DOIF, deshalb habe ich mich an die Zuvorgenannten gewöhnt und fühle mich damit wohl. Hätte es DOIF bereits gegeben, wäre ich eventuell zuerst darauf gestoßen und würde heute damit arbeiten. Allerdings sagt mir auch die grundsätzliche Einfachheit von at, notify und Konsorten mehr zu. Gertreu dem Motto eine (einfache) Funktionalität je Baustein und die aber richtig. DOIF macht für mich den Eindruck einer eierlegenden Wollmilchsau und von denen bin ich, aufgrund meiner Erfahrungen aus anderen Bereichen (auch in der IT) kein so großer Freund.

Warum es anscheinend für Anfänger einfacher (oder nur beliebter?) ist lässt sich wahrscheinlich auch gar nicht beantworten, auch nicht von den Anfängern. Vielleicht ist es das ja auch gar nicht? Wenn dazu mehr Fragen im Anfängerforum auftauchen als zu den anderen, alternativen Modulen weist das ja vielleicht sogar eher auf das Gegenteil hin?  :o

Ansonsten interpretiere ich es hier frei nach dem Perl-Motto "There's more than one way to do it": Jedem Tierchen sein Plaisierchen :)  ... und das ist gut so!

So das waren meine 2Ct dazu.

Damian

ZitatDas umgekehrte scheint aber doch genau so der Fall zu sein ;)

Allerdings mit einem kleinen, aber feinen Unterschied.

Die meisten Befürworter von DOIF benutzen es auch und benutzen oder benutzten auch at, notify und co.

Sie können also auf Erfahrung für eine Beurteilung beider Welten zurückgreifen.

Die meisten der anderen Fraktion benutzen nur at, notify und co. und benutzen nicht bzw. haben nie DOIF benutzt.

Sie können also nicht auf Erfahrung für eine Beurteilung beider Welten zurückgreifen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wernieman

Sorry, aber so wie es "automatisierer" geschrieben hat, hat er etwas anderes gemeint:
Zitatwelche Möglichkeiten man mit DOIF hat - wenn man es bedienen kann!

Wobei ich übriogens auch einen Zustandsautomaten ohne DOIF in FHEM bauen kann. Mir sind lieber 5 kleine Zeilen (notify o.Ä.) lieber als ein großes, was ich eben auch nicht nach 5 Tagen mehr verstehe ... Kleine Schritte dagegen sind viel einfacher zu debuggen (meiner Meinung nach).
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Thorsten Pferdekaemper

Oh, Kinners. So langsam is doch escht genug, odda?
Gruß vunn dä Kurpfalz,
   Thorsten
FUIP

Damian

#111
Zitat von: Thorsten Pferdekaemper am 14 Februar 2017, 10:40:38
Oh, Kinners. So langsam is doch escht genug, odda?
Gruß vunn dä Kurpfalz,
   Thorsten

Dann mach mal hier einfach zu. So langsam wiederholen wir uns hier alle. Jeder hat hier seinen Standpunkt dargestellt. Und wenn jemand genauer für sich ausmachen will, wo die eigentlichen Vor- bzw. Nachteile des Moduls liegen, der sollte es einfach mal selbst ausprobieren, so kann er dann für sich entscheiden, ob er es nutzen möchte oder nicht. Ansonsten philosophieren wir hier noch einen ganzen Monat.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

tomster

Zitat von: Thorsten Pferdekaemper am 14 Februar 2017, 10:40:38
Oh, Kinners. So langsam is doch escht genug, odda?
Gruß vunn dä Kurpfalz,
   Thorsten

Geh ich recht in der Annahme, dass Deine Fragestellung aus dem OP nunmehr für Dich zufriedenstellend beantwortet ist? ;-)

P.S. Hab mir gerade den Spaß gemacht den Thread querzulesen. Sehr unterhaltsam. Fast wie Apple-Jünger gegen Android-Fanboys. Oder Klopapierfalter gegen -knüller. Oder, oder, oder. Danke Thorsten. Ich hab jetz fast Lust bekommen mir ein DOIF zu basteln, nur um damit ein at zu definieren und ein notify auszulösen...

Garbsen

Zitat von: Thorsten Pferdekaemper am 10 Februar 2017, 16:01:45
Hi,

also mal ohne auf die einzelnen Postings einzugehen: DOIF eignet sich für einen bestimmten Komplexitätsgrad, aber eigentlich nicht wirklich für Anfänger. Wenn man aber mal notify und at verstanden hat, dann kann man bestimmte Dinge ggf. schöner mit DOIF erledigen.
Ich wäre auch dafür, DOIF aus allen Anfänger-Dokus rauszunehmen. Ich wundere mich, dass es überhaupt drinsteht.

Vielleicht kann sich auch mal ein wirklicher Anfänger dazu äußern, warum er (oder sie...) DOIF verwendet bzw. verwenden will.

Gruß,
   Thorsten

Ok, hier kommt der Anfänger..

Ok, mittlerweile ist meine FHEM.cfg schon ziemlich umfangreich und ich habe einige Devices drin, da ich aber erst letztes Jahr damit angefangen habe, betrachte ich mich immer noch als Anfänger. Und ehrlich gesagt, vieles wenn nicht fast alles löse ich mit copy/Paste und dann modifizieren. Ein richtig tiefes Verständnis von Perl etc, habe ich nicht.
Ok, warum benutze ich im Wesentlichen doif und kaum (mehr) at oder notify?
Ich finde den Aufbau von doif logisch und auch ohne tiefe Perl etc Kenntnisse nachvollziehbar. Wenn überhaupt, habe ich rudimentäre Programmierkenntnisse noch aus Basic-Zeiten (ja, so alt bin ich)
Und if - then gab es damals schon.
Meine doif sind vielleicht auch nicht die elegantesten der Welt, sondern so gebaut, dass ich sie möglichst auch ohne große zusätzliche Doku noch später verstehe.
Es gibt in der commandref eine recht gute Anleitung, mit vielen Beispielen, das erleichtert copy/Paste.
Ich habe viele Steuerungen (Rolläden/Heizung) bei denen ich halt viele unterschiedliche Szenarien abfrühstücken möchte, das kann ich mit doif-doifelse-doelse am einfachsten strukturieren.

Mag sein, dass es mit notify und at auch geht, ich nutze das auch vereinzelt noch für einfache Dinge. Aber sie ich komplexe Abhänigkeiten / Situationen damit löse, da fehlt es mir an Beispielen.

So, das sind im Wesentlichen meine Gründe für doif-Nutzung
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Wuppi68

Ich habe mal ein komplexes Szenario unter Off Topic https://forum.fhem.de/index.php/topic,67106.0.html eingestellt

Selber umgesetzt habe ich dieses nur in Teilen 8-) Ich denke hier können sich die Befürworter einer Technologie entsprechend austoben :-) Die mir gefälligste Lösung werde ich dann entsprechend umsetzen und ggfls auch fürs Wiki/Forum aufarbeiten
FHEM unter Proxmox als VM

marvin78

Zitat von: tomster am 14 Februar 2017, 11:39:28

P.S. Hab mir gerade den Spaß gemacht den Thread querzulesen. Sehr unterhaltsam. Fast wie Apple-Jünger gegen Android-Fanboys. Oder Klopapierfalter gegen -knüller. Oder, oder, oder. Danke Thorsten. Ich hab jetz fast Lust bekommen mir ein DOIF zu basteln, nur um damit ein at zu definieren und ein notify auszulösen...

Die Diskussion hier hat wirklich nichts von denen, die du auflistest.

Thorsten Pferdekaemper

Hi,
Zitat von: Damian am 14 Februar 2017, 11:34:14
Dann mach mal hier einfach zu.
Davon halte ich nicht wirklich was, nur wenn es beleidigend wird oder so. Solange sich alle benehmen kann doch jeder seinen Senf dazugeben. Mein Spruch war eher Ausdruck meiner Verwunderung. 
Ich halte es da eher mit "DFTT": Wenn man keine Lust mehr auf einen Thread hat oder das ganze unnötig findet, dann beteiligt man sich halt nicht mehr.

Zitat von: tomster am 14 Februar 2017, 11:39:28
Geh ich recht in der Annahme, dass Deine Fragestellung aus dem OP nunmehr für Dich zufriedenstellend beantwortet ist? ;-)
Ja. Schon lange.

Gruß,
   Thorsten

FUIP

l.with

Zitat von: Damian am 13 Februar 2017, 22:58:34
Allerdings mit einem kleinen, aber feinen Unterschied.

Die meisten Befürworter von DOIF benutzen es auch und benutzen oder benutzten auch at, notify und co.

Sie können also auf Erfahrung für eine Beurteilung beider Welten zurückgreifen.

Die meisten der anderen Fraktion benutzen nur at, notify und co. und benutzen nicht bzw. haben nie DOIF benutzt.

Sie können also nicht auf Erfahrung für eine Beurteilung beider Welten zurückgreifen.

Ich finde, man muss ein Modul nicht (produktiv) benutzen, um eine Meinung dazu zu haben. Die Erfahrung kann auch daraus bestehen, dass man versucht hat durch die Dokumentation zu einer Lösung einer Aufgabenstellung zu kommen und diese dann verworfen hat. Die Verstehen einer Funktionalität hängt von den Beschreibungen und Erläuterung und dem Verständnis des Lesenden ab. Wenn das nicht zusammenpasst, kann das an beiden Seiten liegen.

Die "kritischen" Stimmen hier zu DOIF benennen immer beides: einerseits die sehr ausführliche und mit vielen Beispielen angereicherte Dokumentation, andererseits die persönliche Sicht, dass es nicht so übersichtlich ist.

Herzliche Grüße
Lars

Jorge3711

Zitat von: Wuppi68 am 14 Februar 2017, 12:12:53
Ich habe mal ein komplexes Szenario unter Off Topic https://forum.fhem.de/index.php/topic,67106.0.html eingestellt

Selber umgesetzt habe ich dieses nur in Teilen 8-) Ich denke hier können sich die Befürworter einer Technologie entsprechend austoben :-) Die mir gefälligste Lösung werde ich dann entsprechend umsetzen und ggfls auch fürs Wiki/Forum aufarbeiten

Hihi, und ich habe dort in meiner Antwort zuerst konkreten DOIF Code drin gehabt, um dann noch vereinfacht ohne Beispiel zu Antworten. (-:

sash.sc

#119
Heisse Diskussion hier am Start.  8)

Gefällt mir.  ;D
Ich persönlich benutze alles !! Über at, notify, DOIF. Je nach dem was ich gerade bewerkstelligen will. Für die einfachen Sachen at und notify, und dann DOIF.

Ich persönlich komme mit DOIF recht gut klar, wenn nicht, dann wird gefragt und dann werden Sie geholfen !  ;)

Da ich aus der C16/64/128/plus4 Basic Zeit kommen, ist mir das mit IF THEN ELSE besten bekannt. Auch wenn manche jetzt die Hände über den kopf zusammen schlagen.

Ich selber, sehe mich immer noch als Anfänger. Viele hier haben definitiv tiefgreifende Progammierkenntnisse. Viele wiederum auch gar keine.
Ich denke, es ist abhängig, wieviel Aufand jeder in FHEM bzw Automatisierung reinstecken will, ohne dass das Privatleben (Familie, etc.) leidet bzw zu kurz kommt.

Ich denke, um den vollen Umafng von allem nutzen zu können, kommt man um PERL lernen nicht drum rum.
Aber wie gesagt, Zeit abhängig, Familie etc.....

Da ich von Haus aus Energieelektroniker mit nem Industriemeister bin, denke ich manchmal darüber nach, ob es vielleicht nicht schicker bzw einfacher wäre, es über eine grafische Oberfläche zu machen, so alla S7 eine UND Modul mit Eingängen und den Trigger drauf legen.

Aber nun gut.

Ich denke, dass alle die hier Ihren Senf dazu geben, egal ob Modulentwickler (welches auch immer), Supporter etc. ein große Lob verdient haben.

Und egal wie die Vorlieben liegen (Modul bezogen)  ;)  das ich bei FHEM geblieben bin, ist auf jeden Fall der Community hier zu verdanken !!!

Gruß und macht weiter so.

Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb