Gedanken zu Modulen

Um den anderen Thread nicht zu stören fang ich mit einem Zitat neu an:

[i]Moin!

I… Auch wenn mit den Modulen (irgendwie „leider“) fast jegliches denken überflüssig wurde (für die End-Benutzer). Aber du hast Recht, habe es mal bei den Update-Infos dazu geschrieben

Grüße,
Chris[/i]
Ende Zitat

In der Tat, dies war auch mein Gedanke als ich kürzlich die geheimnisvollen Module das erste mal probierte.
Irgendwie stört mich das der Code nicht mehr unmittelbar sichtbar ist (ja, ich weiß wo er liegt). Aber das ist längst nicht mehr so unmittelbar als früher, und damit auch die Chance etwas daraus zu lernen deutlich geringer.
Irgendwie nur mehr Plug&Play für Dumpfbacken - und aus Bequemlichkeit wird man dann leicht selbst zu einer. Ähnlich wie bei der IPS_Library.
Ich frag mich wo dies die Community hinführen wird.-

Weiters frage ich mich was der sinnvollste Weg ist Module zu patchen und an eigene ggfl. private Bedürfnisse anzupassen.
Alles neu veröffentlichen ? Das gibt doch bald ein buntes Chaos.
Local ohne Github kann man die ja nur bedingt modifizieren wie ich gelesen habe.

Und drittens frag ich mich noch wo eigentlich der konkrete Vorteil liegt aus existierendem Code ein Modul zu bauen ?
Ich mein jetzt den Privatgebrauch ohne Veröffentlichung. Bringt das was, wenn ja was ? Laufzeit ?

fragt sich
bb

  1. Eigentlich ist es besser als vorher. Du wirst gezwungen abgeschlossene Teile zu bauen, anstatt Wurstcode, wo immer mal ein „if“ dazwischen darf. Außerdem kannst du die Module per Hand kopieren und verteilen. Git ist nur da, damit es zum Verteilen an andere einfacher wird. Außerdem kann man dadurch Repositories forken und sie sind online zum angucken verfügbar. Inklusive Historie, falls mal ein Update was kaputt gemacht hat.

  2. Forken ist ein bekanntes Konzept. Das ist kein buntes Chaos, sondern es gibt eben alternativen für ein Modul, mit bestimmten Funktionen. Man kann sich eben aussuchen, ob man das offizielle will, oder eine veränderte Version von einem anderen User. Bei den Skripten artet das immer aus. Bei Github kannst du schauen, wer forkt war und wer hat was geändert. :slight_smile:

  3. Erstmal der Grund auf 1), dass du gezwungen wirst abgeschlossene Teil zu bauen. Außerdem integriert sich dein „Skript“ durch die Konfigurationsformulare besser ins System und du kannst schneller an einem Parameter drehen, als im Skript oben eine Variable zu ändern. Falls du mal was tolles gebaut hast, und deinem Kumpel zum testen geben wirst, ist eine Git URL sicherlich einfacher, als ein Skript, welches er per Copy&Paste (wenn es nur eine Datei ist!) hinzufügt und per Execute erstmal installieren muss. Da fällt mir gleich ein, dass die Konfiguration intern gespeichert wird bei den Modulen und du einfacher Variablen erstellen/befüllen kannst, als mit einem Installer-Skript.

  4. Die IPSLibrary ist vom Konzept und Aufbau wesentlich mächtiger. Die PHP Module sind eher simpel und jeder PHP-Könner sollte in der Lage sein, ein vorhandenes Modul, ebenso wie ein Skript, für sich anzupassen.

paresy

Hi!

Danke, dass du es ansprichst :slight_smile:

Einerseits sind die Module eine geniale Sache. Man kann super einfach ein Modul einbauen und verwenden.

ABER, wie ich teilweise schon mal anmerkte, wird es (so empfinde ich es) immer weniger/schlimmer bzgl. Rückmeldungen. Ein Modul-Skript-Author macht sich viel Mühe, damit andere sein Projekte verwenden können. Für einen selbst so Projekte zu schreiben wäre deutlicher einfacher - weil kein Modul notwendig ist, weil es für einen selbst keinen Vorteil hat.

Ich für meinen Teil verlange keine Lobeshymen oder überschwengliche Dankes-Reden…aber eine Rückmeldung ist nicht zu viel verlangt. Kommt das Modul gut an? Verwenden es überhaupt mehr als die 3 Leute die geantwortet haben? War die Mühe umsonst? …?

Und die neuen Module fördern das „schlechte“ Verhalten des Benutzer, in dem es noch einfacher ist die Projekte zu verwenden. Also kommen dann nicht mal mehr Fragen zur Einrichtung…

Ich denke die Richtung mit dem Modulen ist an sich schon ok. Modulare Systeme, einfach zu verwenden…so soll es sein :slight_smile:

ABER Module kommen nur, wenn die Community lebt! Und nur von „ich nehme mir das einfach und sag nichts“ entstehen keine Module und irgendwann verliert auch sicher der ein oder andere die Lust (ich sag nur Raketenschnecke, welcher hier schmerzlich von vielen vermisst wird).

Zum Thema Module patchen und an eigene Bedürfnisse anpassen:
> Lokal verändern und dann kann man aber nicht mehr updaten vom „original“ GitHub
> Entweder über GitHub einen „Clone/Fork“ machen, bzw. sich darüber einen Patch erstellen, damit könnte man updaten, aber ggf. sind irgendwann weitere/neue Anpassungen notwendig

Wenn ich etwas für mich selbst mache, dann baue ich das in Skripten. Baue ich etwas, dass auch andere brauchen könnten oder ich es eben veröffentlichen will, dann ist ein Modul „einfacher“.

Ohne jemanden persönlich anzusprechen zu wollen >> Nehmt es nicht mehr so für selbstverständlich, dass manche Leute hier extrem viel Zeit investieren und Skripte/Module basteln! Versucht euch einzubringen! Gebt Rückmeldungen! Testet bei einem Fehler mal selbst, woran es liegt und postet mehr Details oder gleich eine Lösung! …!

Soviel zu meinen Gedanken :slight_smile:

Grüße,
Chris

Guter Gedanke Jungs,

ich stehe den Modulen grundsätzlich positiv ggü. Dennoch teile ich Bernhards Befürchtung etwas, da ich es schon an mir selbst bemerke. Modul laden fertig. Du wirst sogar zu faul, Dir den Code nur mal anzuschauen. Mit der Zeit entfernst Du Dich aus der Ebene komplett und wirst wieder Anfänger. Aber einen Tod muss man sterben. [emoji6]

Jeep, genau so ist es mir mit dem ersten Modul gegangen das ich ausprobiert habe.

Chris IPS_Information: Gesehen, reingeladen, fertig.
Gar nicht gesehen welche Arbeit eigentlich dahintersteckt. Ist ja nur ein Fenster wo dann die ganzen Variablen rauspurzeln.
Und - ich gebe es selbst zu - ich war sogar zu faul ein kurzes Feedback zu hinterlassen. Da man eben den Wert nicht mehr sieht.
Im Grunde ist es auch gar nichtmal sichtbar das dies ein privates Geschenk und keine „mitgekaufte“ IPS Funktionalität ist.

Dann auch nochmal schnell paresis demo module geladen, für mich keinen Anwendungsfall gesehen, - wieder gelöscht.

Software Engineering wird so immer mehr zum wertlosen Wegwerfartikel.

Ich stimme voll zu das viele Anwender mit dem simplen editieren von Script-headern bereits überfordert sind, und dafür
die Module eine ideale Lösung sind.
Natürlich auch in punkto Updates ect.

gruß
bb

Hallo zusammen,

nu ja, das kann man so und so sehen.

Wenn man etwas zum basteln will, habt ihr recht.
Wenn ich allerdings mein Haus steuern will, ist es mir „egal“ was da so alles passiert. (Nun ja, mir persönlich nicht, aber ich schau ja auch rein, was die Module so machen…)

Dennoch: Meine Hausautomation soll in erster linie gut und einfach funktionieren. Und ein Modul von jemandem einzubinden und die Funktionen einfach aufzurufen ist da ein guter Weg.

Ich kann jeden verstehen, der sich nicht mit HTTP oder gar SOAP calls rumschlagen will, nur um den TV receiver oder Musik zu bedienen. Wenn es da jemanden gibt der sich aukennt oder sich einarbeitet, bin ich dankbar und verwende es gerne.
Und ich kann es auch keinem verdenken keine Rückmeldung zu geben, wenn es funktioniert.
Man muss halt mal einen Bug einbauen, um zu sehen wer sich so alles meldet :smiley:

Ich glaube auch nicht, dass alle die immer nur code von links nach rechts kopieren dadurch verstehen oder lernen was sie da machen…

Als Entwickler eines Moduls würde ich aber schon gerne wissen wer das so alles verwendet, bzw. wie viele.

Evtl. könnte man das über ein öffentliches Voting am Modul Beitrag lösen…

Gruß,
Thorsten

Ich stimme Euch da voll zu. Feedback ist immer gut, aber gibt es denn überhaupt „genug“ User, die die 4’er Beta installiert haben?
Nur dann können doch erst eigene Module geladen werden.

Ich selbst nutze noch die 3’er Version und bin mir noch nicht sicher, ob sich die 4’er Version lohnt, da ich noch mit dem Webfront (und den Möglichkeiten) etwas auf dem Kriegsfuss stehe.

Ich verstehe die Kritiken nicht. Die „neuen Module“ ersetzen lediglich die „alten Module“. Das was jetzt jeder in PHP machen kann, konnte früher nur ein relativ elitärer Kreis in Pascal machen. Wer bisher keine Module verwendet hat braucht das immer noch nicht zu tun.

aber eine Rückmeldung ist nicht zu viel verlangt. Kommt das Modul gut an? Verwenden es überhaupt mehr als die 3 Leute die geantwortet haben? War die Mühe umsonst? …?

Es wird immer laute und stille Anwender geben. Meine Module hab ich zuletzt mit nem Counter auf meiner Webseite zur Verfügung gestellt damit ich überhaupt mitbekomme wieviele Downloads ich hatte. Das wird hier nicht viel anders sein. Mal kommt was, mal nicht. :rolleyes:

Alles neu veröffentlichen ? Das gibt doch bald ein buntes Chaos.

Wer sich mit GitHubs nicht auskennt verliert schnell die Übersicht. Aber wenn du ne Weile damit arbeitest relativiert sich das alles. Unter Entwicklern, ihr seid ja auch Welche irgendwie, ist das weit verbreitet und wird gerne und viel genutzt.

Toni

Irgendwie läuft diese Diskussion in Richtung entweder/oder. Aber das ist doch gar nicht so. Man kann doch die Module installieren wenn man das möchte (und auch noch in den Code reinschauen) und/oder aber weiter auf Skripteditor Ebene basteln.

Es wird in sein wie in der Evolution, das bessere Konzept wird sich durchsetzen.

Ich nehme einfach mal an, dass von den Nutzern von IPS die wenigsten Zeit und (wie ich:)) das Know How haben, solch gute Module selbst zu bauen. Ich persönlich bin dankbar für jedes Modul (Sonos), welches ich einbinde, konfiguriere und läuft. Fertig. Und, ich bin allen Usern die Ihre Zeit aufwenden solche Module zu bauen extrem dankbar. Als Moderator in einem Forum (Und Tester von IPS) weiß ich, wofür Zeit drauf geht, auch wenn es hier wirklich super läuft.

Für mich viel kritischer wird es sein, dass in Zukunft eine ausrechende Menge (Stichwort: Kleiner Appstore) Module zur Verfügung stehen, um den Usern, die nicht programmieren wollen, Funktionalität bereit zu stellen.

Fazit: Ich sehe es als Erweiterung, nicht Limitierung, wer weiter proggen will kann das tun und für alle anderen gibts einen appstore. Der Fantasie was man weiter machen kann sind hier keine Grenzen gesetzt.

Ich finde die neue Funktion klasse und bin sehr gespannt wie das angenommen und geforkt wird. Um so größer der Kundenstamm von IPS wird, weil es die „leichte Plug&Play“ -Variante mit Modulen zusätzlich gibt, um so besser ist es für IPS und damit für uns alle. Das Thema Feedback/ Anerkennung als Lohn für die Entwicklungsarbeit sehe ich auch als sehr wichtig an.
@paresy: lässt sich so ein Counter erzeugen, der anzeigt wie oft ein Modul installiert ist? Könnte github oder IPS eine Rückmeldung der Downloads/Installationen geben?
Weil bald Weihnachten ist und sowieso ;-):
Vielen Dank allen Modul-Entwicklern und grundsätzlich Aktiven im Forum für die Hilfe und tollen Ideen!!!

Ich finde diese Diskussion eigentlich ganz gut. :slight_smile:

Auch die Grundlagen für des Thema kann ich gut nachvollziehen.
Aber zumindest ein Teil hinkt da etwas:

Die ‚alten‘ Module waren ja nur mit dem SDK unter Delphi zu erstellen. Öffentlichen Quellcode gab es dort gar nicht (höchstens Dreizeiler).
Was wolltest du denn da aus der fertigen DLL lernen? :wink:

Das dies nun anders ist, senkt natürlich auch die Voraussetzungen das sich andere User aktiv einbringen.
Aber es gibt natürlich auch die Kehrseite…
Zum einen kann ich nicht mehr ein Modul schreiben für Hardware XYZ wo das Protokoll nicht öffentlich ist.
Da man aus den Quellcode Rückschlüsse ziehen könnte.
Und dann ‚möchte‘ der Autor vielleicht auch nicht, dass ‚Unfähige‘ in ‚seinen‘ Modul mit ‚rumpfuschen‘… um es mal überspitzt auszudrücken.

Zur Zeit sehe ich das alles sehr entspannt, und sehe es da ähnlich wie wupperi und Toni …

Zumal ich auch selber noch immer in der Findungsphase bin, bei den PHP-Modulen.
Es ist irgendwie komisch… eine Mischung aus PHP-Klasse und ‚alte‘ SDK-Logik :smiley:

Ich hoffe nur das die versprochene Doku zum SDK noch erweitert wird.
Ohne das Verständnis wie IPS da intern ‚Tickt‘, ist es für Neueinsteiger schwer komplexere Module zu bauen.

Michael

Hallo,

ich finde diese Diskussion sehr interessant. Auffallend dabei ist, dass sich natürlich nur sehr erfahrene User - was ich einfach mal aus der Anzahl der Beiträge folgere - bislang geäußert haben.

Ich selbst bin hier absoluter Neuling und benutze IPS 4.0 zusammen mit IPSView seit knapp 4 Wochen. Zum besseren Verständnis muss ich vorausschicken, dass ich Anfang 1980 mein Studium der Elektrotechnik - Fachrichtung technische Informatik - beendet habe. Ich habe in der Vergangenheit HM und Mediola benutzt. Zum Wechsel nach IPS haben mich die Geschäftspolitik von Mediola und die zahlreichen Fehler im Mediola Creator NEO veranlasst :confused:

Für einen Anfänger ist es auf jeden Fall hilfreich Module zu benutzen. Ich hätte überhaupt keinen Plan gehabt, wie ich ansonsten die Anbindung an Homematic hätte schaffen sollen. Möglicherweise wäre es nie zum Kauf gekommen. Trotz umfangreicher Dokumentation - anders als bei HM und Mediola - steht man vor einem Berg von Funktionen, Begriffen, Zusammenhängen, Klassen, der IPS Library usw. von denen man glaubt, dass man es nie verstehen wird. Dieses Problem werden User, die hier tausende von Beiträgen verfasst haben, heute kaum noch nachvollziehen können :wink:

Die Idee einer Art AppStore für Module folgt derzeit Mediola, wo man für diverse Hardware Plug-Ins kaufen kann. Der Unterschied ist hier, dass der Hersteller und nicht die User die Plug-Ins entwickeln.

Zufälligerweise teste ich gerade für „Fonzo“, der ein Modul für das AIO Gateway (https://www.symcon.de/forum/threads/29750-Info-für-AIOGateway-Modul) entwickelt, einige Funktionen für LED RF Controller (Light Manager II), die ich im Einsatz habe. Diese Arbeit hat mein Verständnis für die Zusammenhänge ausgesprochen gefördert, wenngleich ich von der objektorientierten Programmierung sehr weit entfernt bin :rolleyes: Das Problem, dass die Entwickler kaum Rückmeldungen bekommen ist bedauerlich, wird aber nur schwer zu ändern sein. Zunächst wäre es wirklich wichtig zu wissen, wie viele User eigentlich ein Modul aktiv benutzen.

Ob man selbst dabei träge wird und nicht mehr alles verstehen will, wage ich eher zu bezweifeln. Wer engagiert ist wird sich auch die Module anschauen. Ansonsten fährt man ja auch Auto ohne nun jedes Detail des Motors oder der Steuergeräte zu kennen :slight_smile:

Dies mal aus der Sicht eines Anfängers.

Gruß
Hans

Als Author einiger Delphi-Module will ich auch meinen Senf dazugeben

In diesem Thread zum 5.Geburtstag von IPS 2010 hatte ich auf die Probleme mit Delphi hingewiesen mir auch eine etwas leichtere Lösung für die Module gewünscht. Jetzt ist es da;) . Und auch relativ plattformunabhängig.

Mit PHP-Modulen kann man aber keine Hardware betreiben, die in Echtzeit mit einem engen Timing angesteuert werden müssen, z.B. I2C im BitBang-Modus oder einige ältere ELV Hardware. Auch Dienste kann man damit nicht implementieren und die Laufzeit ist limitiert. Die Implementierung von NDA-Protokollen geht auch nicht mit PHP, da Klartext. Man muss sich also außerhalb einen Dienst bauen, der sich dann über Sockets u.ä. mit IPS unterhält. Das ist natürlich wieder plattformabhängig und recht aufwändig, was ich nach meinen Erfahrungen mit den Delphi-Modulen nur noch in absoluten Ausnahmefällen leisten möchte.

Denn bedankt haben sich nur ganz wenige. Mehr das Gegenteil, wenn irgendwas nicht funktioniert hat. Auch wenn das Problem vor dem Bildschirm saß.Das ist scheinbar normal heute. Deshalb gilt für mich: alles was ich für IPS programmiere, mache ich primär für mich selbst und auch nur dann, wenn ich Zeit und Bock darauf habe. Wenn jemand etwas anders oder eher haben will, darf er sich den Code selber schreiben bzw. anpassen.

Die ‚alten‘ Module waren ja nur mit dem SDK unter Delphi zu erstellen. Öffentlichen Quellcode gab es dort gar nicht (höchstens Dreizeiler).

Naja, meine Seite zur Modulerstellung gibt es seit 2009 und war immer ganz gut besucht. Ich habe auch gelegentlich Feedback bekommen, das es jemand zum Einstieg gut nutzen konnte. Ich musste 2005/2006 mir noch alles mühsam zusammensammeln und Paresy nerven, bis ich das erste Modul fertig hatte. Den Quellcode aller meiner Delphi-Module gibt es seit einiger Zeit auch bei Github.

Die ausschließliche Verwendung von Github für die PHP-Module finde ich jetzt auch nicht so toll. Ich würde mir zum Entwickeln wünschen, das man auch ein lokales Verzeichnis zum Laden angeben kann. Auch ist es für die Öffentlichkeit nicht immer wünschenswert, das alle commits aus der Entwicklungsphase dort mit auftauchen. Es kann schon mal zu ungewollten bösen Informations-Leaks führen, weil man eine Zwischen-Version zum Testen commited, wo der Einfachheit halber Passwörter hardcoded drinstehen und am Ende das Projekt nach GitHub synced.

my 2 cents

Tommi

Nur um es in aller Deutlichkeit zu sagen…
Auch ich wäre ohne deine ‚Seite zur Modulerstellung‘ vermutlich echt am verzweifeln gewesen.
Sie ist auch wirklich die positive Außnahme von der Regel.
Danke also nochmal dafür!

Und ja es stimmt schon das die PHP-Module auf keinen Fall alles ersetzen können, da habe ich auch noch so einige Bedenken. Auch wenn es ‚bisher‘ ganz gut zu klappen scheint mit dem Datenaustausch über LAN und RS232 & 485.

Michael

Übrigens ist es Möglich, dass ihr die Module lokal habt und lokal verwaltet. Einfach alles in den Modulordner kopieren. Und ggf. bei Bedarf IP-Symcon neu starten. Ich würde das auch so machen und Git nur für sinnvolle Commits nutzen, und dann sobald ich was fertig habe nach GitHub synchronisieren, was an alle raus soll :slight_smile:

paresy

Hallo

komme grad von einer Weihnachtsfeier und sehe mit Freuden das die Diskussion gut weitergegangen ist.
Genau das wollte ich erreichen. :slight_smile:
Wenn ich die Beiträge so durchsehe, so lese ich raus das ihr meine Eingangs dargelegten Befürchtungen nicht teilt.

Das ist gut. Gerne lass ich mich auch davon überzeugen.

Wenn mir über Weihnachten Zeit bleibt, so werd ich mich also auch mal im PHP Modulbau versuchen. Ein passendes Projekt hätte ich auch schon im Auge.

Native Delphi Module hab ich noch nie gebaut, das war mir immer eine Nummer zu groß.
Scripte oder Snippets gibt es aber viele von mir hier im Forum. Vielleicht etwas weniger in letzter Zeit, aber was soll man schon groß neu programmieren wenns im eigenen Haus nix mehr zu tun gibt.

schöne Grüße und danke für die Diskussion
bb

Den Zustand gibt es doch nicht wirklich.

Frei nach dem Motto „Es gibt viel zutun …“ können wir ja jetzt auf die V4 umsteigen :).

Ähm… Datenschutz? So eine Funktion würde ich mal als erstes wegblocken und ne ausführliche Anleitung dazu online stellen. :rolleyes:

Toni

:eek: mhm, was soll ich dazu jetzt sagen?!

Ein Counter bei dir auf der Webseite ist ok, aber eine sinnvolle Integration ins das IPS Forum, vielleicht sogar nur sichtbar mit Foren-Anmeldung ist gefährlich:confused:.

Jeder App Store zeigt die Anzahl der Installationen an, was spricht wirklich dagegen?

Fummeln wir das doch mal auseinander…

der anzeigt wie oft ein Modul installiert ist

Wie könnte das wohl festgestellt werden? Nur indem jede IPS Installation nach Hause telefoniert und die Daten zentral sammelt. Damit Daten nicht doppelt oder 12-fach drin stehen muss zur Identifizierung die Lizenz oder ein Hardwareprofil als Hash dabei stehen. Von dort müssten sie einem öffentlichen oder halb-öffentlichen Kreis zur Verfügung gestellt werden.

Du vergleichst das nicht mit einem Downloadcounter, an dem man weder erkennen kann ob das Modul auch installiert wurde oder ob es 12 mal der selbe User war, der sich da bedient hat, oder?

Jeder App Store zeigt die Anzahl der Installationen an, was spricht wirklich dagegen?

Solange es ein Downloadcounter ist, spricht nichts dagegen. Aber der sagt ja nun gar nichts über die Anzahl der tatsächlichen Nutzer aus. Und davon habe ich auch nicht gesprochen. So einer ließe sich auch nur schwer weg blocken :wink:

[Edit]Ich weiss ehrlich gesagt nicht was IPS alles nach Hause funkt. Fakt ist, dass bereits von jedem User Daten gesammelt werden. Theoretisch kann also ein Lizenzverstoß bereits vom IPS Team ermittelt und ggf geahndet werden.[/Edit]