KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

[Erfahrungsbericht] [V4.5 IP4] Nutzung von KI (LLM) für Dokumentation und Custom-Logiken

User-Geschichten zu erfolgreichen Projekten wie Migrationen vom Wiregate, Eigenbauten, usw.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#61

Beitrag von jhaeberle »

Franky hat geschrieben: Sa Mai 03, 2025 1:29 pm Ja, aber deine Idee es der KI nicht nur im Prompt zur Verfügung zu stellen, sondern ein spezialisiertes large language modell (LLM) darauf zu erstellen, ist gut. Nur fürchte ich, dass wir das ohne sehr hohe Kosten (egal ob Nutzung von Google, oder Open source auf eigener Hardware) nicht hinbekommen ...
Du hast völlig recht! Das will ich auch nicht. Ich möchte eines der bestehenden LLM für unsere Zwecke spezialisieren.

Was man bei Gemini auf jeden Fall machen kann, ist ein Gem zu erstellen. Gems sind kostenlos. Allerdings muss das jeder selber machen. Cool wär halt eine gemeinsame Basis…

Man könnte aber auf jeden Fall ein GitHub Repo machen, da alle Daten und eine Anleitung, wie man vorgeht… dann hätten wir schon mal die Dateien im Thread mit den diversen Ständen vom Hals…
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#62

Beitrag von jhaeberle »

Franky hat geschrieben: Sa Mai 03, 2025 1:32 pm Bei der Entwicklung des Wiki-scrapers Webseitenspeicherprogramms hätte ich Features vom Custom-Logik masterprompt gebrauchen können.
Hast du den Scraper oder deinen Prompt dazu schon mal hier irgendwo geteilt? Könntest du das ggf. machen, bitte?
Zuletzt geändert von jhaeberle am Sa Mai 03, 2025 1:48 pm, insgesamt 1-mal geändert.
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

Ersteller
Franky
Reactions:
Beiträge: 174
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 78 Mal
Danksagung erhalten: 93 Mal

#63

Beitrag von Franky »

jhaeberle hat geschrieben: Sa Mai 03, 2025 1:48 pm
Franky hat geschrieben: Sa Mai 03, 2025 1:32 pm Bei der Entwicklung des Wiki-scrapers Webseitenspeicherprogramms hätte ich Features vom Custom-Logik masterprompt gebrauchen können.
Hast du den Scraper oder deinen Prompt dazu schon mal hier irgendwo geteilt? Könntest du das ggf. machen, bitte?
Hier der letzte Code inkl. Anmerkungen, damit gemini sofort weiter machen kann.
Den Prompt habe ich zwar noch aber der ist mega groß und nicht so einfach kopierbar. Genau aus dem Grund habe ich aufgehört und mache erstmal a nder Masterprompt Entwicklung weiter, damit solche Softwareaufgaben jederzeit fortsetzbar sind. Ählich wie bei der Lüftersteuerung: Die fachliche Anforderung soll im speicherbaren Prompt stecken (oder eine Zusatzdatei) und nicht im lokalen LLM-Chat, der nie wieder reproduzierbar ist.

Du musst die URLs im code anpassen (zum DL der muster-Logik-jsons aus dem TWS) und du must python ausführen können.
code_28.py.txt: work in progress
scraper25.py.txt: lauffähig
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Franky am Sa Mai 03, 2025 2:15 pm, insgesamt 2-mal geändert.
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

Ersteller
Franky
Reactions:
Beiträge: 174
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 78 Mal
Danksagung erhalten: 93 Mal

#64

Beitrag von Franky »

jhaeberle hat geschrieben: Sa Mai 03, 2025 1:44 pm Was man bei Gemini auf jeden Fall machen kann, ist ein Gem zu erstellen. Gems sind kostenlos. Allerdings muss das jeder selber machen. Cool wär halt eine gemeinsame Basis…
Sehr genial, das muss ich mir angucken.

Wenn das keine Vorteile zu einer "im Chatfenster" hochgeladenen Masterpromptdatei hat, bleibe ich vmtl. bei meiner Lösung, da ich die Masterpromptdateien dann lokal verwalten kann und schon mehrstufig unterwegs bin:

1. Datei: Anweisungen für alle Arbeiten (z.B. Prompt ist single source of truth, fordere zum Zwischenspeichern der Dateien auf, sprich deutsch...)
2. Datei die spezielle Aufgabe, z.b.:
2a. Datei für die spezielle Arbeit (z.B. TWS Custom Logiken)
2b. Datei für die spezielle Arbeit (z.B. bash-Entwicklung)
2c. Datei für die spezielle Arbeit (z.B. python-Entwicklung)
...

EDIT
Hier gibt es auch noch ein Hanbdbuch zur Promptentwicklung von google.
Angeblich kann man das mit seinem Prompt im Chat hochladen und er optimiert den Prompt ... oh man, alles so Meta (inirekt um die Ecke) heutzutage :lol:

hier der Direktlink: link

hier eine angeblich neuere Version: link
Zuletzt geändert von Franky am Sa Mai 03, 2025 2:51 pm, insgesamt 5-mal geändert.
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#65

Beitrag von jhaeberle »

Cool! Danke. Code_28.py ist das Ding, das man laufen lassen muss, richtig? Der enthält doch scraper25…
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

Ersteller
Franky
Reactions:
Beiträge: 174
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 78 Mal
Danksagung erhalten: 93 Mal

#66

Beitrag von Franky »

jhaeberle hat geschrieben: Sa Mai 03, 2025 2:40 pm Cool! Danke. Code_28.py ist das Ding, das man laufen lassen muss, richtig? Der enthält doch scraper25…
ne, ich meine scraper25 war die kleine erste lauffähige Version und das code_28 ding war mein in Arbeit befindliches noch nicht lauffähiges... wenn du gemini die Dateien hochlädst, müsste er eigentlich mit ein bisschen Dialog und ausprobieren was lauffähiges hinbekommen...
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#67

Beitrag von jhaeberle »

Hier ist der Link zur Feinabstimmung des LLM. Geht per API oder im AI Studio… Allerdings ist die Doku für Gemini 1.5 Flash, ob das auch (schon) bei 2.5 geht?
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

eib-eg
Reactions:
Beiträge: 560
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1560 Mal
Danksagung erhalten: 358 Mal

#68

Beitrag von eib-eg »

Update: TWS Custom Logic Referenz V4.1 (Kontext für AI & Community) + Tipps & Beispiele

Hallo zusammen,

aufbauend auf der Idee einer umfassenden Referenzdatei für TWS Custom Logic (V4.0) und inspiriert von den Diskussionen und Beispielen hier im Forum (wie der Bewässerungssteuerung von Hans Martin), stellen wir heute eine aktualisierte Version V4.1 dieser Referenz vor.

Diese Version wurde durch intensives Testen, gemeinsames Debugging (vielen Dank an eib-eg / Georg S. für das Testen & den Input!) und die Analyse von KB-Artikeln verfeinert.

Zweck: Eine gemeinsame Wissensbasis – auch für KI-Helfer!

Diese Datei dient nicht nur als Nachschlagewerk für uns Menschen, sondern hat sich als extrem nützlich erwiesen, wenn man mit AI-Assistenten (wie ChatGPT, Claude etc.) an Custom Logic arbeitet.

Warum? Die Timberwolf-Logik hat ihre Eigenheiten (Syntax, verfügbare Module, Persistenz). Indem man einer AI diese Referenzdatei als Kontext gibt, "versteht" sie die TWS-spezifischen Regeln viel besser und kann schneller korrekten, funktionierenden Code generieren und bei der Fehlersuche helfen. Unsere Tests haben gezeigt, dass dies den Entwicklungsprozess erheblich beschleunigen kann!

Kollaboratives Update: Die Idee ist, diese Referenzdatei gemeinsam aktuell zu halten. Wenn jemand neue nützliche Patterns, Workarounds oder korrigierte Modul-Beispiele hat, können wir diese in zukünftigen Versionen (V4.2 etc.) integrieren und hier teilen. So profitieren alle – und auch unsere AI-Helfer lernen dazu!

Neuerungen & Highlights in V4.1:

Deutlich erweiterte Debugging-Tipps: Basierend auf häufigen Fehlern (siehe Liste unten!).

Präzisierte Modul-Syntax: Vor allem bei Comparator (Parameter je nach Modus!) und CalcFormula (Formel muss in Level-Variable!).

Wichtige Patterns:

Nutzung der $Error? Variable zur Laufzeit-Fehlererkennung.

Ein Pattern zum Schutz vor Division durch Null beim Ratio-Modul.

Das _Alt-Suffix Pattern für selbstgebaute Zustandsspeicher (via Latch).

Statemachine Beispiel: Ein grundlegendes Beispiel für die Syntax dieses mächtigen Moduls.

Weitere Modul-Beispiele: Syntax für Interpolation, Statistic, Step etc. ergänzt.

Not-Workaround: Verwendet konsequent den Comparator-Workaround für die logische Negation, da das Not-Modul in Tests Probleme machte.

Die wichtigsten Debugging-Tipps aus V4.1:
// WICHTIGE TIPPS & HÄUFIGE FEHLER (V4.1 - Aktualisiert & Erweitert):
// --------------------------------------------------------------------------
// 1. KOMMASETZUNG: Fehlerquelle #1!
// a) KEIN Komma nach dem LETZTEN Element in einem Array [...]. (Level, Module, Input, Output)
// b) EIN Komma ZWISCHEN den Hauptblöcken (`Level`], `"Module"`, etc.). Fehler oft erst im nächsten Block!
// c) KEIN Komma nach dem letzten Key-Value-Paar im Hauptobjekt (`}`).
// 2. UNDEFINIERTE VARIABLEN: Jede `$Variable` muss im "Level"-Block definiert sein.
// 3. UNBEKANNTE MODULE: Namen exakt (Groß/Kleinschreibung!).
// 4. DATENTYPEN: Auf korrekte Typen achten (float, integer, bool, string). String braucht oft Längenangabe (z.B. `,64`).
// 5. LATCH-MODI & TRIGGER: Mode 0 (Pegel) mit `$KonstTrue` als Trigger ist häufig für Persistenz über Zyklen.
// 6. STATEFUL MODULE & PERSISTENZ: `Latch`, `PID`, `Monoflop`, `Hobbs`, `Ramp`, `Statemachine` speichern Zustände.
// 7. `_Alt` SUFFIX PATTERN: Um eigene Zustände (Zähler, FF, etc.) über Zyklen zu speichern: Berechne neuen Wert in `$Calc_X_Neu`, schreibe diesen per `Latch` (Mode 0, Trigger `$KonstTrue`) in `$State_X_Alt`. Im nächsten Zyklus steht der alte Wert in `$State_X_Alt` zur Verfügung.
// 8. AUSFÜHRUNGSREIHENFOLGE: Module oben nach unten. Ergebnis nur von Modulen *darüber* nutzbar.
// 9. PARSER-EMPFINDLICHKEIT: Kommentare an "ungewöhnlichen" Stellen (direkt vor `]`) vermeiden.
// 10. `CalcFormula`: Die Formel (z.B. "X1 + X2") MUSS in einer String-Variable im `$Level`-Block stehen! Der Modulaufruf referenziert dann diese Variable.
// 11. `Comparator` PARAMETER: Die Struktur des Schwellwert-Parameters hängt vom Modus ab!
// - Modi mit *einem* Schwellwert (0-5): Parameter ist die Variable direkt (z.B. `$Schwelle`).
// - Modi mit *zwei* Schwellwerten (Hysterese): Parameter ist ein Array (z.B. `["$Unten", "$Oben"]`).
// -> Falsche Struktur führt zu "Level index has wrong type" Fehlern!
// 12. `$Error?` VARIABLE: Definiere `["$Error?", "bool", false]` im Level und `["Err","Fehler","$Error?","ce"]` im Output. Der Server setzt `$Error?` auf TRUE, wenn zur Laufzeit ein Fehler auftritt (z.B. Division durch Null). ESSENZIELL fürs Debugging!
// 13. LOGIK PAUSIERT (Gelber Rand): Wenn eine Logik im TWS-Editor einen gelben statt grünen Rand hat, ist sie pausiert und wird NICHT ausgeführt. Inputs bleiben auf Default, Outputs ändern sich nicht. Aktivieren nicht vergessen!
// 14. COPY/PASTE FEHLER: Unsichtbare Zeichen oder falsche Zeilenenden können den Parser stören. Code im Zweifel über einen einfachen Texteditor (Notepad etc.) zwischenkopieren.
// 15. NEGATION: Logisches NICHT geht **NICHT** mit `-`. Nutze das `Not`-Modul (falls es funktioniert) oder als Workaround `Comparator` mit Mode 0 gegen `$KonstFalse`. Diese Referenz verwendet den Workaround.
// 16. `$VAR<Inhibit?>`: Empfohlener Name für den boolschen Input des `Break`-Moduls.
// 17. `Statemachine` Persistenz: Der Zustand der Statemachine muss i.d.R. persistent gespeichert werden. Sicherster Weg: Output der SM in `$Calc_SM_Neu`, dann per `Latch` nach `$State_SM_Alt`.

Der Code (V4.1):

Der vollständige, kommentierte und (auf TWS 2600/3500 mit Not-Workaround) erfolgreich speicherbare Code befindet sich in der angehängten Datei TWS_CustomLogic_Reference_V4_1.txt.
Timberwolf Custom Logic - Umfassender Referenzcodeblock (V4.1).txt
Nutzung & Feedback:

Nutzt diese Datei gerne als Nachschlagewerk und als Kontext für eure AI-Assistenten. Wenn ihr Fehler findet, Verbesserungen habt oder weitere nützliche Beispiele (insbesondere für Statemachine!) beisteuern könnt, teilt es bitte hier, damit wir die nächste Version erstellen können!

Lizenz:

Der Code wird gemäß der TOLL ("Timberwolf Open Logikblock License") zur Verfügung gestellt (siehe https://wrgt.news/TOLL).

Viele Grüße,

eib-eg (Georg)

von der AI geschrieben
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
TW 2600_99 seit 1.1.2018 / VPN zu

jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#69

Beitrag von jhaeberle »

Die Datumsangaben… stimmt das???
V4.1 vom 1.8.24 und die 4.1 vom 1.8.24???
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

eib-eg
Reactions:
Beiträge: 560
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1560 Mal
Danksagung erhalten: 358 Mal

#70

Beitrag von eib-eg »

Ohhhh
Man sieht das ich es auch nicht 100% überprüft habe und die AI dabei einen Fehler gemacht hat.

Und noch was

Zitat
„Das sieht man leider, dass das AI Modell phantasiert wenn es nicht alle Informationen hat.
Es gibt gar kein "Not" Modul natürlich geht es mit dem Minuszeichen.“
Zitat Ende.

Dies ist eine interne Information und werde es bei der nächsten Version mit einfließen lassen.
TW 2600_99 seit 1.1.2018 / VPN zu
Antworten

Zurück zu „Erfolgsgeschichten“