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

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

#121

Beitrag von Franky »

Das Problem ist, dass das Forum kein "Dateirepository" ist. Wer alte Dateien aus einem Thread verwendet, welcher sich weiterentwickelt hat und neue Infos (als Dateiupload oder Beitragstext) erhalten hat, ist imho "selbst Schuld".

Franky
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

#122

Beitrag von jhaeberle »

Ich finde es, auch persönlich, problematisch, solche, sich in rascher Entwicklung befindlicher, Dateien, über Forenposts auszutaschen. Ich selber bin gerade nicht in der Lage, da Schritt zu halten…

Mein aktueller Stand, den ich allerdings noch nicht mit dem TWS in Verbindung gebracht habe…
http://kilocode.ai - ein irrsinig beeindruckender Assistent für's Programmieren für Visual Studio Code, beide kostenlos. Man kann Kilo Code bspw. easy mit OpenRouter verbinden und dort kostenlose LLM verwenden, bspw DeepSeek, was ganz weit vorn beim Coden dabei sein soll, oder angeblich die nächste, noch unveröffentlichte Version von ChatGPT.
Auch eine lokale Instanz von Ollama funktioniert, falls jemand eine Nvidia Grafikkarte hat, eine lohnenswerte Variante, ich habe über ein Ollama-kompatibles Proxy Zugriff auf meine LLM bei Straico.com. Jedenfalls kann man einen Haufen an LLM-Anbietern verwenden und so auch seinen Coin-Verbrauch optimieren (Reasing-Modelle für Architekturdiskussionen, schnelle billige für die Coding-ausführung usw.)

Kilo Code kann ein Projektwissen aufbauen oder nutzen. Da kann man eingreifen oder/und die KI das machen lassen.

Desweiteren habe ich einen Doku-MCP entdeckt, https://context7.com, über den man auf tausende von aktuellen Dokus zugreifen kann. Damit kann man die KI dazu kriegen, dass sie aktuellen Code produziert und weniger haluziniert.

Eine Timberwolf Doku ist halt leider nicht verfügbar, aber es gibt Möglichkeiten, sowas bereit zu stellen, dazu muss man ein GitHub Repo entsprechend vorbereiten https://context7.com/add-library?tab=github

Arbeitet jemand von euch in eine ähnliche Richtung?
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)

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

#123

Beitrag von Franky »

jhaeberle hat geschrieben: Do Jun 12, 2025 11:41 am Ich finde es, auch persönlich, problematisch, solche, sich in rascher Entwicklung befindlicher, Dateien, über Forenposts auszutaschen. Ich selber bin gerade nicht in der Lage, da Schritt zu halten…
Ja, neue user sollten am besten immer den ganzen Thread lesen. Aber mir geht es wie Dir, es gibt zu viel Input. Dateien muss man am besten immer aus dem Thread rückwärts verfolgen, um die neuesten Dateistände zu erwischen.
jhaeberle hat geschrieben: Do Jun 12, 2025 11:41 am http://kilocode.ai - ein irrsinig beeindruckender Assistent für's Programmieren für Visual Studio Code, beide kostenlos. Man kann Kilo Code bspw. easy
sehr sehr geil. Bookmark ist gesetzt
jhaeberle hat geschrieben: Do Jun 12, 2025 11:41 am Eine Timberwolf Doku ist halt leider nicht verfügbar,
Ja, das hat mich auch abge****piep***. Eine nicht nur interaktive, sondern downloadbare und offline und maschinell vearbeitbare Doku wäre gut. Aber vielleicht ist das ein Cofluence-Problem. Ich habe bis 2021 auch mit Confluence Fachkonzepte und Dokus geschrieben, kann mich aber nicht mehr erinnern, ob und wie wir das für nicht Confluencenutzer gepublished haben. Ich meine es gab einen rekursiven PDF-Export, kann aber auch sein, dass ich das nur wünsche. Den automatisiert publishen lassen und das Problem wäre gelöst.

Aus seinem eigenen TWS kann man z.B. die Logikmodule downloaden.

Code: Alles auswählen

https://timberwolfXXX.fritz.box/le-config.json
"timberwolfXXX.fritz.box" muss gegen eure TWS URL ausgetauscht werden.

Das ist jetzt in meinen Dokugenerator (scraper, work in progress, Zwischenstand hier und hier. Aber ein riesen Aufwand alle Informationsschnippsel zusammenzutragen...

Code: Alles auswählen

 *Benachrichtigung_versenden_CSOV_SEND_TO_SIMPLE_V1.json
 *Regular_Expression_(large)_CSOV_REGEX_GROUPS_LARGE_V1.json
 *String_to_float_CSOV_STR_TO_FLOAT_V1.json
 *String_to_integer_CSOV_STR_TO_INT_V1.json
 *Fließkommazahl_im_Intervall_senden_CSOV_SEND_CONSTANT_ON_INTERVAL_FLOAT_V1.json
 *Hexadezimal_zu_Zahl_(Byte-Swap)_CSOV_HEX_TO_INT_BYTE_SWAP_V1.json
 *Hexadezimal_zu_Zahl_(Byte-_&_Word-Swap)_CSOV_HEX_TO_INT_BYTE_SWAP_WORD_SWAP_V1.json
 *Hexadezimal_zu_Zahl_CSOV_HEX_TO_INT_BASE_V1.json
 *Hexadezimal_zu_Zahl_(Word-Swap)_CSOV_HEX_TO_INT_WORD_SWAP_V1.json
 *Regular_Expression_CSOV_REGEX_GROUPS_V1.json
 *Ganzzahl_im_Intervall_senden_CSOV_SEND_CONSTANT_ON_INTERVAL_INT_V1.json
 *Text_im_Intervall_senden_CSOV_SEND_CONSTANT_ON_INTERVAL_STRING_V1.json
 *Map_boolean_to_integer_CSOV_MAP_BOOL_TO_INT_V1.json
 *Map_boolean_to_text_CSOV_MAP_BOOL_TO_STRING_V1.json
 *Shelly_BTN_Dekoder_ST_CSOV_SHELLY_BUTTON_V1.json
 *STROMSTOSS-SCHALTER_RM-IST_CSOV_CURRENT_IMPULSE_SWITCH_V1.json
 *Freie_Formel_CSOV_CALC_V1.json
 *Get_string_length_(up_to_512_bytes)_CSOV_STRING_STR_LEN.json
 *KONKATENIERE_String-OPD_CSOV_CONCAT_V1.json
 *KONV_bool_in__an_____aus__CSOV_STRING_CONVERT_TO_AN_AUS_V1.json
 *KONV_bool_in__auf_____zu__CSOV_STRING_CONVERT_TO_AUF_ZU_V1.json
 *KONV_bool_in__offen_____geschlossen__CSOV_STRING_CONVERT_TO_OFFEN_GESCHLOSSEN_V1.json
 *KONV_bool_in__on_____off__CSOV_STRING_CONVERT_TO_ON_OFF_V1.json
 *KONV_bool_in_String-OPD_CSOV_STRING_CONVERT_TO_CUSTOM_STRING_V1.json
 *KONV_bool_in__true_____false__CSOV_STRING_CONVERT_TO_TRUE_FALSE_STRING_V1.json
 *PRÜFE_String_IDENT_CIS_CSOV_STRING_EQUALS_CI_V1.json
 *PRÜFE_String_IDENT_CS_CSOV_STRING_EQUALS_V1.json
 *PRÜFE_String_Include_CIS_CSOV_STRING_INCLUDES_CI_V1.json
 *PRÜFE_String_Include_CS_CSOV_STRING_INCLUDES_V1.json
 *PRÜFE_String_Start_CIS_CSOV_STRING_STARTSWITH_CI_V1.json
 *PRÜFE_String_START_CS_CSOV_STRING_STARTSWITH_V1.json
 *SHELLY_BTN_DEKODER_MT_CSOV_SHELLY_BUTTON_EXPLICIT_V1.json
 *String_format_(float)_CSOV_PRINTF_FLOAT_V1.json
 *String_format_(int)_CSOV_PRINTF_INT_V1.json
 *String_format_(string)_-_in_development_CSOV_PRINTF_STR_V1.json
 *Beschattung_CSOV_SHADING_V1.json
 *Betriebsstundenzähler1_CSOV_Hobbs_Meter1_V1.json
 *Betriebsstundenzähler2_CSOV_Hobbs_Meter2_V1.json
 *Dim-Aktor_CSOV_DIM_V1.json
 *Lastabwurf_CSOV_ROLLING_BLACKOUT_V1.json
 *PWM_CSOV_PWM_V1.json
 *Rampe_CSOV_RAMP_V1.json
 *RS-FlipFlop_CSOV_RS_FLIPFLOP_V1.json
 *Statistik_CSOV_Statistic_V1.json
 *Stoppuhr_CSOV_Stopwatch_V1.json
 *Stoppuhr+Hold_CSOV_Stopwatch_Hold_V1.json
 *Uhr-Zeit_CSOV_LOCALTIME1_V1.json
 *Unix-Zeit-Wandler_CSOV_LOCALTIME2_V1.json
 *Wakeup_CSOV_Wakeup_V1.json
 *Addition_CSOV_Addition_V1.json
 *Division_CSOV_Ratio_V1.json
 *Multiplexer(float)_CSOV_Multiplexer(float)_V1.json
 *Multiplexer(integer)_CSOV_Multiplexer(integer)_V1.json
 *Multiplexer(string)_CSOV_Multiplexer(string)_V1.json
 *Multiplikation_CSOV_Multiplication_V1.json
 *PID_awu_CSOV_PID_awu_V1.json
 *PID_CSOV_PID_V1.json
 *Polynomfunktion_CSOV_Polynomial_V1.json
 *Multiplexer(bool)_CSOV_Multiplexer(bool)_V1.json
 *Tiefpass_CSOV_Tiefpass_V1.json
 *Timer1_CSOV_Timer1_V1.json
 *Timer2_CSOV_Timer2_V1.json
 *Timer3_CSOV_Timer3_V1.json
 *Timer4_CSOV_Timer4_V1.json
 *Timer5_CSOV_Timer5_V1.json
 *Timer6_CSOV_Timer6_V1.json
 *Timer7_CSOV_Timer7_V1.json
 *Timer8_CSOV_Timer8_V1.json
 *ASTRO_geo_CSOV_ASTRO_geo_V1.json
 *ASTRO_local_CSOV_ASTRO_local_V1.json
 *Begrenzer_CSOV_Begrenzer_V1.json
 *Binärdemultiplexer_CSOV_Binärdemultiplexer_V1.json
 *Binärmultiplexer_CSOV_Binärmultiplexer_V1.json
 *Binär-Statistik_CSOV_BinärStatistik_V1.json
 *Kalender-Timer_CSOV_Kalender-Timer_V1.json
 *ODER-Verknüpfung_CSOV_OR_V1.json
 *Schwellwertschalter_CSOV_Schwellwertschalter_V1.json
 *Schwellwertschalter(Hyst.)_CSOV_Schwellwertschalter(Hyst.)_V1.json
 *Taktsignal_CSOV_Taktsignal_V1.json
 *XOR_CSOV_XOR_V1.json
 *UND-Verknüpfung_CSOV_AND_V1.json
Beispiel Beschattung

Code: Alles auswählen

{
  "_Meta": {
    "Description": "<h2>Beschattung</h2><p>Beschattungsteuerung für Raffstore</p>",
    "Version": "1.00"
  },
  "Level": [
    [
      "$BeschattungEin",
      "bool",
      false
    ],
    [
      "$LuxAussen",
      "float",
      50000.0
    ],
    [
      "$LuxSchwelleDunkel",
      "float",
      300.0
    ],
    [
      "$LuxSchwelleHell",
      "float",
      1000.0
    ],
    [
      "$AussenHell",
      "bool",
      false
    ],
    [
      "$SonnenHoehe",
      "float",
      0
    ],
    [
      "$HoeheStart",
      "float",
      0.0
    ],
    [
      "$HoeheEnde",
      "float",
      90.0
    ],
    [
      "$HoeheInnerhalb",
      "bool",
      false
    ],
    [
      "$SonnenAzimut",
      "float",
      0
    ],
    [
      "$AzimutStart",
      "float",
      90.0
    ],
    [
      "$AzimutEnde",
      "float",
      270.0
    ],
    [
      "$AzimutInnerhalb",
      "bool",
      false
    ],
    [
      "$BeschattungAktiv",
      "bool",
      false
    ],
    [
      "$RaffPosAus",
      "float",
      0.0
    ],
    [
      "$RaffPosEin",
      "float",
      100.0
    ],
    [
      "$RaffPosOut",
      "float",
      0.0
    ],
    [
      "$LamellePosZu",
      "float",
      100.0
    ],
    [
      "$LamellePosOffen",
      "float",
      0.0
    ],
    [
      "$LamellePosDiff",
      "float",
      0.0
    ],
    [
      "$LamellePosSteigung",
      "float",
      0.0
    ],
    [
      "$LamellePosOffset",
      "float",
      0.0
    ],
    [
      "$HoeheZu",
      "float",
      10.0
    ],
    [
      "$HoeheOffen",
      "float",
      50.0
    ],
    [
      "$HoeheDiff",
      "float",
      50.0
    ],
    [
      "$HoeheLimit",
      "float",
      0
    ],
    [
      "$LamellePosEin",
      "float",
      0.0
    ],
    [
      "$LamellePosOut",
      "float",
      0.0
    ],
    [
      "$LamellePosStep",
      "float",
      5.0
    ],
    [
      "$LamellePosStpOut",
      "float",
      0.0
    ],
    [
      "$EinsKonst",
      "float",
      1.0
    ],
    [
      "$VAR<Inhibit?>",
      "bool",
      false
    ]
  ],
  "Module": [
    [
      "Break",
      [
        "$VAR<Inhibit?>"
      ]
    ],
    [
      "Comparator",
      "$LuxAussen",
      "$AussenHell",
      [
        "$LuxSchwelleDunkel",
        "$LuxSchwelleHell"
      ]
    ],
    [
      "Limiter",
      "$SonnenHoehe",
      0,
      "$HoeheInnerhalb",
      [
        "$HoeheStart",
        "$HoeheEnde"
      ]
    ],
    [
      "Limiter",
      "$SonnenAzimut",
      0,
      "$AzimutInnerhalb",
      [
        "$AzimutStart",
        "$AzimutEnde"
      ]
    ],
    [
      "And",
      [
        "$BeschattungEin",
        "$AussenHell",
        "$HoeheInnerhalb",
        "$AzimutInnerhalb"
      ],
      "$BeschattungAktiv"
    ],
    [
      "Multiplexer",
      [
        "$RaffPosAus",
        "$RaffPosEin"
      ],
      "$RaffPosOut",
      "$BeschattungAktiv"
    ],
    [
      "Limiter",
      "$SonnenHoehe",
      "$HoeheLimit",
      0,
      [
        "$HoeheZu",
        "$HoeheOffen"
      ]
    ],
    [
      "Polynomial",
      "$LamellePosOffen",
      "$LamellePosDiff",
      [
        "-$LamellePosZu",
        "$EinsKonst"
      ]
    ],
    [
      "Polynomial",
      "$HoeheOffen",
      "$HoeheDiff",
      [
        "-$HoeheZu",
        "$EinsKonst"
      ]
    ],
    [
      "Ratio",
      "$LamellePosDiff",
      "$LamellePosSteigung",
      "$HoeheDiff"
    ],
    [
      "Polynomial",
      "$HoeheZu",
      "$LamellePosOffset",
      [
        "$LamellePosZu",
        "-$LamellePosSteigung"
      ]
    ],
    [
      "Polynomial",
      "$HoeheLimit",
      "$LamellePosEin",
      [
        "$LamellePosOffset",
        "$LamellePosSteigung"
      ]
    ],
    [
      "Multiplexer",
      [
        "$LamellePosOffen",
        "$LamellePosEin"
      ],
      "$LamellePosOut",
      "$BeschattungAktiv"
    ],
    [
      "Step",
      "$LamellePosOut",
      "$LamellePosStpOut",
      0,
      "$LamellePosStep",
      0
    ]
  ],
  "Input": [
    [
      "Steuerung Ein",
      "Beschattungssteuerung einschalten",
      "$BeschattungEin",
      "c"
    ],
    [
      "Lux",
      "Aussenhelligkeit",
      "$LuxAussen",
      "c"
    ],
    [
      "SchwelleDunkel",
      "untere Schwelle für Aussenhelligkeit",
      "$LuxSchwelleDunkel",
      "c"
    ],
    [
      "SchwelleHell",
      "obere Schwelle für Aussenhelligkeit",
      "$LuxSchwelleHell",
      "c"
    ],
    [
      "SonnenHoehe",
      "Winkel des Sonnenstands über dem Horizont",
      "$SonnenHoehe",
      "c"
    ],
    [
      "HoeheBegin",
      "Höhenuntergrenze für Beschattung",
      "$HoeheStart",
      "c"
    ],
    [
      "HoeheEnde",
      "Höheobergrenze für Beschattung",
      "$HoeheEnde",
      "c"
    ],
    [
      "Sonnenrichtung",
      "Richtungswinkel des Sonnenstands",
      "$SonnenAzimut",
      "c"
    ],
    [
      "RichtungBegin",
      "Richtungswinkel für Start der Beschattung",
      "$AzimutStart",
      "c"
    ],
    [
      "RichtungEnde",
      "Richtungswinkel für Ende der Beschattung",
      "$AzimutEnde",
      "c"
    ],
    [
      "RaffPosAus",
      "Position für Raffstore bei inaktiver Beschattung",
      "$RaffPosAus",
      "c"
    ],
    [
      "RaffPosEin",
      "Position für Raffstore bei aktiver Beschattung",
      "$RaffPosEin",
      "c"
    ],
    [
      "LamellePosOffen",
      "Position für Lamellen bei inaktiver Beschattung",
      "$LamellePosOffen",
      "c"
    ],
    [
      "LamellePosZu",
      "Position für Lamellen bei aktiver Beschattung",
      "$LamellePosZu",
      "c"
    ],
    [
      "HoeheZu",
      "Sonenhöhe bei der die Lamellennachführung startet",
      "$HoeheZu",
      "c"
    ],
    [
      "HoeheOffen",
      "Sonenhöhe bei der die Lamellennachführung endet",
      "$HoeheOffen",
      "c"
    ],
    [
      "LamelleStep",
      "Schrittweite für Lamellennachführung",
      "$LamellePosStep",
      "c"
    ],
    [
      "Inhibit",
      "Inhibit",
      "$VAR<Inhibit?>",
      "u"
    ]
  ],
  "Output": [
    [
      "RaffPos",
      "Aktuelle Position für Raffstore",
      "$RaffPosOut",
      "c"
    ],
    [
      "LamellePos",
      "Aktuelle Position für Lamellen",
      "$LamellePosStpOut",
      "c"
    ]
  ]
}
Zuletzt geändert von Franky am Sa Jun 14, 2025 5:39 pm, insgesamt 2-mal geändert.
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10702
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5303 Mal
Danksagung erhalten: 8685 Mal
Kontaktdaten:

#124

Beitrag von StefanW »

jhaeberle hat geschrieben: Do Jun 12, 2025 11:41 am Eine Timberwolf Doku ist halt leider nicht verfügbar,
Ja, das hat mich auch abge****piep***. [/quote]

Ein solches Wording - trotz Piep - ist in diesem Forum nicht angemessen.

Wenn es eine bislang nicht erhobene Anforderung seitens der Nutzer gibt, dann bitte dahingehend den offiziellen Weg gehen, das heißt zuerst eine Diskussion um sich über ein neues Feature abzustimmen und bei ausreichend Interesse daraus dann einen Feature Request formulieren, bitte gerne mit Angabe, welche andere Entwicklung wir dafür zurückstellen sollen.

Weil wir können keine ungestellten Rätsel lösen, aber wir reißen uns gerne jedes Bein aus, um Wünsche zu erfüllen, wobei das immer auch finanzierbar sein muss.

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

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

#125

Beitrag von Franky »

Ja sorry, das war so vom Wording nicht schön. Sollte auch keine Kritik an ElebaNET sein. Alle Entscheidungen und Tools haben i.d.R auch Schattenseiten oder Verbesserungsmöglichkeiten.

Die interaktive Doku hat ja auch wesentlich mehr Vorteile als Nachteile (mehrere Autoren, Suche, Querverweise, automatisches Changelog, Rücknahme von Änderungen, Protokollierung von Änderungen, ...). Und mit ein bisschen Aufwand, kann man ja auch einen Downloader schreiben.

Franky
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.
Antworten

Zurück zu „Erfolgsgeschichten“