Seite 18 von 18

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

Verfasst: Mi Aug 06, 2025 11:16 pm
von eib-eg
tja @cheater

du warst ja über whatsapp fast live dabei wie schnell das ging :laughing-rolling: :handgestures-thumbupright:

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

Verfasst: Mi Aug 06, 2025 11:18 pm
von cheater
Ja, ich bin tatsächlich beeindruckt. Der Praxistest wird zeigen, wie gut das funktioniert.

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

Verfasst: Mi Aug 06, 2025 11:51 pm
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

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

Verfasst: Mi Aug 06, 2025 11:56 pm
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

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

Verfasst: Do Aug 07, 2025 9:12 am
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

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

Verfasst: Do Aug 07, 2025 10:41 am
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

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

Verfasst: Do Aug 07, 2025 2:10 pm
von cheater
Also Jungs, ich wäre für ein KI Unterforum, in dem man die einzelnen Themen separat behandeln kann.

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

Verfasst: Do Aug 07, 2025 9:40 pm
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

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

Verfasst: Fr Aug 08, 2025 2:14 am
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

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

Verfasst: Fr Aug 08, 2025 6:36 am
von eib-eg
Holla
Jetzt wird es interessant
Ich mache heute Abend weiter