Vorschlag zur Unterstützung von Einsteiger-Programmierern in der Modulentwicklung

Die jüngsten Entwicklungen in den Softwareversionen von IP-Symcon haben bemerkenswerte Fortschritte gezeigt, insbesondere in Bereichen wie der neuen Visualisierungsmöglichkeiten und vereinfachten Automatisierungsmethoden. Hinzu kommen Neuerungen in der Modulerstellung, die sich vorrangig an die erfahrenen Entwickler in unserer Gemeinschaft richten.

Ich moechte mit diesem Beitrag eine neue Diskussion anregen, die sich auf eine andere, aber ebenso wichtige Nutzergruppe fokussiert: die Unterstützung für durchschnittliche Hobby Programmierer, um auch ihnen den Einstieg in die Modulentwicklung zu erleichtern. Meine Erfahrungen im letzten Jahr mit dem Einsatz von ChatGPT zur Unterstützung beim Schreiben bzw. Generieren von PHP-Skripten zeigen, dass wir am Anfang einer revolutionären Entwicklung stehen. Die Nutzung von sprachbasierten KI-Modellen (LLMs) für die Programmierung eröffnet neue Möglichkeiten, die Komplexität zu reduzieren und koennen aus meiner Sicht z.B. den Zugang zur Modulentwicklung demokratisieren oder eine effiziente Hilfefunktion anbieten.

Die spezifische Herausforderung und Chance für das IP-Symcon Team sehe ich darin, ein Plugin oder eine spezialisierte LLM-Instanz zu entwickeln, die über detailliertes Wissen zu IP-Symcon verfügt. Eine solche Lösung könnte nicht nur die Entwicklungserfahrung für Einsteiger erheblich verbessern, sondern auch die Qualität und Innovationskraft innerhalb der IP-Symcon-Community fördern.

Die Integration einer solchen KI-Unterstützung könnte beispielsweise folgende Vorteile bieten:

  1. Vereinfachter Einstieg in die Modulentwicklung: Durch die Bereitstellung eines KI-Assistenten, der mit den Besonderheiten von IP-Symcon vertraut ist, könnten neue Entwickler schneller lernen und produktiver werden.
  2. Qualitätssteigerung und Fehlerminimierung: KI-gestützte Programmierung kann dabei helfen, häufige Fehlerquellen zu erkennen und zu vermeiden, was die Qualität der entwickelten Module verbessert.
  3. Innovationsförderung: Mit der Unterstützung durch KI könnten Entwickler mutiger experimentieren und neue Funktionen oder Lösungsansätze schneller realisieren.
  4. Hilfefunktion: KI kann effizienter Hilfe bei der programmierung anbieten und Code Vorschläge machen., insbesondere wenn das LLM auf Symcon trainiert wurde

Ich glaube, dass die Einbeziehung von fortschrittlichen KI-Technologien wie ChatGPT und anderen spezialisierten LLMs in den Entwicklungsprozess einen signifikanten Mehrwert für die IP-Symcon-Community darstellen könnte. Es würde nicht nur die Barrieren für Neulinge senken, sondern auch einen Anstoß für kreative und innovative Lösungen geben.

Ich freue mich auf Eure Gedanken und Diskussionen zu diesem Vorschlag.

PS. Hier ein Link zu einer meiner ChatGPT Diskussionen in deren Verlauf ChatGPT ein kurzes Script zur erstellung von Stapel Grafiken fuer mich entwickelt hat : https://chat.openai.com/share/4c0ede49-b82a-40d2-b0ec-2f59aab8d99a

Oh das wäre echt cool. Würde auch das ein oder andere Modul erstellen aber als nicht Programmierer kann man das vergessen.

Ein Youtube Tutorial plus ChatGPT würde da bestimmt schon helfen :grinning:

Ich habe bisher an keiner Stelle auch unabhängig von IP-Symcon oder Softwareentwicklung etwas gesehen, wo die Qualität wirklich besser wurde durch KI.

Ich glaube auch nicht, dass IP-Symcon durch Module von unerfahrenen Entwicklern bereichert wird. Alle Codeschnipsel die sich hier im Forum bisher als KI-gestützt herausgestellt haben waren alles, aber nicht zielführend eine Problemlösung auf dem technisch schönsten Weg.

Sehr gut in Erinnerung blieb mir hier eine mehrminütige Schleife mit 1000% Airtime-Usage bei Homematic, anstatt einem einzigen Homematic Spezialbefehl zum Dimmen.

Der Aufwand die bestehenden Module von relativ erfahrenen Softwareentwicklern und größtenteils mittlerweile auch Symcon-Modulentwicklern zu prüfen, scheint jetzt schon recht hoch. Wie soll das werden, wenn hier plötzlich jeder ohne tiefergehendes Verständnis sein Modul zusammenschustern kann. Sprich wer kontrolliert die KI?

1 „Gefällt mir“

Hier ist die Antwort von ChatGpt (meine kommt etwas spaeter :frowning: )

Guten Tag und vielen Dank für Ihre kritische Rückmeldung zu meinem Vorschlag. Es ist wichtig, solche Bedenken ernst zu nehmen und konstruktiv darauf einzugehen. Lassen Sie mich auf die von Ihnen angesprochenen Punkte eingehen:

1. Qualität der durch KI generierten Lösungen:

Es ist richtig, dass KI-generierte Codes nicht immer die optimale Lösung bieten. Die Technologie, insbesondere in Anwendungen wie der Codegenerierung, befindet sich noch in einer relativ frühen Entwicklungsphase. Jedoch verbessern sich die Algorithmen kontinuierlich, und die Genauigkeit sowie Relevanz der von KI-Modellen generierten Antworten nehmen zu. Ein zentraler Punkt ist die Kombination von menschlicher Expertise und KI-Unterstützung, um die Qualität zu sichern und weiter zu erhöhen.

2. Beitrag unerfahrener Entwickler durch KI-gestützte Module:

Der Einwand, dass Module von unerfahrenen Entwicklern möglicherweise nicht die Qualität und Tiefe erfahrener Entwickler erreichen, ist verständlich. Der Vorschlag zielt jedoch darauf ab, den Einstieg und Lernprozess für Neulinge zu erleichtern und nicht darauf, unmittelbar professionelle Entwicklungsstandards zu umgehen. Ziel ist es, eine Plattform zu schaffen, die Lernen durch Tun fördert, untermauert durch eine robuste Qualitätssicherung.

3. Qualitätssicherung und Kontrolle:

Ihr Punkt hinsichtlich der Qualitätssicherung und des erhöhten Aufwands für die Prüfung von Modulen ist besonders wichtig. Die Einführung einer KI-basierten Entwicklungshilfe würde tatsächlich eine Anpassung der Qualitätssicherungsprozesse erfordern. Eine Möglichkeit könnte die Implementierung eines automatisierten Review-Prozesses sein, der erste Qualitätschecks durchführt, bevor menschliche Experten die Feinprüfung vornehmen. Darüber hinaus könnte ein Bewertungssystem für Module eingeführt werden, das die Community aktiv in die Qualitätssicherung einbindet.

4. Die Rolle der KI und menschliche Kontrolle:

Die Kontrolle und Steuerung der KI durch menschliche Experten ist entscheidend. KI-Tools sollten als Assistenten betrachtet werden, die die Entwicklung unterstützen, jedoch nicht als autonome Entwickler. Die endgültige Entscheidung und Prüfung sollte immer bei den menschlichen Entwicklern liegen, um sicherzustellen, dass die Lösungen den technischen und qualitativen Anforderungen entsprechen.

Zusammenfassend verstehe ich Ihre Bedenken hinsichtlich der Qualität und Kontrolle in einer von KI unterstützten Entwicklungslandschaft. Es ist klar, dass jede Implementierung einer solchen Technologie sorgfältig geplant und mit wirksamen Kontrollmechanismen versehen werden muss, um die Standards zu wahren. Dennoch glaube ich, dass die Vorteile einer solchen Integration – insbesondere in Bezug auf die Förderung des Lernens und den Zugang zur Entwicklung – eine sorgfältige Erwägung und mögliche Exploration wert sind.

Ich hoffe, dass wir in einem konstruktiven Dialog weitere Perspektiven und Lösungen erkunden können, die sowohl die Bedenken berücksichtigen als auch die Chancen, die KI-Technologien bieten, nutzen.

„Ich habe bisher an keiner Stelle auch unabhängig von IP-Symcon oder Softwareentwicklung etwas gesehen, wo die Qualität wirklich besser wurde durch KI.“

Das ist natürlich relativ zu sehen. ChatGdp hat mir Code Vorschläge gemacht von denen ich etwas lernen konnte. Hier ist mein Code :

if (!isset($camera_count[$value[2]])) {
    $camera_count[$value[2]] = 1;
} else {
    $camera_count[$value[2]]++;
}

und hier der Vorschlag von ChatGpt :

$camera_count[$value[2]] = ($camera_count[$value[2]] ?? 0) + 1;

Das sind natuerlich nur einfach Beispiele.
Hier ist eine HTML Webseite mit Charts die komplett von ChatGpt entwickelt wurde :
(Mein Program analysiert die Logfiles von 4 HIKVISION Nummern Schildlesern und stellt die Ergebnisse grafisch dar)

https://fisart.github.io/analysiswebsite/All%20CamerasBR!DOCTYPE%20htmlhtmlhead%20.html

Da ich die Webseite nicht über meinen IP Symcon Server publizieren wollte habe ich ChatGpt um Rat gefragt. Hier ist der Link zum Dialog :

https://chat.openai.com/share/d46d2776-c154-47d4-af48-eb8a488d4841

Wenn ich Excel Probleme habe oder sonst irgendetwas auf die schnelle bei Windows oder Linux gelöst haben will nutze ich nicht mehr die Hilfe Funktion sondern Frage ChatGpt, übrigens mit einer Treffer Rate von mindestens 95% ! Das würde ich mir losgelöst von meinem beispielhaften Modul Thema auch für Symcon wünschen

Sehr gut in Erinnerung blieb mir hier eine mehrminütige Schleife mit 1000% Airtime-Usage bei Homematic, anstatt einem einzigen Homematic Spezialbefehl zum Dimmen.

Genau das ist ja mein anliegen, wenn das LLM auf Symcon trainiert wird ist es in der Lage den optimalen Code unter berücksichtigung der Symcon Funktionen vorzuschlagen.

„Ich glaube auch nicht, dass IP-Symcon durch Module von unerfahrenen Entwicklern bereichert wird. Alle Codeschnipsel die sich hier im Forum bisher als KI-gestützt herausgestellt haben waren alles, aber nicht zielführend eine Problemlösung auf dem technisch schönsten Weg.“

Symcon hat ja eine Qualitätssicherung und die Module die ich für mich geschrieben habe sind bestimmt nicht besser als das was ChatGpt mir vorschlägt (Leider)

„Der Aufwand die bestehenden Module von relativ erfahrenen Softwareentwicklern und größtenteils mittlerweile auch Symcon-Modulentwicklern zu prüfen, scheint jetzt schon recht hoch. Wie soll das werden, wenn hier plötzlich jeder ohne tiefergehendes Verständnis sein Modul zusammenschustern kann. Sprich wer kontrolliert die KI?“

Das klingt (ich hoffe das mein Kommentar nicht falsch verstanden wird) etwas abgehoben. Es gibt im Moment keinen „Modul Führerschein“. Ich zahle meine Lizenzgebühr und die Subskription für die Systeme die ich im Einsatz habe. Wenn es passt bin ich aktiv im Forum und publiziere auch Code fuer andere (Tempest z.b.) Ich koennte wenn ich wollte mir das Modul Thema auch selbst beibringen. Es ist natürlich viel einfacher wenn ich ChatGpt bitten könnte mir eine Modul Struktur fuer ein bestimmtes Thema vorzuschlagen. Anhand meiner Beispiele ist für mich klar das ChatGpt das kann wenn man das LLM entsprechend trainiert. Wenn Symcon das nicht macht wird das irgendein anderer SW Hersteller machen also warum nicht Symcon ? Das ware doch ein tolles alleinstellungsmerkmal

Meine Produktivität bei der Code Entwicklung hat sich im letzten Jahr durch ChatGpt erheblich gesteigert. Das ist einfach so, für erfahrene Entwickler mag das anders aussehen aber das ist ja auch nicht meine Zielgruppe. Im Moment kann ich ChatGpt mit Zielvorgaben füttern und erhalte nach ein paar Iterationen brauchbaren PHP Code. Es liegt an Symcon ob sie diese Chance für Ihr System nutzen wollen. Ich könnte es gut gebrauchen und ich denke es wird in Zukunft noch mehr von „meiner Sorte“ geben. Generell gehe ich eh davon aus das es in 10 Jahren den typischen Programmierer von heute nicht mehr gibt. Übrig bleiben werden m.E. nur ein paar exzellente Leute fuer die wirklich genialen Sachen.

Also es wurde schon an vielen stellen im Internet darauf hingewiesen.
KI kann unterstützen. ABER derjenige der die KI auffordert etwas code beizusteuern muss bewerten können was das bedeutet und im größeren Kontext für Auswirkungen hat.
Ich gehöre nicht zu der Professionellen Entwickler Zunft. Ich habe mir C# über die letzten 13 Jahre selbst bei gebracht mit hundert tausenden stunden von Video Tutorials. Deswegen schreibe ich das nicht um den Berufstand in irgendeiner weise zu schützen. Aber ich habe natürlich auch mit ChatGPT experimentiert. Im ganz kleinen Kontext kann man sich gute Ideen liefern lassen aber es kommt auch viel zeug bei rum was Unsinn ist. Ab schönsten ist es wenn du dann dem Chat darauf aufmerksam machst das er sich dann entschuldigt und dann etwas mehr brauchbares liefert als davor.

Grundsätzlich gebe ich aber auch zu das die SDK Doku ganz viel Luft nach oben hat. Ich bin von Microsoft Dokus verwöhnt wo immer etwas mehr ausgeholt wird für einzelne Funktionen, ich will nicht von Reallife App Beispielen sprechen aber es ist dann in einem größeren Kontext. In der Symcon Doku wird eher der Aufruf gezeigt als ein Beispiel was die Idee hinter z.B. dem Befehl aufweist und man sich somit in das Ökosystem eingliedert als das Rad neu zu erfinden.

Das eine Gefahr von zufielen Hobby Programmierern besteht, das ist einfach so. Entweder bringt die Plattform die Integrationen die jeder Benötigt oder es muss dafür gesorgt werden das diese auf andere weise kommen. Ansonsten geht an Hobby Programmieren kein weg vorbei und die die Modul Reviews durchführen haben halt mehr zu tun. Um so besser das SDK und besonders die Doku umso besser funktioniert das natürlich.

Gruß
Dennis

Also bzgl. Modulentwicklung gibt es doch sehr schöne Videos von paresy &Co.
Ich finde das reicht eigentlich. Gut gemacht und aufs essentielle reduziert.
Insbesondere finde ich es ist die sind das absolute Minimum was jeder der sich damit beschäftigen will so oder so lernen muß.
Wenn man diese Grudnlagen nicht beherscht dann sollte man von den Chat Dingens gleich die Finger lassen.-
Hat man es aber erstmal gelernt dann ist die restliche Aufgabe schnöder PHP Code.

Wichtige wäre grundsätzlich die Voraussetzungen für Modulentwicklung zu drücken und einfacher zu machen. Und hier sehe ich besponders Richtung KachelVisu.

pers. hab ich schon ein paar Module gemacht, aber größtenteils nur für Eigengebrauch. Selten mal was veröffentlicht. Einfach weil es mir zu mühsam ist dann auch noch alle Feature Request mit abzudecken.
Das war mit Scripten viel besser. Script ins Forum und jeder konnte es dann nach seinem Gusto anpassen fertig.
Wenn ich da so beobachte wieviele Requests alleine beim Energieoptimierer oder bei Kais Stromkostenrechner so auflaufen bewundere ich die Geduld der Ersteller.
Es sind ja immer nur Kleinigkeiten die man auf Scriptebene mit 1-2 Zeilen Code selbst anpassen könnte - wegen der Komplexität der Module traut sich aber kaum jemand dran da selbst tätig zu werden.

ym2c
Bernhard

Grundsätzlich muss man einfach festhalten, die Akzeptanz und Verbreitung einer Automatisierungslösung lebt von der Community und seinen Modulen/Scripten. Das sieht man an Homeassistant, hier gibt es etliche Lösungen wir jeden erdenklichen Anwendungsfall und die Community ist groß.
Wenn jeder nur in seinem stillen Kämmerlein sein eigenes Ding macht und nichts teilt, ist das sein gutes Recht, hilft Symcon und der Community allerdings wenig. Neue User gewinnt man so wenig, denn die wenigsten können und wollen sich tief in die Materie einarbeiten, da helfen einfach Module und/oder Scripte.

Je einfacher die Erstellung eines Moduls ist, desto mehr Module und dadurch neue User und eine wachsende Community.

2 „Gefällt mir“

Food for thought :thinking: