Frontend zur Programmierung

Begonnen von Cruz, 09 Januar 2015, 01:04:44

Vorheriges Thema - Nächstes Thema

Cruz

Heyho!

Es gab hier mal die Diskussion, dass man die Config am besten gar nich anfasst sondern alles übers Interface macht. Ich hab allerdings immer das Gefühl, dass mache Dinge nur auf Umwegen gehen und, wenn man die def verbiegt, eh schon wieder mitten im Code ist.

Daher die Frage:
- wer kennt sich mit GPL aus?
- hat vielleicht sogar mal positive Erfahrung mit der microSPS gemacht?  (denn auf sowas will ich hinaus)

Natürlich schleichen sich bei einem Perl noob wie mir dann schnell Fehler ein. Dabei ist die Struktur doch eigentlich sehr logisch strukturiert. Ich finde dann bloß das eine Komma zwischen 500 Zeilen Code nicht... :(

Die Idee wäre, das ganze ggf als GPL zu machen. Eine Abfrage ist dann ein Kästchen mit irgendwas drin, der at-befehl ist ein Pfeil mit Fragezeichen, der set-befehl ist ein Pfeil mit Ausrufezeichen usw. Selbst mehrere Ein- oder Ausgänge könne man gleichzeitig reinziehen, da wird dann im Hintergrund das "oder" oder das Komma draus. Kapiert jeder in 10 min und wäre ein Alleinstellungsmerkmal für fhem. Es kann ja ruhig nen 30 mb Brocken sein, aus dem man dann vom Notebook direkt in den rpi lädt.

Also - wer hat Lust auf sowas und kann genug programmieren. Würds sofort selbst machen, wenn nicht schon das kompilieren eines existierenden Programms für sowas (public license!) mich 5 Stunden kostet. Dann wäre das Programm noch nicht fertig, wenn der Holo-Projektror schon im Wohnzimmer steht ;). Daher kann ich leider nur bis dahin helfen wo Sourcecode aus der Strukturierung wird :(

LG
Dennis

hexenmeister

Versteh mich nicht falsch, aber ich denke, dass Entwickler werden für so etwas schwer zu begeistern sein. Solche Sachen erweisen sich auf Dauer in der Regel als kompliziert, unhandlich, unübersichtlich und Fehlerträchtig. Mit 10 Einträgen sieht das gut aus. Mit 5000 nur noch grausam.

Cruz

Ich würds auf den Versuch ankommen lassen.
Und klar siehts dann irgendwann grausam aus. Wäre aber ein zusätzlicher Inputkanal und würde jeden Laien sofort Appetit auf FHEM machen. Und nicht zuletzt wird man so zum Gruppieren animiert was letztlich wieder der Performance gut tut.

Und sooooo viele Icons werden es glaub ich nicht. Kann mich gern mal hinsetzen und ein paar Ideen zur Umsetzung einzelner Befehle geben.

hexenmeister

Meine fhem.cfg (mit allen Includes) hat durchaus Tausende von Zeilen. Aber egal...

Die eigentliche Stärke von FHEM liegt IMHO genau darin, dass sich ein Profi die komplette Freiheit bei der Entwicklung seiner persönlichen Lösung in Anspruch nehmen kann. Für einen Anfänger gibt es bereit einige Wizards, wie Plot-Editor. In diese Richtung sollen wir auch weiter gehen, damit ist beiden Anwendergruppen optimal gedient.

Ich habe Erfahrung mit solchen graphischen Systemen.
Zuerst vor ca. 15 Jahren. Es gab damals Software namens VisualAge for Java. Eine JavaIDE, entwickelt von IBM. Also durchaus von Menschen, die das professionell machen. Dort war auch ein GUI-Editor integriert, der eine Möglichkeit bot, auch die ganze Aktionen (was passiert bei einem Button-Click und unter welchen Bedingungen etc.) mit den graphischen Mitteln zu definieren. Mit Drag'n'Drop, Pfeilen, Kästchen etc. Dürfte in etwa dem ähneln, was du auch vorhast.
Zuerst war ich auch davon begeistert, dann habe ich eine etwas anspruchsvollere Eingabemaske damit erstellt. Danach habe ich den Editor nie wieder verwendet. In den Folgeversionen der Software ist er auch spurlos verschwunden und nie ein Mensch hat jemals danach gefragt ;) Einige Jahre später hat IBM die Source von VisualAge als OpenSource freigegeben. Die heutige Ableger davon nennt sich Eclipse. Die wohl bekannteste Entwicklungsumgebung für Java und manch andere Sprachen (auch Perl).
Genau hier liegt auch das großte Problem von solchen Editoren: die sind teuer in der Erstellung und Pflege und bewähren sich im produktiven Einsatrz oftmals nicht. Wenn ein Mensch genau weiß, was er tut, stört ihn so ein Tool mehr als er ihm nützt. Konfiguration auslesen, Änderungen umständlich graphisch mit der Maus vornehmen. Die Änderungen ins System exportieren, feststellen, dass es noch Fehler gibt, und eine neue Runde. Das sind alles Arbeitsschritte, die man eigentlich nicht braucht, die man vermeiden kann und die nur unnötig Zeit kosten.

Dennoch haben diese Ideen eine daseinsberechtigung. Es gibt BPMN, UML, es gibt z.B. Siemens LOGO, die auf diese Art programmiert wird.
Seit Jahren setzen wir ein ähnliches Verfahren in unserer Firma bei der Anwendungsentwicklung zur Definition von Modellen aller Art ein. Ich arbeite fast täglich damit, kenne viel von deren Stärken und Schwächen und könnte jetzt viele Seiten dazu schreiben...

Kurzum: Aufgrund meiner Erfahrung würde ich sagen, dass für FHEM das gänzlich ungeeignet wäre.

betateilchen

Zitat von: hexenmeister am 09 Januar 2015, 13:32:09
Kurzum: Aufgrund meiner Erfahrung würde ich sagen, dass für FHEM das gänzlich ungeeignet wäre.

Aufgrund meiner Erfahrung als Softwareentwickler (der damit seine täglichen Brötchen erwirtschaftet) kann ich dieser Einstellung nur uneingeschränkt zustimmen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Cruz

Schade... :(

Meine Erfahrungen sind nämlich durchaus gegenteilig:

Ein Bekannter der nicht mehr als "hello world" im Basic konnte hat in wenigen Wochen mit MicroSPS einen kompletten "Pöhler" (Frittenfett-Polo) mit allen Regelungen, Anzeigen etc. realisiert. Da hat selbst der fachmann gestaunt und auf einen A3-Seite hat auch sein Programm längst nicht mehr gepasst.

2. Beispiel:

In der Uni wurde lange Jahre zeilenbasierte Automatisierung genutzt . Klar liefen die Geräte damit auch irgendwie aber ran getraut hat sich keiner obwohl die Befehle FHEM recht ähnlich waren: z.B. "Hole Wert von XYZ in variable ABC und sende mit 2400 baud an COM2". Dann kam Labview und aus 2..3 Freaks wurden binnen weniger Monate 20 selbstständige Programmierer. Klar hat der eine irgendwelche mehrdimensionalen Räume im ns-Bereich gequält und der andere war stolz wenn er die Waage auslesen konnte aber dennoch war der Mehrwert sehr deutlich spürbar. Und auch die erfahrenen Kollegen haben der alten Software nicht nachgetrauert, obwohl auch bei LV der Schirm schnell voll ist. Na, dann muss man halt subs erstellen oder gruppieren - genau so geht doch saubere Programmierung ohnehin...?!

Egal. Lange Rede, kurzer Sinn: Ihr glaubt nicht dran, ich schon. Im Gegensatz zu euch kann ich aber auch nicht mehr als "hello world" aus dem Ärmel schütteln, d.h. ein Selbstversuch wäre eher Selbstüberschätzung. Wenn jemand daher von der Idee überzeug ist bitte gern melden, ansonsten den Thread ruhig runter rutschen lassen... (schade :( )

LG
Dennis

karl0123

Die Frage ist, warum jemand der Entwickler ist, unentgeltlich etwas bauen sollte, das er selbst nicht mal ansatzweise benötigt?! Dass man mal ein Tool etwas weiter entwickelt, weil man es in bestimmter Form selbst benötigt und es dann für die Allgemeinheit universell baut, ist meist kein großer Aufwand mehr. Aber du möchtest jemanden hier überreden etwas zu bauen, was er selbst absolut nicht benötigt. Das kann nicht funktionieren ;)

Doggiebert

...und mit dem Bau ist's nicht getan, Support und Wartung wäre da auch kein Pappenstiel...
SW: FHEM 5.5, Raspian, XBMC, Testinstallation auf Win7
HW: Raspi B, 32GB SD, enocean Pi, RFXTRX433E, BSC - MwC-32, Onkyo TX-NR709, Samsung UE55F8090, Jung LS-Eno, permundo SmartPlug, KDG-FB 6490cable (ohne FHEM)

hexenmeister

Grundsätzlich sind neue Ideen willkommen und auch gut im Forum aufgehoben.

In diesem Fall übersteigt IMHO jedoch der Aufwand den Nutzen bei Weitem.

Um dies richtig zu machen, wäre ein enormer Aufwand notwendig.
Zunächst muss ein Editor her. Es gibt fertige Tools, die gute sind richtig teuer. Man könnte auch selbst entwickeln. Z.B. mit Eclipse GEF. Auch nicht wenig Aufwand.
Dann geht aber richtig los. Man muss für alles mögliche Stereotypen definieren. Mit allen ihren Eigenschaften etc. Für alle Geräte und Module.
Dann der Generator: aus diesen allen Modellen muss am Ende eine funktionierende fhem.cfg herauskommen. Sehr viel Aufwand, sehr fehlerträchtig durch unzällige Kombinationen.
Das ganze muss laufend gepflegt werden. Jede Weiterentwicklung in FHEM muss sofort hier wiedergespiegelt werden, ansonsten wird die erstellte Konfiguration u.U. nicht mehr lauffähig sein.
Das alles sind Jahre Arbeit für die Erstellung und ein immenser Pflegeaufwand.

Und der Nutzen? Den sehe ich nicht.
FHEM ist ein System für Leute, die sich einarbeiten wollen. Dafür bekommen sie eine extrem flexible Umgebung und allerhand Freiheiten.
Für alle anderen gibt es z.B. CCU2

Nur meine Meinung, nicht böse gemeint.