NEU! ekey New Generation mit TWS als HTTP-Server konfigurieren
Komplette Anleitung hier im Forum


NEU! HTTP-/REST-API jetzt auch in der Rolle des TWS als HTTP-Server
Viele Details dazu hier im Forum

Upgrade: Digest Access Authentication im Subsystem HTTP-/REST-API Client
Upgrade: 361 neue Icons & kompletter Refresh aller Icons für VISU und Admin-UI
Upgrade: Dekodierung für sieben weitere DPT im Busmonitor
Upgrade: Verbesserung im Logik Manager bei Modul "SendExplicit"
Upgrade: Verbesserte und erweiterte Benutzerverwaltung bei "Passwort vergessen" der Elab ID

Jetzt in der Insider Version 8 zur 4.5 - 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

eib-eg
Reactions:
Beiträge: 629
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1600 Mal
Danksagung erhalten: 401 Mal

#171

Beitrag von eib-eg »

tja @cheater

du warst ja über whatsapp fast live dabei wie schnell das ging :laughing-rolling: :handgestures-thumbupright:
TW 2600_99 seit 1.1.2018 / VPN zu

cheater
Reactions:
Beiträge: 705
Registriert: Sa Aug 11, 2018 11:16 pm
Hat sich bedankt: 467 Mal
Danksagung erhalten: 321 Mal

#172

Beitrag von cheater »

Ja, ich bin tatsächlich beeindruckt. Der Praxistest wird zeigen, wie gut das funktioniert.
Zuletzt geändert von cheater am Mi Aug 06, 2025 11:20 pm, insgesamt 1-mal geändert.
Grüße, Dominic

Timberwolf 2400 #126, VPN offen, Reboot nach Absprache

AndererStefan
Reactions:
Beiträge: 300
Registriert: Sa Mär 02, 2024 11:04 am
Hat sich bedankt: 157 Mal
Danksagung erhalten: 195 Mal

#173

Beitrag von AndererStefan »

Ich mag es, wenn wenn Code kommentiert ist (Kurzbeschreibung der Funktion, Strukturierung, ggf. Erläuterungen, etc….)

@eib-eg: Ist es eine bewusste Entscheidung, dass die KI den Code nicht kommentiert?

VG Stefan
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache

eib-eg
Reactions:
Beiträge: 629
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1600 Mal
Danksagung erhalten: 401 Mal

#174

Beitrag von eib-eg »

nein es ist keine bewusste entscheidung
wenn ich es ihr sage dann macht sie das auch


und gerade noch vorm bett gehen die Referenz-Anleitung für Mensch und AI (V4.78.0) datei erstellen lassen
mit den neuen Send Explicit (Modulbaustein) sowie die syntax datei selber noch dazu
Zuletzt geändert von eib-eg am Mi Aug 06, 2025 11:58 pm, insgesamt 1-mal geändert.
TW 2600_99 seit 1.1.2018 / VPN zu
Benutzeravatar

speckenbuettel
Reactions:
Beiträge: 403
Registriert: Mo Jun 27, 2022 9:30 am
Hat sich bedankt: 317 Mal
Danksagung erhalten: 244 Mal

#175

Beitrag von speckenbuettel »

eib-eg hat geschrieben: Mi Aug 06, 2025 9:25 pm Ziel: Uhrzeit der Heizungsanlage korrigieren/aktualisieren
Hallo Georg,

vielen Dank für das Umsetzen meiner Anforderungen in eine Custom-Logik - und schön, dass dabei auch noch die Anleitung verbessert werden konnte.

Die Logik funktioniert - zumindest im Prinzip.

Es gibt/gab drei Fehler:

1. - 2. Die KI hat sich strikt an die Erläuterung des Bausteins "Localtime" gehalten. Darin steht, dass das Jahr ab 1900 und der Monat von 0 bis 11 ausgegeben werden. Demnach müsste zum Jahr der Wert 1900 und zum Monat der Wert 1 hinzuaddiert werden. Und das wird im ursprünglichen Code auch umgesetzt. Beides stimmt aber nicht, insofern scheint die Anleitung im Wiki falsch zu sein. Tatsächlich gibt der Baustein Jahr und Monat korrekt aus, sodass durch die Addition das jahr zu "3935" und der aktuelle Monat zu "09" werden. Das habe ich selbst behoben, indem ich die Korrektur einfach weglasse.
Das ist aber kein Fehler beim Erstellen der Logik durch die KI, sondern eine falsche Information im Wiki.

3. Aus bisher unerfindliche Gründen ergänzt der Baustein Concat den endgültigen String um Leerzeichen zwischen allen Elementen. Die Syntax ist aus meiner Sicht korrekt:

Code: Alles auswählen

        [ "Concat", [ "$Lgc_JJJJ_Str", "$Lgc_MM_Str", "$Lgc_TT_Str", "$Lgc_WW_Str", "$Lgc_HH_Str", "$Lgc_MinMin_Str", "$Lgc_SS_Str" ], "$Lgc_Zeitstempel_Dynamisch" ],
        [ "Concat", [ "$Konst_Prefix", "$Lgc_Zeitstempel_Dynamisch" ], "$O_Viessmann_Zeitstring" ]
Dennoch kommt das hier dabei heraus:
Bild

Das wird natürlich als Befehl an die Heizung nicht funktionieren.

Leider kann ich nicht nachvollziehen, warum das so ist. Die einzelnen String-Bausteine sind laut Doktormodus immer nur zweistellig:
Bild

Aber schon der zusammengesetzte Zeitstring, bevor er mit dem Präfix konkateniert wird, ist falsch:
Bild

Auch der Konkatenieren-Befehl, der das Präfix und den dynamischen Zeitstring zusammensetzt, bastelt ein ungewolltes Leerzeichen dazwischen.

Also wird der finale String zu

w;0x088E;8;0x 2025 08 07 0408 54 18

Korrekt wäre

w;0x088E;8;0x2025080704085418


Ich sehe wie gesagt keinen Fehler in der Syntax. Andererseits habe ich schon andere Customlogiken erstellt, die mir aus Werten (z. B. von der Visu) MQTT-Strings für die Heizung zusammenstellen; dort habe ich das Phänomen mit den ungewollten Leerzeichen nicht.

Hast du eine Idee, warum das hier so ist?

Vielen Dank und viele Grüße
Falk
Vielen Dank und viele Grüße
Falk

TWS 3500M ID:810 - VPN aktiv - Reboot nach Absprache
1-Wire, KNX (MDT u. a.), EnOcean (Eltako u. a.), Gira TKS, ekey multi

eib-eg
Reactions:
Beiträge: 629
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1600 Mal
Danksagung erhalten: 401 Mal

#176

Beitrag von eib-eg »

Oh
Danke
Ich lasse am Abend deine Info überprüfen und mit einarbeiten
Dann sind wir bei Version 4.78 wenn Fehler erkannt werden
TW 2600_99 seit 1.1.2018 / VPN zu

cheater
Reactions:
Beiträge: 705
Registriert: Sa Aug 11, 2018 11:16 pm
Hat sich bedankt: 467 Mal
Danksagung erhalten: 321 Mal

#177

Beitrag von cheater »

Also Jungs, ich wäre für ein KI Unterforum, in dem man die einzelnen Themen separat behandeln kann.
Grüße, Dominic

Timberwolf 2400 #126, VPN offen, Reboot nach Absprache

eib-eg
Reactions:
Beiträge: 629
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1600 Mal
Danksagung erhalten: 401 Mal

#178

Beitrag von eib-eg »

@speckenbuettel

so ich muss erst mal einen großen DANK aussprechen denn durch deine rückmeldung wurde soeben die version 4.79 erstellt sowie die syntax datei

zum testen hat die ki eine neue datei erstellt er hat sich auf meinen test wolf speichern lassen

Viessmann Zeit-Synchronisation 2.0.txt
sowie die angaben der ki hier weitergegben

ab jetzt ki
___________________
Praxistest der Viessmann-Logik: Die Logik muss nun im Doktormodus ausgeführt werden, um den generierten Ausgangsstring ($O_Viessmann_Zeitstring) zu überprüfen. Das Ziel ist es, zu bestätigen, dass die Leerzeichen nun tatsächlich eliminiert sind und der String das exakte Format w;0x088E;8;0xJJJJMMTTWWHHMMSS aufweist.

Feedback von speckenbuettel: Nach erfolgreichem internen Test kannst du die Logik weitergeben und auf sein finales Feedback warten.

Ich habe alle neuen Erkenntnisse und die erfolgreiche Validierung der Speicherbarkeit mental verankert. Die Version V4.79.0 des Kanons und der Implementierung sind damit als stabil anzusehen.
_____________________
ende ki
sowie

ab jetzt ki text
___________________
Hallo zusammen,

kurze Info aus einem aktuellen Projekt, die vielleicht für andere auch nützlich ist oder in der Doku präzisiert werden kann.

1. Localtime:
Das Modul liefert Jahr und Monat (1-12) direkt korrekt. Man muss also nicht +1900 oder +1 rechnen. Die alte Annahme war falsch.

2. Printf + Concat:
Hatte das Problem, dass Concat plötzlich Leerzeichen zwischen den Teilen eingefügt hat.
Ursache: Printf macht bei der Umwandlung von Zahlen in Strings (mit z.B. %d) standardmäßig Füll-Leerzeichen für die Ausrichtung rein.
Lösung:
a) Alle Zahlen mit präzisem Format (%02d etc.) einzeln per Printf in Strings wandeln.
b) Dann alle Teile in einem einzigen Concat zusammenfügen.

So funktioniert es ohne die ungewollten Leerzeichen. Vielleicht hilft das ja jemandem oder dem ElabNET-Team bei der Doku.

Danke an speckenbuettel, durch dessen Aufgabe wir das gefunden haben.
________________
ende ki txt
ich hoffe ich bekomme wider so eine rückmeldung
nochmals danke dafür
somit wird der promt besser
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von eib-eg am Do Aug 07, 2025 9:48 pm, insgesamt 1-mal geändert.
TW 2600_99 seit 1.1.2018 / VPN zu
Benutzeravatar

speckenbuettel
Reactions:
Beiträge: 403
Registriert: Mo Jun 27, 2022 9:30 am
Hat sich bedankt: 317 Mal
Danksagung erhalten: 244 Mal

#179

Beitrag von speckenbuettel »

Hallo Georg,

vielen Dank, auch an deine KI.

Freut mich, dass diese Aufgabe zur Verbesserung der KI-Vorlage beitragen konnte.

Das Problem mit Jahr und Datum ist somit gelöst - aber das hatte ich ja auch selbst schon erkannt und beseitigt.

Das Problem mit den Leerzeichen bleibt leider weiterhin bestehen:
Bild

Hier hat deine KI das gemacht, was ChatGPT bei mir auch immer macht: sie tut so, als habe sie das Problem erhakannt, schreibt etwas dazu, ändert vielleicht die Syntax - aber das Problem bleibt bestehen.

Deine KI hat geschrieben, dass das Problem dadurch gelöst werden kann, dass eindeutige Formate für die PRINTF-Funktion vorgegeben werden. Das hat sie aber auch schon vorher getan, in der ersten Version der Syntax. Hier wurde die Syntax also nicht verbessert.
Die hat lediglich die zwei KONKAT-Funktionen zu einer einzigen zusammengefügt. Das löst aber das Leerzeichen-Problem auch nicht.

Ich verstehe weiterhin nicht, warum dieses Leerzeichen-Problem in dieser Custom-Logik auftritt. Ich kann es gezielt reproduzieren: wenn ich z. B. den Präfix-String im Level in zwei einzelne Strings aufteile

Code: Alles auswählen

        [ "$Konst_Prefix1", "string,16", "w;0x088E;" ],
        [ "$Konst_Prefix2", "string,16", "8;0x" ],
und diese dann weiter unten wieder zusammensetze, dann erscheint dazwischen ebenfalls ein Leerzeichen.

Wenn ich eine neue KONKAT-Logik erstelle und diese beiden Strings als Eingänge habe, dann funktioniert es ohne Leerzeichen:
Bild

Und was die Bestandteile des Datum-Uhrzeit-Strings anbetrifft: im Screenshot des Doktormodus (letzter Beitrag) sieht man ja schon, dass die Teilstrings In diesem Fall $L_gc_MinMin_Str) kein Leerzeichen am Ende enthalten (zumindest nicht in der Grafana-Tabelle; wenn ich den Text selektiere dann sehe ich dort nur die zwei Zeichen, kein leerzeichen davor oder dahinter.

Es bleibt also weiterhin mysteriös, woher die Leerzeichen in dem Gesamtstring kommen. Denn, wie gesagt, in einer anderen Custom-Logik, mit der ich mir MQTT-Befehle für die Heizung zusammensetze, bastelt KONKAT keine Leerzeichen hinzu:

Bild

Code: Alles auswählen


{

    "Level": [
        [
            "$Value",
            "integer",
            0
        ],
        [
            "$Address",
            "string,32",
            ""
        ],
        [
            "$Length",
            "integer",
            1
        ],
        [
            "$Delay",
            "float",
            5
        ],
        [
            "$StringWrite",
            "string",
            "write;"
        ],
        [
            "$StringRead",
            "string",
            "read;"
        ],
        [
            "$StringFormat",
            "string",
            ";%d"
        ],
        [
            "$Str_Value",
            "string",
            ""
        ],
        [
            "$Str_Length",
            "string",
            "1"
        ],
        [
            "$Str_Factor",
            "string",
            ";1"
        ],
        [
            "$OutWrite",
            "string,32",
            ""
        ],
        [
            "$OutRead",
            "string,32",
            ""
        ],
        [
            "$DoRead",
            "bool",
            false
        ],
        [
            "$ConstTrue",
            "bool",
            true
        ],
        [
            "$ConstFalse",
            "bool",
            false
        ],
        [
            "$VAR<Inhibit?>",
            "bool",
            false
        ]
    ],

    "Module": [
        [
            "Break", [
                "$VAR<Inhibit?>"
                ]
        ],
        [
            "Printf",
                "$Value",
                "$StringFormat",
                "$Str_Value"
        ],
        [
            "Printf",
                "$Length",
                "$StringFormat",
                "$Str_Length"
        ],
        [
            "Concat", [
                "$StringWrite",
                "$Address",
                "$Str_Length",
                "$Str_Value"
                ],
                "$OutWrite"
        ],
        [
            "Concat", [
                "$StringRead",
                "$Address",
                "$Str_Length",
                "$Str_Factor"
                ],
                "$OutRead"
        ],
        [
            "Monoflop",
                "$ConstTrue",
                "$ConstFalse",
                "-$DoRead",
                "$Delay",
                0
        ],
        [
            "SendExplicit",
                "$DoRead",
                "$OutRead",
                1
        ]
   ],

   "Input": [
        [
            "Eingang",
            "Eingangswert",
            "$Value",
            "c"
        ],
        [
            "Adresse",
            "Viessmann-Adresse (hex-Format, z. B. 0x1234)",
            "$Address",
            "u"
        ],
        [
            "Verzögerung",
            "Abfrageverzögerung [s]",
            "$Delay",
            "u"
        ]
   ],

   "Output": [
        [
            "Wert setzen",
            "Text für Schreibbefehl",
            "$OutWrite",
            "c"
        ],
        [
            "Wert abfragen",
            "Text für Lesebefehl",
            "$OutRead",
            "x"
        ]
    ]

}

Bild

:confusion-scratchheadyellow: :confusion-scratchheadyellow: :confusion-scratchheadyellow:

Vielen Dank und viele Grüße
Falk
Vielen Dank und viele Grüße
Falk

TWS 3500M ID:810 - VPN aktiv - Reboot nach Absprache
1-Wire, KNX (MDT u. a.), EnOcean (Eltako u. a.), Gira TKS, ekey multi

eib-eg
Reactions:
Beiträge: 629
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1600 Mal
Danksagung erhalten: 401 Mal

#180

Beitrag von eib-eg »

Holla
Jetzt wird es interessant
Ich mache heute Abend weiter
TW 2600_99 seit 1.1.2018 / VPN zu
Antworten

Zurück zu „Erfolgsgeschichten“