Seite 3 von 4
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: Fr Mai 15, 2026 4:33 pm
von Henri44
Hallo Stefan,
beim ersten Post war beim RegEX der Output auf "Float" gestellt, das hat mit einem "." in String nicht funktioniert.
Bei der Custom Logik, gleiches Problem bei der Konvertierung. Ich denke euer Dispatcher hat mit dem "." im String ein Problem.
Mit vielen Grüßen
Henri
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: Fr Mai 15, 2026 4:49 pm
von AndererStefan
Ja moment,
das heisst bei der Logik im ersten Post wurde der Str-Output des RegEx Modul auf einen Float-Level Output geschrieben? Das funktioniert afaik nicht. An dieser Stelle findet keine automatische Konvertierung statt.
Jetzt bei der aktualisierten Logik hat du eine explizite Konvertierung Str-Float eingebaut. Die führt aber zu der Fehlermeldung „conversion Error“?
Dann Nimm doch bitte (für einen Test) mal den Str-Output der neuen RegEx-Logik und versuche damit in der Multiplikator-Logik zu rechnen. In dieser Konstellation müsste/sollte der Dispatcher automatisch konvertieren.
VG
Stefa
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: Fr Mai 15, 2026 5:26 pm
von Henri44
Wie gewünscht.
Letztendlich brauche ich aus diesem String:
voltage=220;;;; current=7.1;;;; output_load=25;;;; frequency=49.9;;;;
die Watt.
Evtl. ist es einfacher, wenn du einmal copy/paste machst. Wenn im Wert kein "." enthalten ist, funktioniert die Logik, mit "." nicht.
Danke und viele Grüße
Henri
{
"Level": [
["$InString", "string", ""],
["$Expression","string","voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"],
["$HasMatch","bool",false],
["$Match", "string", ""],
["$LoadStr", "string", ""],
["$VoltageStr", "string", ""],
["$CurrentStr", "string", ""],
["$VoltageFloat", "float", 0.0],
["$CurrentFloat", "float", 0.0],
["$LoadFloat", "float", 0.0],
["$Group4", "string", ""],
["$Group5", "string", ""],
["$Formula","string","X1*X2"]
],
"Input": [
["CheckMK Data", "SNMP data from CheckMK", "$InString", "c"]
],
"Module": [
[
"Regex",
"$InString",
"$Expression",
"$HasMatch",
"$Match",
"$VoltageStr",
"$CurrentStr",
"$LoadStr",
"$Group4",
"$Group5"
],
["CalcFormula",["$VoltageStr","$CurrentStr"],"$LoadFloat","$Formula"]
],
"Output": [
["Voltage", "Converted Voltage", "$VoltageFloat", "c"],
["Current", "Converted Current", "$CurrentFloat", "c"],
["Load", "Converted Load", "$LoadFloat", "c"]
]
}

Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: Sa Mai 16, 2026 7:25 pm
von eib-eg
bitte logik testen
ist speicherbar, selber nicht getestet
und nicht überschreiben der logik sondern neu anlegen bitte
/**
* Logik-Name: CheckMK_Power_Fix_V1
* Beschreibung: Extrahiert Voltage/Current via Regex und berechnet Watt.
* Härtung: Puffer-Isolation (Regel 1.235) & muParser-Typ-Parität.
* Version: 1.0.0
* Autor: KI-Chirurg / eib-eg Gruppe
* Kanon-Referenz: V8.02.43
*/
{
"_Meta": {
"Name": "CheckMK Power Fix",
"Description": "Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.",
"Version": "1.0.0",
"Kanon_Version": "V8.02.43"
},
"Level": [
["$InString", "string,128", ""],
["$Expression", "string,128", "voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"],
["$HasMatch", "bool", false],
["$Match", "string,64", ""],
["$VoltageStr", "string,64", ""],
["$CurrentStr", "string,64", ""],
["$LoadStr", "string,64", ""],
["$Group4", "string,64", ""],
["$Group5", "string,64", ""],
["$VoltageFloat", "float", 0.0],
["$CurrentFloat", "float", 0.0],
["$LoadFloat", "float", 0.0],
["$O_Power_W", "float", 0.0],
["$F_Multiply", "string", "X1 * X2"],
["$Konst_True", "bool", true],
["$Error?", "bool", false]
],
"Module": [
// 1. Extraktion der Teilstrings (Puffer sind durch string,64 gehärtet)
[
"Regex",
"$InString",
"$Expression",
"$HasMatch",
"$Match",
"$VoltageStr",
"$CurrentStr",
"$LoadStr",
"$Group4",
"$Group5"
],
// 2. Explizite Wandlung von String nach Float (Regel 1.301)
["STR->FLOAT", "$VoltageStr", "$VoltageFloat"],
["STR->FLOAT", "$CurrentStr", "$CurrentFloat"],
["STR->FLOAT", "$LoadStr", "$LoadFloat"],
// 3. Mathematische Verarbeitung der Floats (muParser-Sicherheit)
["CalcFormula", ["$VoltageFloat", "$CurrentFloat"], "$O_Power_W", "$F_Multiply"]
],
"Input": [
["CheckMK Data", "SNMP data string", "$InString", "c"]
],
"Output": [
["Voltage (V)", "Extrahiert", "$VoltageFloat", "c"],
["Current (A)", "Extrahiert", "$CurrentFloat", "c"],
["Load (%)", "Extrahiert", "$LoadFloat", "c"],
["Power (W)", "Berechnet: V * A", "$O_Power_W", "c"],
["Err", "Fehlerzustand", "$Error?", "ce"]
]
}
mfg
eib-eg Georg
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: Sa Mai 16, 2026 7:31 pm
von eib-eg
und für die jenigen die wissen wollen was jede zeile macht im code eine beschreibung dabei
/**
* Logik-Name: CheckMK Power Fix (Kommentiert)
* Beschreibung: Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.
* Version: 1.0.1
* Autor: KI-Chirurg / eib-eg Gruppe
* Kanon-Referenz: V8.02.43
*/
{
"_Meta": {
"Name": "CheckMK Power Fix",
"Description": "Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.",
"Version": "1.0.1",
"Author": "KI-Chirurg / eib-eg Gruppe",
"Kanon_Version": "V8.02.43"
},
"Level": [
["$InString", "string,128", ""], // Speicher für den ankommenden Text-String (max 128 Zeichen)
["$Expression", "string,128", "voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"], // Das Suchmuster (Regex) für die Werte
["$HasMatch", "bool", false], // Merker: Wurde das Suchmuster im Text gefunden? (true/false)
["$Match", "string,64", ""], // Puffer für den gesamten Textabschnitt, der zum Muster passt
["$VoltageStr", "string,64", ""], // Puffer für die extrahierte Spannung als Text (z.B. "220")
["$CurrentStr", "string,64", ""], // Puffer für den extrahierten Strom als Text (z.B. "7.1")
["$LoadStr", "string,64", ""], // Puffer für die extrahierte Last als Text (z.B. "25")
["$Group4", "string,64", ""], // Platzhalter für ungenutzte 4. Suchgruppe (Pflicht für Modul-Signatur)
["$Group5", "string,64", ""], // Platzhalter für ungenutzte 5. Suchgruppe (Pflicht für Modul-Signatur)
["$VoltageFloat", "float", 0.0], // Die gewandelte Spannung als echte Zahl für Berechnungen
["$CurrentFloat", "float", 0.0], // Der gewandelte Strom als echte Zahl für Berechnungen
["$LoadFloat", "float", 0.0], // Die gewandelte Last als echte Zahl für Berechnungen
["$O_Power_W", "float", 0.0], // Das Endergebnis der Leistungsberechnung (Watt)
["$F_Multiply", "string", "X1 * X2"], // Die mathematische Formel für die Multiplikation
["$Konst_True", "bool", true], // Konstante für interne Logik-Abläufe
["$Error?", "bool", false] // Globaler Fehlerausgang der Logik-Zelle
],
"Module": [
[
"Regex", // Modul zur Text-Analyse
"$InString", // Eingang: Der zu prüfende SNMP-String
"$Expression", // Eingang: Das definierte Suchmuster
"$HasMatch", // Ausgang: Signalisiert Erfolg der Suche
"$Match", // Ausgang: Der gefundene Gesamt-Text
"$VoltageStr", // Ausgang: Schreibt Spannung in den Text-Puffer
"$CurrentStr", // Ausgang: Schreibt Strom in den Text-Puffer
"$LoadStr", // Ausgang: Schreibt Last in den Text-Puffer
"$Group4", // Ausgang: Unbenutzt
"$Group5" // Ausgang: Unbenutzt
],
["STR->FLOAT", "$VoltageStr", "$VoltageFloat"], // Wandelt den Text "220" in die Zahl 220.0 um
["STR->FLOAT", "$CurrentStr", "$CurrentFloat"], // Wandelt den Text "7.1" in die Zahl 7.1 um
["STR->FLOAT", "$LoadStr", "$LoadFloat"], // Wandelt den Text "25" in die Zahl 25.0 um
["CalcFormula", ["$VoltageFloat", "$CurrentFloat"], "$O_Power_W", "$F_Multiply"] // Rechnet: Spannung * Strom = Watt
],
"Input": [
["CheckMK Data", "SNMP Rohdaten-String von CheckMK", "$InString", "c"] // Externer Eingang für die Daten
],
"Output": [
["Voltage (V)", "Extrahiert und gewandelt", "$VoltageFloat", "c"], // Ausgabe der Spannung als Zahl
["Current (A)", "Extrahiert und gewandelt", "$CurrentFloat", "c"], // Ausgabe des Stroms als Zahl
["Load (%)", "Extrahiert und gewandelt", "$LoadFloat", "c"], // Ausgabe der Last als Zahl
["Power (W)", "Berechnete Leistung (V * A)", "$O_Power_W", "c"], // Ausgabe der berechneten Leistung
["Err", "Fehlerzustand der Logik", "$Error?", "ce"] // Standard-Fehlermeldung
]
}
mfg
eib-eg Georg
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: So Mai 24, 2026 10:39 am
von Henri44
Funktioniert, vielen Dank!
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: So Mai 24, 2026 6:56 pm
von Micro
Vielen Dank für die Logik mit Erläuterungen @eib-eg
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: So Mai 24, 2026 9:05 pm
von AndererStefan
Hi,
... die Erklärungen erklären zwar das Skript, aber was das eigentliche Problem ist bzw. war, habe ich jedoch nicht verstanden.
Ein Fehler im [Str->Float] erscheint mir in diesem Fall hier unwahrscheinlich, ebenso wie ein Fehler im Dispatcher. - Die wären bei dem einfachen Problem schon längst aufgefallen.
Wenn versuche für mich Licht in dunkel zu bringen, war anfangs das Problem:
AndererStefan hat geschrieben: ↑Fr Mai 15, 2026 4:49 pmbei der Logik im ersten Post wurde der Str-Output des RegEx Modul auf einen Float-Level Output geschrieben? Das funktioniert afaik nicht. An dieser Stelle findet keine automatische Konvertierung statt.
Die Logik hier
viewtopic.php?t=6323&start=10#p66822 müsste bereits funktionieren, bis auf die Tatsache, dass ["$InString", "string", ""], ohne Länge oder Default initialisiert wird und damit maximal 32bit aufnehmen kann.
Der echte Input String aus dem Beispiel "voltage=220;;;; current=7.1;;;; output_load=25;;;; frequency=49.9;;;;" ist deutlich länger und wird daher abgeschnitten. In der Folge findet der RegEx nichts und dann funktioniert auch [Str->Float] nicht.
Ist es so?
VG
Stefan
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: So Mai 24, 2026 9:15 pm
von eib-eg
Ich würde gerne eine Antwort darauf geben
Da ich es aber nicht weis müsste ich meinen Kanon fragen was der Grund ist
Wenn das euer Wunsch ist das ich den Kanon frage dann gebt Bescheid.
Re: [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Verfasst: Mo Mai 25, 2026 11:47 am
von Henri44
Hi,
meiner Meinung nach, sollte der Dispatcher bei Float ein Casting für Zahlen mit "." machen. Bei Float ohne "." kommen die Werte korrekt an.
Ich hatte das Problem auch hier, nach einigen Herumbasteln funktioniert die Angelegenheit aber wie gewünscht, das kostet aber mehr Zeit als ein paar Zeilen Code für das Casting einzufügen, gerne in 4.8 IP8 (P.S. wann geht es damit weiter)?
Danke
Henri
{
"_Meta": {
"Description": "Extrahiert Werte via RegEx als Strings, wandelt sie via STR->FLOAT um und wertet Schwellenwerte exklusiv aus.",
"Version": "4.25"
},
"Level": [
["$InString", "string", ""],
["$RegExPattern", "string", ".*temp=([^;]+);([^;]*);([^;]*);"],
["$ValueOutStr", "string", ""],
["$WarnLimitStr", "string", ""],
["$AlarmLimitStr", "string", ""],
["$ValueOut", "float", 0.0],
["$WarnLimit", "float", 0.0],
["$AlarmLimit", "float", 0.0],
["$CompWarn", "bool", false],
["$CompAlarm", "bool", false],
["$StatusOk", "bool", false],
["$StatusWarning", "bool", false],
["$StatusAlarm", "bool", false]
],
"Module": [
["Regex", "$InString", "$RegExPattern", 0, 0, "$ValueOutStr", "$WarnLimitStr", "$AlarmLimitStr", 0, 0],
["STR->FLOAT", "$ValueOutStr", "$ValueOut"],
["STR->FLOAT", "$WarnLimitStr", "$WarnLimit"],
["STR->FLOAT", "$AlarmLimitStr", "$AlarmLimit"],
["Comparator", "$ValueOut", "$CompWarn", "$WarnLimit"],
["Comparator", "$ValueOut", "$CompAlarm", "$AlarmLimit"],
// Corrected Timberwolf Inversion Syntax using "-" instead of "!"
["And", ["$CompAlarm"], "$StatusAlarm"],
["And", ["$CompWarn", "-$CompAlarm"], "$StatusWarning"],
["And", ["-$CompWarn", "-$CompAlarm"], "$StatusOk"]
],
"Input": [
["String-Eingang", "Rohdaten-String (z.B. temp=23;28;32;;)", "$InString", "c"]
],
"Output": [
["Ist-Wert", "Extrahierte Temperatur als Zahl", "$ValueOut", "c"],
["OK", "Status OK (Ist-Wert < Warn-Limit)", "$StatusOk", "c"],
["Warning", "Status Warnung aktiv (Ist-Wert >= Warn-Limit und < Alarm-Limit)", "$StatusWarning", "c"],
["Alarm", "Status Alarm aktiv (Ist-Wert >= Alarm-Limit)", "$StatusAlarm", "c"]
]
}